PREME/G/MU785101
0223118305763615059787419701263226061542121600291606090004783374602069850630863444901000042897784319963396080717586105599224470756905720825343528235680213435267289129057953175114645908961159814502272460887159112834391580725342003595025431820722740106030438035873936188349118983480085070008634715748948870472098065136193046191238650281755464724522015187058848631106311096504705479825793924092642191914665217698457925293376191445890751759822106513142452037312853022009594690574021893899221310632717086923034606498652768106217299334592453331751275416831095917881718729942117386969922111295612169486841075257249657126611081110000269291621295862674021040768304866107055309058020611937970532900142548483792879015285882985520583800147653919119476461037243846330941773148989111430539047517568557955303014895550344613759501806383791593644328149872035558242094742158898975822337595082454439918188485072536801742341748936373285164913039600729535932476148964158723444135433170125206526847978537991391819826188538153668158692883620262744278159250055632940733652668714796583852279290838477411878943187986144927044474209709330034171331757131509701996981141422535557239789565781474323351277799433831323533793771147866296091206593386617553418145359441970310083192175998911442699411041536513811683410706361905440286660751852834690697399507619992976183854971271091205777395441427152146834803554485310118030596267105829710803276377616682001960779783822729195586003521434137795497690242137817868744643152248722571631670225443648623282637551024424847776283378756474137377252253063625327847334379247163212290142793202468498411582237388161511349777679988344757390292659812034500937770361693839044942375343611767218395751618142905893254230260244234285043424278805285110510429735634964241195221429458356885518516258153648295392903237448166657266175250663963561007761251883651617823809516423989456236869551335105168895372079664088200164816889922305625177890308117820735636975226719714622552430917652762296716431281606325640469028474240418336314148868508439989874678201669573155641629508576545245376271541217653998676357469432151132714878914877718670712470534873275615170500102589057593145468756591350193546011957466430701628802482777338757811049032578924208849590491352952709430879074510028732197907984233209829696151244744513788139358343771111743034678199967368636236668393924019519698872433096877590015703474283137459442300815353561071128996977353480346808762862073416216595436031683796344183857155035828571496681565373618088176373225129380415376744635623597521312389438141586913455786948988681483347050855623960625238486637506575094756636257863455463124205843933263716612208506370412513339567046202141589121721525809976463211205155750901797496154104082882404468652717450627544997322540750804280972176114929681875950493166492636549363481308778022077903964120170737721132801149806461110708449349890694068268754412567317951256492745441799794550258258167394468134078402871736311405911442605337693255108430320413377933696171022456016725147920808152723699353302950876547429460508961121027855730494779049771160354267259602284608324914209999575200137030465345610073828764297897560845892647779501881659728030553441055071904075132013125550771703846606461805829728798389176243135730039139292477959801910321335918061998220624651628058510917844071803736167338350518823112624906593303061742588678995094129697920391528409747327810815357801506721668999387044651503253336367411677664261254507129740614788808537160118669563641162039453883238963436552673413170486789700210349904133601096987529931204263111661991060923078478368377153403679314316057735142132687481861699655977583769778818406798609438017232843822031363580819988758004266505469472850633898761490706363340221958673565722877259269223178000707726466894093160207973011582788293617492104145789178871760368552179121774194236735891733394803976210729425943845582780789058569305170311870360297056620114667068875028057789928000415666885542201675404670464652514099184503690751521832633020232323388271428367457069674689020143866093877112962505667843083309571486621439320035623287267186871001203442432447870629316997844134190507355496513321291048391927764911057475177483787888937237849387830334345106466916402926442960904130953609375771016878633224792466228678850103330880004866365178845859649470775371456780388701020978671997953554926243750970138162720241170882848394683721385967086395292861884318456042448741230601700650278889344489959184367375416686029825580722429223556877291077146716469899613081100055573109502154333146725732741262866853752263874341314058853345973459969696391196003280967816448420132690258032405335156238906288981678934664399566113642618233073360540733423717524433452892657933775846056807920750355827615265199939173968301838525128448763513904096267622975244315308323611537423365155593132158251599496419358580002339674581178337701086607466727895261183961161168713271404789514709840232167104294000587890017765028036490293472491942116830553423876611067890584494097707078359509135047749815262887889734651996549322747214394292366893699985722890582117689061627312645930769730175526032044834146719293642192729095645412622495995453350826428812075321333925369582878599005825101724560014664944062460301262570821549342180050880950872248763178082055647155489544585136301456078076493526468987597665662928266425318056512845983958972470068918450651633620677303513952562435357297946525675078364338816952966412949503977420357022728080557991831750916891824818111551110892013997272201013608888772881508915624620587205890920974053507822174458749928654264413249076008711073474996588749471946109932689386257603655273096749204315714940195133142124596658753857600271285289918981553915257064080868025993557690055264798986383689506517101260502581544788053877596552121183079429330838706734053731486437416515053361092692880708868707012021900149236248899495583674506868343839092787068610801666153837002033272476807541545320784831700753870596803113079789858630255978047821020458652207418907742697923415090877466532076115244028539031829353806614132790684441573900725004679236078637417286904272843004531399075335428453300136973002742887253853464248442750165714013610319085128865138495424877625057494681292285735746289528389339219901754682057755949731161988371091317035876344855098222988583881721622288129230402337005842647705187501297874620500722401722117485999706108423781505648620212474457114671534773651789802191370164719622411729997375461515622289376724395757679025801343966829035227731325851574379378403430525626271983163437078273658334335506553893579489413882100612343121074888805528771281089285647409063892958779407207011057124587846791068347187138801578492852757080212636967692773309169576484647417189579904192406783272508578488213122981669273160328239293474692772894170986627968386984131808189671294739200691409709756754249515586469558250385770604114609923874238662085584140013090752968205129416352199695146355933638750053320292095308955546038549645357911558658162923578360357066123201467735857031243115576300840564193006674138266241843952921053777810666580444648833317350575016066386744790384851440958897966482567221883770797368602976688277320750146758954301184540651087388206154132853816067125343946436691477371211814816342168578656158726568826429874706761486673272354781874996965679973554002674900753349632603380314429955955806619019299770443143218511279981422690994113625193153133440564104488570655906603639143156980560981245267797609239262762086640076504918936338914150069580391182323554452662752674592554663776734016411233322174423080920887547157744687274355163325955273873331996918437364772435645211061958324016154976579584323899422184575638781962111020563706608136663382541017762941815614353376206280070616264777345065967602609587413757138425790750740335094088120810162495966136001959671928905461446554246281574431993987756816882356205363933706130971890389629051939841884274849397138584968996808718658539373166172389906095096239775078574831880664700551706796655391818268555094429960278150771593051466074379855920556458664830117703026895080934266507403424392508860215374129155325239838608210187488606371260716931398767761790551948096557914412969505381006173563560800873580674448381683670694456425399965328592507760785153787753117658103966008498325966743325346430728322173624877369321783026789197156930151461968063920461621549197479107385104614484668245593777403032041523924604695058731758644551220225679240885928748152511856116504028469818039424180355699818863872106024155553954764428366098728806786468276971246474531485879076994763670344889568201536280527908481084380960722551994586838986295230433500288955690685141431648890953625288399587592267270181992269627883223145062169098274735094561025747019351691034431437404262663409417262674150022374159917411250143219119829057258274696847943858683985829956254000083473954673979822796890298761781352832993789094674274925166920239023455077362344217324372037866501365650623960980044728857021058926811028736648719812416771090918595767850296059109411352670270158587873484508843279374571229848882009903900164567976567068574758664776662843172829175200282128780144730665187942802401638714156280545591255340664706206557330739054933456079049875681412512736658031841101568791924758957227970190513352989328115218403906379560757700647685729682703537473054839167631148646057684177321667523335232787026108855632340557635636290491146767794713201644499134231238994609402008816736302462710090041939196103218250489322139376561612272090269489645341015550548083801568697494462982184021241529372498577936989925494643448545092537852142086960297346595685951654143770762571547311216557227289606344508832736801970115477018745863294495619335677273633387915308855544921284920628075714863396737344451048551917898251345238680188882085253718490157682256703796194430328682892352194825706383293703604263180738901463345652100811548846996290625243899460453833847811081428629740282373189021912009989392068811715470611796439231616025106126692056197133880460623883698554666726372471348762910505127965733750283661238533114321135642939994824461539851448452300672199025791997975714904468359862904972600640345359603199444251897871704945619570709704140262841083360491586690897002715903873909032450093322287641049891996562387629927026666332905560645963267187633308670610047117474653094621102936759234519036546055756288136819441052844258799058779187279005993154502944998429830476324115002822714923828506973665210063124664545391197753025445889355579648617765387749760137122260334836520171766356497384017666632151834990641029544100802689801243400490612036782665711450986116921513148102265547790434995798735911231564889239536506939654587510220173612610198064705807818090478565808180372089610304872924050596855322759064271841860610443368499646187332556541546951047163280351611180277261339678796153824001995669106770760382188543777336671165557475265097331622309941444794189829839208009651340771357789379739067241329393227072643013614383028834067460911677814347230629152315232736432673716487968000530183514011626836895838598501047047376771890255186571165176901951699037638556866469614255066878342815829148552337134517044991885100599172101576929103016096374745831777972329746418633498538365733782108621161014528473103134354471395634233268269453085867156048774614452751460393536147623317072431220826589340221800562314772514596623145433712664941830487851983550715585740439130836993456790173568624372964632551589293402420892453578123196924068663437138134706837027644329009338555981600714284097778199263416139055909878116354139332351179830929199468966691102561256919627864563383136904088849808088109548908342322370992163247482646351150257364181516520603371699795864159268372076915269468999510704729716024245467962646038979872028013888750415196282520964917115581631068146324786553657072014371996679688588035876693336964973579181083158059955326382322422671666125879761140825353318205314764718611834947484556287967624687867149342039335702905596407741679428457286243516893441604310456254372610845576507254262791063462960792699667447992014091360572291882043886335760576442141794264241096914224336375409637164907918688389789293103303881914135488114971757873655933401211472102440341410878671282819560963615653559780781840039568044670345695969034668214365203432267429395212417567766806832999063606819028289707958171568988729608494642824805581553691493830536864504220415493522737835235804503910668951198312990065024749643162322452333416490613583078664494884974087010051616928999073517036882582267412716621604149496546478570512303409078313149541665898604058987778869179095904715637392344158565646014781296895096473277511333519011272028201700373457736896762095119968064974785746416423100136068230839950092238824349097620003732812232848508872405918956777885556052528042463049404388884430621066655185218473394641786585525902017160835017058852899364568108134264689136046569308085287607940555248385671055481444933312502620628746471772782854686779090627697734712812953082474994691805798945209897806436349204616212740088322702771403689177655989771600020911924438132915876364628065592396762698278213439266040078209043048624651191771867917471194786612392684342256289418873859541788868664936490020917950297766874374044168931054631713209552297601428454434591578993366898695977819885961048073508167715176961808035775947120480771230361019420173641464181290730948889874920808826504204793273358413004501463743106416995379502806444929500698429487572882837671464327458494780029003358698897685193671155219246455845437988440806757439251325481722671952156554900478765855091813081483517217730800942660749660680338640201404857410490475818377944243579652382186622101205105346814054237846944151822899704775364002936850619885781344379493570591079824675780431845718599985956910435285056576317107858921476251621127619605639777175505424313052445216509064405094284588808298960303471851212849701953589435821979627247976083951131615896315638047281102563760987439869444257981341008192089356159056697914607700770305772745293192334941325609389098602174675245191561867913244606656392326166785797170875269120238073230858829674388954057901386090129742640245215669835118733411253484953228313693389589899767357157698454182097768786620294459652154337682647616337540345377033839927551462170197726420940892103995551282056077913621782069038140180979705101800531723653067860569626812793210768054218798288731434718149154752195472949129084015451994632458494724676911381032487947210700865216967993977496537827219237535459433276391914025442800332644847016085852847914951864563305347790976095809433898934399196996065448255479676565763347525752152486105122974813044049119713691401413445705744126738151587463705752517997361126240309086337422718185482318972698474064488063911162413472759836451550368184400901248831548105543096231812557938317672968246801011271205576978602139662787994351398312629151481293116456114519065438498089625708208574111241469615468935333830806876159489101845946854248511182717390617837263723024832760745140758448604033851508898150376362017079171954533155529362885906928119340567776228948434035446150754011472270218570799058461350697041412526466657417102470765321419571358130424177948379244040124135441896149992037401806165554802633664778767519711749480528919593303322273052737778032678549800839631572185497727020076789518252552547243777283267618393481525402427871203101394383322352765401434410065040278403052698989886539866894903453087591029676245280876736521006821333414805641826677895029084461255955123962472014129327353650772004106347447714929401929660069332725824754708067246939643685022159414919103317046297892783854051595315915890032838932827594387317133147640651322493376464473698363635306574603633027512020953590805005941138728616857903149747015285020504012787868167932174349084235540014558106701093048828696165103131699334637491637515105014263655837014523003799594980966017186357398856089303839443420295972095942876976337723454101500686725070429967522572432352771997209269352671769517700624746202103824241806373931690020822368053115248733726134721047123875290811324578317257782063628341754584123505528886423401969519940387339865236137727119574397269480965047083677078432856717493453182477055879261805531807490880480538233599895519711968819453189197458261948963298856242873346960115493152203701933386234144195785176113320714775858344673930988702249410300559331275948024174213793146900127226764628704036008751221158626129002786981468014903590624970926603734905875216008790810639451322727743913405653395388438984667988160860870358242355151558331149921775673105283700998045591976945817863905928490274059537932251520104841745050128874318564535112806419725305011572419149863717565330128745043011426386793733899321237506559836514798771591758987470620385588054763272913717269897580672769525296757199666533552441731291009774789190043038512991298748961768372943880034480577890001256397397293292978627407151522075120679038802119713436423213526077877636140348732868544631945403722324769839139494958992915637677313478326510968432213330882896263465003407998521578468545294973898123587967025129643606625308982696071031884983771787375635820060753740640688024018224995415561219865741902153807948395994037099290612301886273831175986529474472601297201159599856816194180073113563285906862071130890564729390375391272040428655368548220749658376717094456982254441062035277074309514710018139568944589140194440540003043661654310629932015606683320180418870139357858137979112645248316532674924530969249949301283269702212832419052303459931596677296412519300137625394920395302006644016661952529312908327894214516351726037734631421107728535984224244263186752016551897840587643870488907343697862926073745927058394988696668387265948514737542042993268641637440861997474525696575130223350767866671639164929900524333064210155096375636819372905450581614670565454342402166660111518855944051608811065189059889682315122982911196528084198921453277297018321627556198040558647749161849995972376234949584742623668469391920389645899973526591561882479508866907622962934711391554387482400608465424716626842072204427673239722813648426811512694549090116810411179994647076993460128091682540542819544102001126896741505548797304821503035063401962640360365818471400666248438910262074518842332312397559136359879652729041423063043568638306553801597276307438456815452409485451507736123706493906587808710790437406206769211253430736742575646690489853569810366806279757245990877784376122372952613418176262077806911694242015002175648872011751441810381680436566633270499073066845095786345643606222949607821188070886314923285894893568424669811935045971640243029612494761248027728348448184050296402115997679592109243289381980331331857848551363382835358765852099569071242125989108896847669025407703813128804214385915613823309942734225404923087522825936472933946604602615025651157095542256838745802119515364724805001256502884598995269157298955315803881231009587530579760220605963059923481756607088822761029661224429079500835222433990875449708771508345593230319107296493980522521218753632807911873644285096792136676797691790324238406781538707695759388587260302353909443421202434359579431556315883656151441923547699486248442614213574592397367850108334290832540521230821977285667147936545961414010686553162406793636000814164721793610482579516070777831152374307611627115024859377051008790554888352861737987144881432621643399174377049055235389063473265159492337519125861082617920695195951315209082644197249160678767780740008964164013211916679145317604471648914694964613437502468136108792349483330787418924712086705606041548779775016672505738274866405009983593477244964527047614065943057772140219241833671429271383535062537081736604358601183019602854164217948928729645769382027403257842574180966648775512458793014383870167583984901450873051757489884168210280380284043411741104335981695153686688587488902706801748327165862112932236380713484784277686155932003743733108436359417892978706764630906865673535466566166274272246220443291147097552578547977587264643815703747249250336852927943623919999096846592227198141576103286581109223274038153253065421459608256350635217417902582384984176026460432458150545622774452778084769650135555675860636804608935108955399756078900404478255715681951504166685612580209507234573152064100516844719105197231252931018534999420115687997103193392097597092897422522395823441587875181076207158634043395257469297309030020713432207761206554720316303660042394524494838124333189561576078275834790187361595554282329348951922658432553904838824451073897086287482935767303585205649645154627834942239348982823199031044180237099175660366201538932104596858167317656712727670788821316850207019112566605207151080671206637063458319895553750591655170462141738159488544919078051462677617447929699092083580498213140560769101511700779688087980360691877173122476020021210269729824860127865595351011151364165242201346660503901221319105214131064697796644661137869750767352119558909634455909661422387308280892511248929130829747264626922067140321719167114015344934862966133987788619837807705273637257763771631397224802799684976867273523000812470718154016975353552643543866037880234643252158878443128775728513654281691622847549132148089125704122595919758963600982107160591903184478341035126739257858323304456741855506190370314562587573728943952054199714445355910726912341238035513316352502240898519377220234637706651391048134401717862811391367601359373367138382064106307283915771964302065804322260318516064215209670472951741907637626035154566386569980070169367647600094047375042263254443880040636532674563567467027724890456273981065897714683012796298277493892128347287817338489044060826951176906522054348473342736801514047564045801584798393613748166653695070064319571948296110216498438614123826434100183802866257400848874457031698319484617707386725690144905300001499007424346292939140925028797593718893332619714764854113427420053396082311155120087104708477186962221246373838025214621448528047552557232577101688042923595690285927232654156967490451300822813626243581920359950479647986681299388921600520678796379041502823861288950135657964415062355300988691273124797958324666137823935409121252891908497616253819220717212064817595357196182173674137487040876850490777180633274332752172786957197006275082774681122392508665122008232565783982448186071686484689645323389366355383897218406171851862852718608382845211791097279536792462932708718261136449619662279924951402975043336172075502391945049196640072904860656512378516754993588063270096376803424133203046407328707162303853463969303897102587136536881300297112387445944675083087438468321851797595589539735631708807823427897774415960728440900362512475435205209864204582966464239382632402941327753141164362875989112740144988003889733624480346024594185110023189320075763009105389735229359252521241050982192487975629034096195879335303869360753816394477737139001773795149070400160444002921199030061443675144449503345370778383060242729091664433454695039581153713636819486779883571928101352871113916738869975738793072873823236957007946709615697576009421727636051680286254831290557005946116976514559403519495083239694839932240044216951941195355939837230392873617916897761693979673893500058179652735006442457359898279721873170443319641843325444089541757988933788753731017009644952096889940225927154741356042279491230721746403321740129678722367003357821688770341546407508455491428218789847385249971679279364050511883074121290208774023425309369351803680671541462354700081881570874094873779772716642468683027000950776335342304276219806838960747819299971053302622885772353183716894312141733858473912215579224077752695527857022927455255879435186513841117466772907464848159343769127275897159164226434829569792369109850600623272254264205074479605016270491048827978361970941328897818593718795185162499359617272366221096706142535409684765282415311454848503193732519823349420337118090437985843547134196645790632337870654853142793007478874307700104746921505256567997822589095166057036896940504173213226186830322063151076139494232778167933587578037530495132323213681244307534569904576363373813866540529629540280098139584931552853425345846769578948222299113169182759766779263252687827664715611515881253325144630979872600887908981639788753553419394587754494869431690480443753921150509696202486562279429838130985130272676077031965775527088398415153210597462574799192928093146303297939245767368867382455972850526908609573120605468458953197106020794224009831977229535025992816512842803988178774414034708398866781126898205492306782453210911696707290148521631765679977621004781417131449148025960490438330753904529541690968915963775181044454390657914927920825176182791425308680967335328274028764170279201237658599258769547338918487725556145621968610437203617969265361527968844130038184919421870151226971221030739034286075808210265448824371066149102744485866443921563594528040474512970203886566552897790078036359386830411083696305028926408375904596545244966309020872563079648552471048978920802640574333133329637429776945611322191005847769841535853194735441219371478491779040424557055246655602931286974056309042619762217923919289894494318978700099239160341877569864249910137213730889516884834265474016404706617372076759891832653930749116971436930121724424920561272990998578560998857548583260148268927119538224843719536985489219391280184411742338992138277957678779013322666237232125487442257261563512238015261521697388053679927577516251811661560139015887517478599124860935616169369527761219853571566484436733441694481208382823538738872444739381471345572436054851956687363018554539490956290715211934302208245128801512827756617205002237740733087220535234692305269257227261213356736749798074617830854408899001272879613125040449542547390365371682863666127323358508353822140380438922999970138281486716468554639374059740607083589249838540868525106761718465173852227752428766505000586729530216354006023411235999348670195824085011860403567119352649268522259426447308990741898070895975687349726878344901536467777946813486810764310285428552465347372840242034712498894481220387571953554260102318996074823491256854495283508794631371592173776513524293492068632840281807316353436953072054689505004775205982004823755864860077011729173188976348979469692342644004177103777867901257700481092795134660393335534447971501988628813927093115659276594541225706618594814299682958009747704487895402921241517829112897368925740081602001337454253705508022989002371630842704527138083048029287967620691098669626597346569485082831807528669382295679128159090521049209613124750790666431045871938385654569713409640549072914441686619272933552620299409340964651374765288793174195005847067318526599695941251363972751165136591714412415260982555981103801451483994000060458766950010113432948220543245665306059626477915558849324211687438365118302772429881083556274137237671829895967830396307241663380172349083843800993120081961539999839918460050001625408519471116690000684557911348445886080106339415935431812520296324286155355967175589948640304476924155472670322918195586255847298558917333641822542416274811108989019810421616991410212583012759769417063657503683773840488575439594676360991804530079284610718171926946290644689370583897522362726867092727584768380338266296804951273787538730601439812512528880210053102147956467636560160747465614569205776161536790070955730022683877428015293413072888185396428302467659526696168305298733413367793325357286401020076951395050201639497047282979755927182075700166961915606567899973434713159991258986707758748388209568177145010635724283808607526487700121836512924444921420424863731378252035752934130701462955256725803132437339427065893897377292883980786284984278629718231522816275474669966891923561412087582916122907100371705879989913446787028341582754780163606193869266065727566818084787014473502203471743355267840227919038004358512802902316120464654268111284150299769292296977545112314318703168162790717193673090882513653141282465297068966114712877388262202137578572070900864629717891023619176391762950793580317996475709216724961821419167406780671225890764303727983037948662231259221416353048929780313143589508777086708452992930106723733873167168933403916512680657530814012570561490310421873883067096266386462779852608511443046631684475223775984966607467485966721792259307629267858442159307314975090118387472413437618058229534573925394966063318850065702888366111421503831132528703175976793050717973716050859746207106131271822907489855433638687961879860220727721953383059133931568591454255976443824234480599529178311993141752671356956387097892942484425622756845309373038333187136149434326262325743967799779346831251078295730947297639504691077254368537384640280053612959352906197775999707460299084497540107635756036826012364287640141741387461559234657318565227368245542494559420580486587746033784712440906922672963614330004883921901583739324929316623347858006468224414756845649161195504925035391783173758352979645214948450101722224334697436010329192243623511942059604069581092359605744208349157432942575926682686593962716192590593157471200708007076291676157282212487437515838658120163485706533409560105245651391510910615356803198946508552814152571705347325492745943696492388435872997733131113097812428850647701710350389119727664246147845408071267480652382384531887726022575615745958963775728089191222622316993097484932785926910937182635829547721415704732406312255521129300706962516863024443391590651162823520503385449388302327110198689215276489410827544144054750973638643000266359665414204061324100157904860213733993536359841003573106108538876304417266222969907371210529436158826030324230456837536260707850652753967224244325103176562737908601429002313630007116898680432395083578259051699811131624876124636046876236696455155651042738086106490493411624956311873948174002051017580562186633375306825016222012803845520035696789808732358050342535304944379723949587481494966022460787262371851374008154595163893106216705713270748126881306986254554128001217141960678956510067445862837365859297269715596813603709122517291179179053844604352380597855579702695154141558940048684108323590517709381484805684116441380342214474987627725282041289882273241294879503180909991542605755944949404430853215941797254802586797277603960618785733005349340434562079840632357915664918888502014758243778691242241485371904936028318665894789948183109522011951069256467470925964836941602053849125553337309522639902110560086825583231537706855039744179281893688179804139653114647783751548477024310686301249318515334263978130841317730899321580283557914676742129345127645226117417567412302532189122777130866164139068677532544916740332623721876069063373091063338580104876364552721658156019929861897724285091899377700266466417538347863140544758253304476659259638590449556351424478069974562525745063745438054936696934746185607935839553971434901333653712146781786626293457075821487128953240389305443632171261033577964295053735891035711359172805836543199789055847215959071136579301102805254837715216219278350921102128791781605547703976768238760560538788292847502345030877482398630288590389608818667987942816878936525398990324860779064888224826008704912370928297671356947265718227623846242540919007259670031263227968462370033697626977903623193098306122519239410846385735073211147254312327942323554069974729166951683700061810348035093324718843090319396593976659870559542173075235846089290300191877637645959223948250395879495239369098698669654412427203312730661480600653792772152443647343423256115223861639201869315308610930194657112390823164946871861522702994868903964739983998620462408023069224600669777826541439035428001917121498591325157013265200757775592221459440756542166920701627696770508379732414339711572929249502188974553169126174181279967363590112770438899487401649106234765342549592835727957172326790194101979767464954276234179097961245427404751569342642901982018947168361896164365170565822505783150256641698809892012338458042684441957776847322748485549840152232983756330664680340173388802886894132128938726051594553583119233876200815498581161957055893373317040944475820181416623763459065176159009484058468049654332036330336733238705552048659947318962838964953038000711960828809016928105677702513550263188144431445737128988136513846893710511957058648449612373356184307017421623807554203786413271090150539926490221019620157351942194382697547681719721109421211266828830157421823826443951567682000633792363682035980321166029625058992939315929494363566173257056641194321272445695946061157095301185896412314888308178388298608772659621982017190593536942705966564479947085184035216921679947066340906161386896606178628151575506114611076431624262135928717750898772221984976685919010302241437523708031800417255720561542466884922954505547105527378808906377231592545372181042221461559478808642824384442568928226652919527783571941947684176839906402241130696588192808528565447487963816356138943680704556144133036573624088460174916472332558124869924162357772844464327689072105409336260253392449713675142051988069680288727951424575845689478825706483233055081105430854388765514155616733468915187940134514848008441265402141332548026827357594005870302683306760645563986084572723067318612591949102488328601049946336151782628149520682142409381146020111322481768369838849360120095708808717036359641268366552574523821327831574565619755210851196061039375126238138842333243919727960350578800620551743349088783857683019422927792886310971541778883741871402944408427738866441582710603707626936714833329751264267614715079420459304030240849864679430398908418002184269168652206206317159908771561531287313612351228505565816017275048527889586322216722787331177086067208964083974537853473065823203080069706887646235217579450977788690013532232827557798213504293391292948171391776005360843214044161842718753579430731756114890370357766006199638278695070978425487499658346155752091518575891117075224894961342284457278196459584876175126963712741921710796813511545962564135165603434405215041464685763040604199607084022390044652097362475713790605467197521559559302589660975070511980405787202233746188482662383188159263712103891342313930484737387757466879014337665559791688195725940697718131555631250082128948318119083478723701354197083297208028336374637755231204451704894699474909414702069379228238354205658462454486086772409796317946632120002013978452613955579664562408901227352425360462347377390940904452636281220716196746688771517362301636019643901459705572462600735139368286966575312393643809813353539296763623094807260232471399649715143603557320047952066137496758983879772837972796095837401455761139380663378061628866388661174230035069036080857538888891029204802334168217205741105897332067721228158609798183291360883633793771351164885503680535913289526825140625158429644896408640078696649294794082498585658808245923501586381994972909384964081220806948128681901026458551907862273874219529658091113248484546451043339472939688107841312043280356283337452361069335065959323686518166424691757097716757764523286990385809394727310561497757904970994246215529874683145158159796057107572071139866958390560405138658244498975070224084582983253614704244257354988912212556356520589672268869672257097313620982243544894713079611731269992116752103249926931826501558097581819443746217267597840820979667398919524033479500927134974963904310868770579605274190458919431472364234053521484603583443070384625681270375858945549068587657893895948748178075945189395202390290136930603864609888339653985745865500088960596143214341588159748844834513618799850446205170512717822223504882820585444124310703571126054203037151440902550610839584304882565676868295642585446860600623758554408277317556418075324796828649682363448059733732420032746779357574703233735774530918671115786830567859078616049806500552455644067344713815564110292687015495098598457112983511822520666006806576460922005916131370799767284810728098329898717454129447064129459631030472390136063104932378206518260280083975288484078448371204094022713517764860931456643161515063448434563621465909902271250020147449272462903046306789507907140357562901565746784676013865925283205318984062772377220173432302019930820113044360541026979086664978724648617877595555643169267367563443429125849459291960577091428961883243037608515421749591155946780180298927849871312501649408188110356735725205066170918027802438567466570038061971420958472805080314488037206167184721665392737246148545086098642209243069531444987559994587592593724392372891151789480845188623776216722556913303353532152838328568518473479371648683795401225085966560089430633549028288891996289702454237590913208560670033818643957182566415583653776785723918278969072419840634507605948139163534107255311005707680000749411663962087939810752311853380520128917460075615314317740827750782718874232727379856311712646077475986658048870321521469561681032898927149740204239423552438476533131268823713147351001117717103587946924808588756516490290361785901321269942763171918829075917474437344401897515001340678807374671769948478818197328151291946555709791472619943361236847120067258179700939028992503514281931736151758515196976133733259859672910765604266561607590421267857255280377218883031298142575954398680807757724644642003340774483176000464158416485812783063543564803426980692009479243248622891783312491062718137318645410812143284944398070594297045421302641577459865858365643436512724533310538509219409242463085565199713236591141724825692010915275154722846719270205695419306812111664973847025850162643981466701444396773009275419644988685970681595929649711802657014534996329082329275349837577014078524135681728878989198980619558799978923328337443174766078640322539404845598238521360341524027376002068603833193996340469803296200396831490247199754182768549616327717311956286988183832341729306559481457661888331737982671956606646042181948732592750059496821836455512699375995056107402332586815219496310877296582201994603384949227531027796547641472075050851700698815824058198548372048038833276902416256366171020950784221147855308984796276869076557599837794891467294278902832182707994001441132126840976318926060098299302613087288730149089180704687107569806935189994332076951106462448485332961764075973095600454598633577247237226819099730917442666396191408036102972239525344835227145872326833975053048955127171080541376594625344777955815475771134069228711094240248281820955787288953583982308700685477847143369582106635488062490439556982392557098246261590547970122875449090354224001376659259567937560863754374354025379177250001742853204303126985651127285069540459683165707530498194380045063439678010430346321820102390000894840739746879679312521900548593996670862217502216703598804858938822292789078449961100730209419522457308039806643918189427476281801743235607504742501218788166852370650976259355156746206477621065556900336365807727219485650644128140943295928345226555443640734998256820586269024743978503037258694301284846561763063192320303745580544983820744648498095129880920574317339283052491445631278101925424224421272934697060919734523957082510212547169773584075790884836229355780026808268635723621037948824279517503044281884037218138063375861843461128402181651646378894331975323811022954487652478110564286694814485974941891967032213049270857180642673342748143482555968348470817107425465612068549351565265124987927122667264516149789504863331146535668894967635355775947841106658320439764718748162599725384529403196369666022390262112680158054898405949000127335906722851915615311628938597522565993131537530302231078583692905780773191577322663343352400086158041235245458518165893068449196468710247692886911777333080730501857438834712557442543107597594567284243646794818686027929161399496513304262039295736764601938646214198900308949326137506783467252939778159555588745749730621390333084568546495220104287893334640162207336770285695618267956749325640324615694854347962570888879266653812410677105233753978490754584513000975142797667898935244613835362065611765723097942568228522055831315420350799016300875197468266666724501361388583888722073974250073728695686677385060051423552307876241551039206219340505181027943303019051599877668068894659755447045452876426972108560823062465424499705256210124653315941224457657053452937025366878257757714735182865214475852889659416665081088204565951831948302133469906726425584992038641247422417569004696004306420242067152794712044287636488004355115780621329046114431723697127454674003071292036830244782206232820000912324197673766802646901197418548973844466565359019189454702299413430493529644346988737210205712830295188807424852283760518090679868572567111259923230077693278681197029849298790808335679576839286661933324427288913147554231246596095736564685187930796765008145736059170179305526064415450557604520943007878151946104439936927576274785348608130936700814331913043902508986182775915578684071732758058599489774008537687072557893461224383818092610565802831309840833455142754326270796674978724216156388595788155622117157006439068721914337267560358604110886799425268451365238837834536064210318755461556768317851497379355254085600330738144060207747302095117430602016425987301008610191422164768299478606686473433936453110006029161391842086592611309387627718770843865379626713957716993803053797925248765729655599523695489963156685688402136778555813096277489312787498620614187790903575213150715559000193221889404526867391438277263066856400212341926516648224458504363818348174339386617459034183528824275081966304870558990186796863581559195539483660404818764560017485858131326026208791012035001536481125218739150450708660014116331326694154800441739587927431288375646164258680908847713368855710087897166368001324083267996440414496854014408951864860946204048218346033205143669382384088897478381605056945277698839404110830300225477589323566735331000629139538091769288101879535742489809831553022219014361800260954424601645073276168516915862795260670740695769394353824752973364862238590376472887218761110389714909348641722416275088493687359465326984079960303421806248752802528743782465445371138950870137625954539041476222843887872035490750539122635144141660166794137223925999705351936142975528569513847915233079021742883423610082292598216032024323181670769633864734715992764372095510314010511549202698511717676813259373155011528116824558744546370329472372699721207998763156783371156401631737231739907162917927963180258260038466922271625267093605154060351788081362547339097377914576229343785252846909955625457364227449753912827931906639379596098640279849423744505440654539332856774354498588116031370207556901756937207757874593776276605635356858573856293632131168559319215635440347575417070974961901291359349431428415975488535909747510974573881184608917117131872781548909995220840659150841727139070030249901354902660818704523805724813017438902058667399555500055818452891309109866194930644050758255516699485377044545778612554148541506529024812639764385220622588426968609486892127993978652007355227984290862523944436039211690899386723234348137083201944553752105729136506016191642181819839720584508368495496267250182706814566951356982026108586430488451125324571421713468855576999236196579193852150926326632380130132171175534645121421875887296565123058881328446629605134565009287095911831969039763317050886590102547106829992287783845782308893541095434684029860716688391978886620132289564245849536307676182014369169705304056102729047685230003907106569094443201717004212129183496606374992424189402585037812874121347713484064777388359858776337099899373169223265272656530036477994461196317114273001704535225038911905700728814140662059326640656029200158279752522438658231188218968637638033627503314725915137590034046744900800655436915433218394329675418405073650500700142174139332804385747994824042575936856057988342863020022693153817109896839492279997230106869901328096769263309811481118348094418737734177210149460992979769636293131087575694727609977742230152908041720802903641960475728963502818984475461450605922542115038951511284083766438782148017815108386496976141365701686150842867543383634531175770569389289727471258930343620822022853389821369553348472613295839069776876908961542123782689520353887695618438238159150704037155606563986260930143815375000642883688616274206503495468828916289488142884530852580921396433420566579869396432305968194250013090731070546622767599772437269693238397640750840899077062505567773164634909336488514175791651760206163442519132061327265787103561511688842104209408988009912544014447949984992911379056189507862539970996283223625751922820361643119078737628427095493727304904836911376433143985421470142596397022683377984433817978915208380733945409836318670193291938531912471629101380302813231123282129017019307505632808452371676162617299583485380467152830210984636836573303026725076272087801715646772897418272911774271432452882279283887956261653495920978718573990074858602455274085122836164773080919775376583271381620120112339022230466009884387658309759588156749631328120971851929539826619895634118715195536034504796459187742521851142938980198336100982940231930745340579073607026621637230961736044252085940522909607959262949675898556172922467143631260637378875778611034366131680364142960503570429285989046909486038631870498959462496000766919757134740555295569668487300868643996169918866269143367282501695631641747134663071289138273650016916594491886417021213397959425422942341362441869937198917056462894556496776175286089509433120742234163533687959086959481865894059276258244124839375097917965209143630843089652300309911005071287185814296918420361522691539442939032468589935322880426821020780265656702669608738105388409008648708658025703882085966705603809407432606673835545544698713093366071001995610282865703740477625747843601134151291191976375034713251345469386495661449318406111776139964903272895359954076195173072522824894692335774363291404560029972665969115960477308955481867355176314760240066798188722552990472483501344461597937738522030303615810778544200727970164469147345346515524505968997190999102271648437826394486477764492621905963904857023121688080882104801398433552110217871486880976487460953271338803551254018461865486337402420215687441667509622589020663108295951476753804151386834093175698507023828203690877808410575424000786397010673059193598693816843157814058150877783455999913753754297395975407171421539357904176754822970654290793324827486432350904208968638955729574355659918283535684347115558196100695007818652260626313456605747338194366409299235817172540683685778261282213043914554639739292257560158498793259089215442320258060547005912357473529889251119602257528709693041459426277991560493449372837851532319400358763665171972221989458700350215939716590898358268471575119427151614430361561985477908109525709398228302272680545432685862385608703812679851259747539846574744179687279734231799421448188598154444760595662099316855695226235469259396624623637605530235467909026810147115544321718435856910092491626786879366943901611522759441980781118560174013689780494650917013836669161504208651802469638320381503191823640941603155134109291311074609017950686675416353702007364032092132018661801098043516103866090167392527520221289303887176360605681974402656054126656178976288181457147431581442863351116711379006213790411737591491418254472077667851397169106318387220442477361447490430644066427408192277747517278992551570734496439023833523632770938555189706728017736194172364906701155067520025590557831568612573595037969610609465024146298186644621651294817996520412540423369129054198147344496600300664400866284259335758982039525461133852923115059006565882220939260182244092450699548059643998489576268155184434430083164920567660139900130937244134821533046502893475752867965896960005211587922973965835618950764577551313814281859122401059594232948088380235443001917531104299558096514855939397221594959619523516106915234797058220879387805304928129076198315144475704786076744415682280959176067353908916778459983225386924768487492282141393511371352664287552110613341485175584303407851829827043265775343532997283327803640855688408902061111819138881609842237073260210568964092129436648053470247025654595843917958915180288428539124074589872048966337911425703908905605940116912033249256390423482785346234236053173001747843503650134694219404013068041726886336407656318147121229911596670467692559733507674089409745802451899323729569584241806001913815332216347935608778014533453967652446295747342459921065920459319273003485317927816479596766276830303921421274044762569444726686719825248852137956422544073127404227409569125122072441847773334020326516184015698682158255907893882529602130495900697443500228032144695841639651256596305056055562147686785995348514323800917239945067285676363219702169998101850991284296731099494936626330542582048487567522575064569442655187906382901400205554323599435484886855735785158117905884750661577127957646350678594390758766781274608437337744792421120826353213343402301248279906531417732785261380566218688804334726810758673546879389492198217815573608793284121757249222514240120644933959278815666006690924867264186095222830431460225501602012408282911501513472149468551986043037697710177838796200282339968754034086488783294752070351078786592883394695285613445944340808439610947608393915042955926405363909875230887952988855825407481578333458869691120709427227583060007044499291852856526963841708828796346565765197280771889407133789849573614594722177864228353581973466890916125857266350245063627941703701890927902119336969349828574608755843394811367926754726301920268781735615104439445628455898892197981353868822283482753234776093592055776337211278039499576164615189393913960044909238746384767929725335790894840857827274228109719702289534894436253441791081734964027994299454858422081649125591050910464445948554724135060571608908147526475217234508146933444348523793802076841941051954752385991324581190267383841365870694785493008116833779383428947010163491156453421602253781376658010667925916585902342244228688997907800529395000642208497266256213840055775896756269048263684969406711953275964543644660652089020249022954621637929493111006021201448362148596501393902217614711179851846910947304405534778236286843274980725414165820741994471993367149108965251809886712691896281409660001065009617427111865495243248404595632457396255770956131078547918528900804474581674205982939524227566292274793731141504168486351072707694729302077775162903423903062475654380133176841184621259468055460364761729570794847981774867001821006827268858597826666892934578319011103006538820055369266398215506028273594966603871237756371598690240685414150018734154167374208592698913806208284178966415212990152711651185565373748164512072221855654787446688512169240281394061942368664264909542387831575775543102372132547923496252101846606537935254493493313127574390805864095721018949204200261344717452096650172126811482753354184038393409335293114879340257788614557248551093014208490443423349446746514517867499728608449369964095671736933466200883721613422161605736588140146347432656146721632967570281602644294578096176984103471752598780971614901399571507113267202856972298737110866902692355145745185188250402274005769476259427912087077666521218699226138402279431742322245953638583613227487848048882805487046991025922541998776302964017269540148038456996423338025008251058779993513554241626709247615723979435830680322744926607208837769774321238755063241044007308106838223837177054044002953619935838889773769887882009307328742485100568670226516355837210666977917817422082575074111335870095384878176185292540959254636279972736103023976435723867742653458121949505332878455028085230498671790221085698097206851740824669822472830596393359524225255910068559957269746474765277873763746616908577355271306816345274561084787364806867471444313326347133821508097457306496919637895996088003439443343462936194473760449338611348421877104877621776276710115372121605941479602063459450138126043045651124639715180972991759723671833831255561171887150338212184067029502339003648264216921163164680687848794248066780261733254497432905380337561324303867192797774694750087577406374249221653944924471603037954627779896375474626450657146135025667714543305383443374174469556678655030584992123806670814924054729094508815782538774792443688571461385881645656665867252244988388721489647071562076747203670585116518076891821239841139254824573792547323786282682115787896361095792034258139941755117184459118853275962734625141589756754255582366118600357083011589393483170089665211343636770040375895168996304822056892335415323166651028895111620819091153540396011955496057070752910451478799821743724039507884742070415300368033785107114642651417558457038687693178710751708625322650945821751234562861540073640517063422378112805759292921940898619308778974383451449360126267050118556885715383379468391642797983706833833413501090651339978738133546278773437380321987925505265244563524432782487513535693449272427240286694560501443994586453812030852509027898878298694436325351084437671884926231048160771312157580107382411879419716529508579338346916956184611748256437357374791466586090513613746323060820828541262712172756407584235083609122881553394391255176604107061099280839596557825799108565870342544894027118108061925717768392878076063028457887939675918319744239403790638988981776656468331241677397907120934554047936588612092291241216125347248921863319331312478857995055090531765606980149636637290129689526789307318370612098474583746906181570162174720523910476749733081791231502716794510967358748871219329899820185734013779282948049263453429203343555047775972173498262564527232680146841545627582571405425140516632098553362904070484186012282138724917275737520735210674827812072481205279728970624505544919272199094034231872588355212117451023127112458796824236395379150690742483331260310556230390846430668409438460989406424164812475725724058920641206419819569483399830150421248738631384512898920055005567569384061830374795643862397790895236220179964483071894325334902230613706959033321564820246801613788692392315524984007331411065640537366662593296911240599344450462458340510491511518384702341474330933891144615294218173801294317847700468323879180089945182639352073679286615760762638735159978135365986745989800209137057602163059218243571237347493443541878581595031672365308048807605163072939106999594825980023806779985132882599192905430904243654697812016117718867284387998078853671612476211324999491353217070234952776787374818522305577924337844051680392066867553640005628320028551641049903280528160384976789743211099820555687440451590694574963716248731963825317015950261637070620143047293361837625957361121218596902270640977802167393139787497246798922713323651816801883738737255688116471011000897525767315538185448744789742125229326006767661773389493221542698380266306818764463994600812188723732523217938887285897498980188561390769801558452474817877176116170514274470576607054284203792850302972954035573177801196891969006909548701864042242837827269552255969030865530387694155937206489829499582392903016636078372539413369862447770848964131756066604473654882849652008500887853944501687043905628486326275760019099839420079250920475419417970343037228219003207158896012350018808293148313118280962852793547654659353866100188872293077607741723353802305161256543885016517353425055657794685130310606707790650204166304855560244222328277473039369298531429897228982887723151986923616143347308487342608588488163132605961171690448571857442141013201934655445622841204806752649619935533640248705572193738590966591668468066420422768504884148449381247248394607526111601636110509599020884873646755409344310796115129670333921005461115936543516800664214011270259996111855794877016060429642132496979894991396929981355603196952237430628523798306292645501141188526840941052037621109301840558860965903184191293532668152875325286226164101397842713350302516167030914073160853123363119723595637583295403501266965283111464147522650373053584653663115123588568937477245697703225583111827175496003683729054410537645107450032725504034323068492466506833324645312494355441518390130386488305414255123424909016965235619650936108543362434748058804430918902097330519614906442441601618859555947445703436901308972066575794690661203366265298376768700831260935669700507045882978409570436533334396348172797017968035644204413473320140359780050771036488230072900310528234054456939706781594448128246305218590220668904649143034723629935319356064252278562575331489872255357277461044222280538529195570435306060160439987970261109583229647583024822003273259095113945052499433946112906623461057591074884161874614187518765668187705317808386106383527070127625455015602940377138900629394377091981116558296288021030540609987331635736436624002877527598698366770468311683259504075991091273057234029566678251116304494856365290531937648045281508800904548410963440442489245481944442031342446085957498297969073643986092393170866653797706746882174218346910171708915515375056553744498429939403190228250905447141698037153932955218733943586246178862058190899191431088414497042128022738634449683532778326061229664305632659165251073218251965813358657638681325509969900789595436141929138475861595120700706744447368906881945002631590498467217594278848765618926838916785265109076136704050872163131452335144394896608097886787522815867115107284056560718491953809984408976629898765222840054737933593035457363158480735692560815559125711478998680557025311617075986171770848458210739595091711776164752922842493466983194313657671924361796786173690316675170280801127121055661086871632144389172637211771654849052921518580357350697942280152943047649123229082498934769954754912476917681612263089502408765588784476939225720061884809973369822776269267955026497799930575547458286088248541287012618738873632261786275352084023848987910597837397054103166991977823484695553021165034445278963815202690107576155554290177037164261462565350826812128695352172249623796857863676670463401945906848709007974775880451087594875936611121038202167883867129810221033210319347294588009725060794313113468588792951305473496284286950745638375144530242111538037441306257052782575021502792495152999605753616656648021590347141242998223507403713170394262648138536879578793289599623657692247836579659309636439957618444761901072113831096388986933594649804633909165741275103924578777390188366448199907494725748152401762581458653640947333394180457975219211251513779728394419224783183762061069935514911471955132086397589549152345278525024005992629749314656398277864255721505360882108226284748642727326452216651813695255742719208133310888453572076109943587592051851196824517011318045479688987036523057777008619470463257793680916992700601762055674621341101432362603951204269272828940519495971168328438879246502551427398694031503118395396845100954581061378838716960959129263820253565036478136791684721441981730595614965497554811514276933400298104996896862430438403877406704579577919988043907787220208906029314338289530607354072641303608884290549594886225211456066408358691518981569632096364304133217013608095287896095136372153680656593641245029796447412056995116230631862794581865299185089780095504905008362282455897399009926563951695067231889451951689910388855128719613801036837084309966847039727471463573265338772655774217786889821025551616781829531613124454210700173333413382803176739732799434610642377137214754983279903167557079683762423836249425456251499402779791887902195722221772658313300330626995163632397910891176827247342685244219405119785599955532444354142123172962823460179361057148310986368443602509737559952841819500909684574848023687626859797006540227050096480899574554594188897740146559724105598658367177165962115131359272673584246324093232320663894014834750897815581862910363586617283755558019227548875516939576686889477966921087390485023288571445578737786753044921312884520054693056770084973174343029932506689081476923901815539413122317974972141013014109746457131859809674349062921595427305066740257976600662884006512432849351693328989655106846535664903148242962253522509182274918470785126776929898281820930502208424376730388235880931862815194627128048278758960926681869772825535541203561553875775267043112872435146927548413716637763505716379470635305156052821803230496990086812245337706444053447866332380579802774931198188003354538605752225512668546636415168077308010215009527006675676695602594284175628779325388940520690992986538874051310954514232288928837615683607392245115071620836813782018955512456336613766647304435146901601153762092292360747683981417804524585672442174796314733136076935535625664870230872065484696591260510273728758117816692611042773352446649353079471496463718618340015226228594439048492157459220577721642435014663537867207788663336157348678909042673478739499087748456459521959478889629279574887875295509226636571622121643885247102460670466105219295754281074385895920363624818079099657041217024573972536234109349628797474381909753405219430950422630188580202368480612512176069438665162659458410833158333814834684757191648957208548362892512490387656090115348658825512553096383489954420829146356327477729030846213574173499417959628147976360791166095223312876939091883422343001321388987208677035099504976579950489632293295395294288482491616054416118327464447126708806430564464328436720826554414011039715916545047523879119737133773066054105994053578763050411368434828077537886288107654936516407921720390416769802824519978893717060171014754682200463912303496118002279817806936412773512436304828671206664082883413869305338216163231743251396337990948735536890727359900642576600249577598324476544629227788231900493289214368023602552953569707899062897327491621907937229026656961969922487211397718744562255430486295745883152616894907915548401917277064293977093768554132973073413004777375002143859084888313728687854175058480969166757997978418186653635321646402103745063664705190126245926118033717787918420446059074447942895904093561405115171327626986420175807711516555528437586613177362976225595488075965293220286387717368927020410354805011976954087553796153091048587215375169237216574804004306511766420829561160598685510619597695699206387677258463829799752496639121998760484160901191489729971306890419398783687292914091858661956604269363231895259708385256827333746237763516396998775453098825545058855542853001861599548468408809880018952670478324336693433430472481156693326904465400444399446056772316286976345745757141024369915537353335815701529169541658845184011290501108444034072579195002431805844462152954590940998823831458486608053371301325112273257652896140151182727528244556463290726182003201961751459297483465001464944695612734856436092003503890008322801086330701262982090382673619878537750892075428847477496786065630334217566610872785815066762991821505982787965611060458191791493005991981307252816093984732399135336585964131736694661470625497996211244114626950350815623921435389611504941227638650466170087090493293816081871069513523199711473326785851789884160173251674466101462293501441882231726098518980998505817500171121519974899197988098374314761949825460259644891739343389826137718813541485357673250898977257634035329304787250087678309448867571820131522888971696632594057369311763030598937115504788074295290825375557318321579431512828482996897410353739062585821355729814633312430258586703445749400098270786882142564900547442135564451885344553750701173718947294454010578460035137007171302932068441809094840480556810109895010075580168296109203910641179380378444733642484672505495849480238455106093860124153449438028026333818867299057477196406338188337859052436764756392388328853974587189356287191943932834471114864280064174311410874341935374261622853089698664179892553383317736714944985023425010389971143605029033469900770511904817110722518385105663540246285134591900468488272771624328483630679364490231340279563341209957861063507129532736839387542434099074621319678549667289977718783580828882039063223016070645435378905297601490238064550591407549395593413238807669261993437479006217655945444658465637970996995071369854709196567243984044558106331822429390300936778324979403097275721372507515632006739350131879217749476545779732198832717402926140500562845622089051301187550251824350758773426580876554116298007546898928492601403261840640072073773513165521191100644890531140213804834033052122731933006144901218484637468297459535749041723561475614013550927016305311373367222529680872356701754913205944986101853911690374728791594158159775829847970625747750962654967545495340053777390203547767883503725497176930083432462165031918897207350339852464887784420631701101999540258555665192128772587658961043500654569099194621790873376031423590474796450353288292075098417540996440660271545155150661784958043114669361440544852717448771434119062761095078405745941538616290300584359020088642233871388566258393770839737841318348389523450039671677299719650487208911147020569213946154095613103223369476412807275334700034091908834748127573255603771665194229282360639883600251337350272060607203491787269783328013852026471780927507061402978939891331864067357586619015119220737044079928193338625456253740932301766771387192668187778053133278612044343774882655774250112736786815622861973306926065308604686535495371036700188590749776716224153072233101842443633333005041993696171806312768000276938866425931293615026321972564278684025921723366357592384876337402940855109968631728106975027624279515231429275437404583826357722969242932631820314369584387578568313389069917815366781237801400380352951310506434626410400770626916570356489367697889449840532967686155450173584180720797492482826066415259349411714181842508547643937726578023062804608891362938287672658572276509510392488367960228159531720194448854168265890481181149250758421275940485567047528403729241456692629968432000150835689854970567766468542057087451468392600782355100138725707854899673364580142598700798395012771015717700273429801721670181161782351851959360791315146303454754775145057912161791937594445786925104151835587918082536376638181523981044676002716182148074551997404254216850706473511117155880517867532796396421278009967038835582996635533677601879923117268472525073263463107549620957686653386380401047223765264439635463694770508301401681366158846325855968244788356220914224576928445967468531066963382972754495469128572732374137262804952049117453706755731725954215922807103500099964651049421953607625613354040808644385803503740728145523273415704975686847586555173464362273959892361330331167669865115911802923669898613695830151369274851598003831228443918804893331621442294949894112281949003002816258141983197843023005845279738016648194001124006313605206592915078319058336005397409735473454480413154363589527453277710255010205793974833303891870798483581217114940504661507299215649088412429764305197110056391576490578431832888914499464711010152430508265810240477457602485001542382596932265264860472784452634671497756134415680507018163954436646876634792959832816562726551854591340017419722940816366841366245938575427275881751155339816931628926247302063271523050091841303271801552388124744093362701976529296477252759957299885191013729492179735358728070748427382112354957953459195545981606471184105953144807826950215584231898329589316612730919115985827701502048363878263961061215753455840296332400889847569789309954008066237884099407028528258903286155133686930974130444462694680833597809364907197383722116457465380480977386626535480317925115155651919249697351991921935727222033642724197245425367711748734300250236240700396412697035761647449912398349391555037258662585836057303700607103764007836446104424691080738668988821013783247818938784489179039210448844625594198883334741011763504900372316986330965745077243343826903533315881819594440270965002194636684733175157617573452278552413208859592472348241385961011849219363799403152575951911766121403446194005339284413114777461737339529856799706192537054724077164572665219055155063990530345928217890282184798533977244115319021176718473296845908532082767708305033266892732953163395187335633337308133602455275102730187166270160351766938979930313505496368722750952806035441218932484906129910186210575966053315978871962519820377686511909286364315855308902619887555753920387294607631109306425568198627250577934952681152518517836652796005920373313522723558091961528476125292281524388954139975119859587716544383185303057716212572520510766534042076156510760493774081896248059437120070525861894083753717232369863364914613629191206846828545397405596967843723115458800719059045521618889860610398181557628184198660077863862612988808848316308650324165600336261681666121511233053048009503024453525839090805058902164571021361560408620574097263945678918455186600705305339604462265825181716291298380256825883658467379344184687845079376455566053373748956556014214151168312363445802757081428403924290176191267517259962656218152890959410986340365306756921180435707636638857642931035890561657370168010008044212243280221771607641309060836593118663980124677751510209547113430674152369285450848959596803944531091783173189226248986267840191629541520091963339367462249233384031018350849390552362404687270204558210256719667819857358016749323679374222924437551775288371189190506359079060194433125584692577407318578280648200196732425412757605572388147507718705374378258662005309306739219294595603588853020305098724747448090946545862258819054062056766146357491556493711279679610909449020504833880350589507114723863915240582780143723151882842848923685643977157611906590038735304806826805893322247094311213229998049958280712640123631648292739619963043932954642608453042863441209191612570697905116304737438586575595003099861194638821122857493380212257015553998697426352861282900838467005525844977676023064716404919921865924258853258815030831715493270591414595438600658437022280225140961947669981562637662452185221539679474432188108261530075949655451388722576303773382637520926398977735907283127856641632931730170717482761738099992284251603995508672072009438287395075513871788857285150057258227835915085935068698620628465181846083218191691971236985372483268061743607487493072699801446226376945929666289919156080561432694035932028060202566400143587532445038310355869770665483832115066777540192636915720482059945897858817665501613025476776056439365368337071304393786746733713904004263757886332261166159487600626519335367040351015425086228223379426950349389481448589256133045038778333882060451095504722812961042468641589997486435321287711954609353267709847389699810718630317847362136155267724210991937385733689311510109159927529496400348432782748179538583008811787479494239531666001835003251877146346314303975862069141065131674000564261063193768485511262158458338152864054211332021459453474894782422356829649706074690566292296396320273716417635845725409567523989756105021712182674792365600349055419947319138100842740973438885083762353808394052450365212539253422487745336534617013247877212761915768341432160821645120076830477745408553342289156094571241203324197229820912653780189083027760769687949743635602324685523126923233187166498157161199286784511362248591091162730297011735684846091639221910713941168544135669608044659282434211412909626567962750581781816592384786871196859155896980813265437772680953818763735429861900911189904877581517480268961160770959655302627929155871168487196647219027991207077962735451568278522738981777325478927013824209052998446637290363850566060431960986309740032601618079417459819751157017840187060984713357793541355992028070196738632671069669150219401156387115314856035479217187313598335868338757905185487514056045126670496820258501963321220572666724174044100794651168377952839166345784806323524763191288412522616090877698485268248500505414518560537809955189837258643600490801700609195370583678123840451042596536879502935015401007691371335427435377511457128691665526664956095470699124901102343954785517444114203944306918887805825510671472569172235752691681016819334128953963331860081936785943835658791317806095520825916440868628153993549819061529211117356265907302421499635670372041547085811484252126098377745710837566613330735252859811694222286579382596387050266118697247008393111759851338533687744635767044480629443434960677754400352603914806139255794347552322745369846599228591313885050326306906369181783497275533562010499289352884337517605345517355307317351134971349294143977064720018276921303923165391426854474211360613396365804270945635003668944675034738342571019602610209596603992880492686026175040293473455894189060133132608758513625486570142536903116830637219341801920776808266638006209392395833950361392631572215310042058263412214679784218052339676813679121321334567210099560662114042254491147505732132324258417880205079885486993887945946999481888245664168760502787078900469781543019714402362610981250367802929169875266194276792192766547440556154710950274322839596467020547483838011982987241436316589031955171917511240147802854171202167043149853132668689919616585319129154099937207865241532384150887694988886600678435739338776589623246340201526239656121000464736267487735742047616718629380805476422917369315105223256272090563855677945212412208230081804406237507086009281113810256520108801049675620958127463288014151135831819678883103776794340378691731732107669575055739332117184904134372952743625542054334801416289295953778607532443736023052654897599936745497668999641678133617288153266601895625100090280074815470166863284915294675087921417317743735683658321487460389710057607349914859517180762224896875639805502056145965282118063239864695610861136831474094467707391453814877949197332791445035357518681668073483858250540317425335916442776194299345159337774930729934689997671001972666399535987084580692980904901099001330680458974457089313110197348796781879771465952658492908538694576253916874948194883021962518385032721933379388726909576718245037477007471181677448492336874841592409504909749089680072420365931822448413538908266715038763265799231827748355025663862145153635341251339694988243935881979589768936881842869439654100014389700276989222707348025481182426228907629729628744015122299846401622315967156172541641652024917164617855919827531958024980254179916425407742941356506589899341558708414289458408837297081098594909097939022881924998600259474666426986197819922583564031440461605683696867926058505949990705602269173883476697341725579291132348280010913028369963360708723125490254985687370559123409794942177642489282553551981477038494979211884091917200797778227525523124112050416121288652584801870410483757033824021812960448890740589751367644374224678860129417987221097855380846136698219670536983086308496471101988569947296773721185757344549854381468952591831435103281042748418018324203047628899954638779257194036499350624563835893221562163863681471634962648810675369542821325165154617536886809687855414684873423886993274590554595455871697187299255957721068776888406922121422858607092806269657878873161996856516844670539080720121698307504519305309502929686162283956041438861184272976270537513009047339872627293261067780298681862469727400675486712373835413591478609628432736758071911227172225435933333707919948608349388470589522130929344594892586527413309116801427689346863474525212313503743405434290024480168237273545512197187636782241227367200941729360506445119525425790036460458733492552154906632282751760661504426806334761914371937708696771327369955397473147216407376660334180978203513465951941550122832016603102145787441777737874243131697647556126441546338858439451981281331518586064787647575836631442180666061746645971857019061543267628720660114501818663938411544638651382124513920122435483832584445937736343609798417637124326543918405761898829810247397592682767213464706437556252350620404381749767768157471827756686013938448850084474496182286383087639544592271104252873430552138603415618572070670149620295154728043853240714726295756457338915232300433140363187828023248671944085007710652037706111750366339730393458253532135490477267180898621814690094407573848300067644420012100231781437132592094862489513959875726559930654914018534100527004699261497474815902552361553245280290769807401317686739733376651501264032072338059913601955262016451022268919998503775071034376121784994101523647975806846985753091220432620619338581387914407771769788113862396018612204604647905221560563886673704372058537469765393773400126189342237543219745416356570015893007610196763243431091758637485540060751167020967626990951415696603989357618613746383081076940370688803752852429473795648605306509493492658744568362240337462972218528853938504512163849753786997314467705484212413936794491821420371019593221060544360640900963194162076945911488175833880795360516292913919615600122360453437098116705157160867963814341448197241237788719917982967968900689991379446034882933533583635454632672726233209146068892788665996541811127656252364272487018440609176197250678475248862687935867893441711029919495401929224623521999999672938430751060747408632869799086732113334792421312594766315710054458546554617518487247272921807838029140744418202225580065481462434243516427199183124064682795900507433117978912322364319257285575185278239094443448424593266785539740660209687574758743020282281481697331993664198450075544521370836881124516329352827158935959284535825814466521706513163858799230299200071060188648306161910977124526053889447119588926176754210353487126212836404059794681953703480632024949124077157141680312983359952587002444942420374545462762877206633548083935250803537534936900590629700658166654327904508595671022990516673741977832480456923729083023574593604764315110694043937462021491115092104103982052115203364122236420226234106040042821979512620992595267790754305570711318191077971519233494689663372343432945136212580621592668204932291096313134313398551985714179384712742170893794438341006784640981329281526429767343527741667090679521663086101112674141323425269483113695175375443520097159578009155227326862270214996163044208665526202264103649942601411898406382517286132860005280185697072704128943635801118358756927033907799457785922785921549008115409199314490058244679725229067611644323490233562942029576706337799645532917277188291598748317938279008058666846923385988048148886416634508217736239806297751172621811182068478154310151260465767764041493448848105823450128915890074725658783078965021654596073565854180927998034013383592795303372802162537523248305005686785489053547304999095665855059980991374198791292194453370778902606707734387857462663846426849999610791807826700667793275703536855888551958168313113186480575670922621798339929329429477838944534780626436659866163216512491398453383261228001383094502612634578640075300205146380564576482422251188511547652805603653427520151872603981364683876766687609020551901522297099625956264487037522551586352652707173869717859399313266306765101049346025322803146435667275453585012723597122183006381407251011336577946311162627557043302936975444247578267969919064117522096491815026814153467419376969245673252542460514961308243217418978903793656141033408455038793127314474552143940268471980379639479122726129637132040089522556071441204305441235342261042174263588891095286064367963414200388330896339547740235333567867560625605193372744882537188002140327617250538311704676790363096866391440987956728462475023791518654845525587109145435283539811589605952230053918429611860120392986567706308418336440927632423189926474180660827779073947421636618334507151740740204322721352244634162549029902962448597192910654572517276723983688689264165451749569338074009215802370226976604494637371573015718921149067840235654707770126533346543440145417838694868193520125057241430907131269009120585679226469359788642415053036062130800024549007085944439822932797843932441198231228718749424962036707715242730993809826651104525466642665653835438019550582940455411292822052956160717535646049784326039479849165690060013583921233758094043533090244355555722329972681656721019177370968392922219521391954273341477539603768425350761499188341829999356945917000160088717234232245803268266300356753549123643269242110909026854040189287533283945096075281420388359944182376120107878545033325864818278254408067038282759736513695073284227461547325231392225883013552236692850616341986243299514148362755341240517973840173883356708648614980557759022706550290863736280030053113584452847191393910106136687927033925711159490363911319974203404164533116019711404992087917300425568504020495868292291152903085566501099103486450321854477648380875526835203375162220279755040971843555871322872043130944063956742330623547722151616703099796302127165044967229510114957556940985416382475634037437341641847149114656893911261980503120118227347221624110634060889827723853869046237914602730028247063658570337493723300732406253771240267947433467704312983720249814912749868347644571387020409388735900992577106715613850161283888301573803070956212863894405625626339743002078574122410177816851099888416418133448447729045691515953619721285272640259142428484934028997877047719470004947294303845861759724224524201619271870223596505691429654757687568952576944822513862490681562341286044084369822813350866379923338433339274209008792335047076427852882219533330116842550150900970569310270109583633257713394651462203170380295126705656851172933115474663595412151130170762956608316250679613112886889699337078655206872019917103467269181412996119836643170556264561375539377204587039458797188522049137461939860001347083553895094158762762289434885460051373614369515240348489254856318108141174550810538114938365331976971148411624417009849990904027357723326235155359520736084253744523957557909401075323554589420202119986620794569206413451213150058908212575512292744800410447294170999535418114922894542280544076122624373062233217311126295989171194786775121459339895989608954636233350068859889015085916156656071460466193505007279949475070669816160300276723070349209072507747129961488796284735300281421850258772817129244523769851550277604093212114444426033450499452733654094642091567115902055163093230265077538978187283794620733881357065711546555105593607491083331078372812624391548162809667272695306209619002685888153519169634434069006846874319603145850865289631951967836422176352841913398601576155192562147679118585058998734548822406278126067719712627731003554929744374696395280307470867915686620068173184597046265287322128728788701498025421286178550868911979052154348296376066165297689543480020019786745030551887382824590926337478923175479788598276441138412873283508003710444941097165309687449687577469436965478757078163295188572115182818251953093647854329240159912899100282327386535633869471250282745688611468909039548025173410229827069805463464646466609022918411536393252927285078623312671610052817354376320484249199629483187882659317427293717428602590724547298866132882771693311559834679996914695786141596384580118190768461684794291389074920545982531748439640841860809662720080196458953251981108014727312474532341409144116106589992627432621020733726597843162704538538114065902496784471063200314575856414621038881713082476168720787038393683633696377251054857582535126935488744405971617585414209318650700628931656512088922227150340221905897412181109671243910014493330453822417217279547728877725616083571414787640336182700806758735741975301819641841702782245025012048532931614539598616017266500076234110270485301155163562610164276283305495489955608949598279745504057059792600865861085336478689987265802616992371827105319865603299226346428115121070996491412662571453818529993075752212080207075725730723275281991532863705133422155089081433334473174232486578296427295053392830526472064060444107612305124084483178270402714510817865032231170258937343190214779152104213711066159574437912685247195346501278221381943789256617373181953375648417247889046251927264074559673580572020791269061838427909576901268030794933356445841040036699645782113040475101863509697597551048448496845740702168675676085845508119199127206793652938318162922170261445215528564976299683286614647806349460116494318686080749468924495737755089798075510353790640369992738980302690885853529664998826617981390309851617850403435494373683577083872392432024715378516360594107232413060345376280129618181657545594286712402878534683996605450228677412117182100797027954097775203621317934679814452917488926804928017702653346023966363938925777628983452538620010071113293451281210237572033402586259432004892486266538878506313896052651163095361438809618741052687317708705688922347480125911081173814010625398702375062460202204762298752952832045096324774795338551061129850178625300785979675517465178385408691028253658934619032362876396779272387864193961101770130500756819983023829345570144694940766239695184959421289650380745540529865895821463626664843331255932914617718353060058490152938097046363351064689923435036996112567496664831450550462667338828029056289935297555114152491868337720505342611804205538192221006605384431861058115966609801567183195468682887980133475722815120654827317290570236816446968171890370964897815292675983190331969486481252088995363975234633508929395998913649094202122759862393309032527185320848780915386870596534939238067945951892631499564294361680903025826260295032287449346125233896592722206536514797343487907972301196239420423721082512216407165630487646501168522212129073732349226289015155769935148500820522452707949010426505678623433287558663460891973851529000286750330838662228380587953408860958217306520251291545843850620555744092315817878298891037173240320905670813288825991676615752518725203880244908261353163338995436055133578624792271658243579692274946381240722377713633413930837834867593466654953880027380368880435883260786404299283954587747631186950914899137191305396527514828514256964563084852705693315868897789715196290211630868972224462340412091322517595392872539197101736630025671993754725940940107159933051096937002244116877801045085690115020148907608387837515181824570163655292519383152938290117192341464609034693710620979576113669778845502585693992638723587213208877111037564195048601295490089681302670862529361126133360668465276162440327966861090152793189884744387360010765391950014292005662487113526685625709371364450957229579434292072602814385485233548791935708676115925605985632559234729342059841123301841989493002919492046514942416197138244634091315536729875940592622444657568011325558947501268805050267920191934170390274340070522684359896044993467174761448335330300424259286085118737213571845255233813084638108530942913895286292321808979250234302057699474365796898734997914522231391870194498049977756257593991208233955284806267001003831669194182438218244652626801730606176869414012722706751291685005045064782517428140216466608610022804437366689506750419892908698720441272357384792221920424154032506797652236321969128401705904754933868215764625555263256176890898059131550688180995477054739143570085692708153119307448787406541295807545175234911500410463652608989496287265261757321179733630788418009220406283856961954639156758507064335363319714906284875219465526925814908921985360533712030891072411584151737912566230853951288001741653662680110718550878376379671736915125675206428555102475624423950007960665119355475989046486802576368848515006869111499877454642040193147188214120135335904327092690916966837102329972976165271712602088628244921314451101312365177116802389848604466637211792043032632176723821087565973937428734503026153538015601234763386827863136952125454804896658906172567040966539583980101047692818478014462649578045030895371198344172764689372186754885960036824574514748849828076382513188889119517766531051114261868307868658414689544222657945046215287322017771232534915235976481672853979488565795258481677512045097850191278408859487912243640847482430918696612187308473859654003124817508107643188763582639633921059688148742394849795390698769300539430729942883892768455894991893676556813267183989546021835177474852965175008946068789279274894893506261005616822375833413234101506224553426260218837281948468054770271494687450507082713172226547978808538107775705170187607098859085422162401478113167834347207687781181967172541088567177476630211426801508122674545124737895519805965457832401232017803492135534558628389774255592211155828109226447595454649991288343402966636083561662479293111551286344978406006364816768138774081964245787962919324248650893906987403203868658421284155956057993338260633734241099552732487559873587094195892673496935170832770664739196670471312422927358003851472049320368620253722968819004094331948451847150454488635374243938749603040573078541056084003149012249332163263721779136375330021223132343157943078827454457921476022679948318484472095033662717485224568166151509469769080495874085674030547144770461177389377878412154575087318601939955740360939924211897845017815336033828411388109636847219285182165061157404445675081315324001471576976200546050770461011977184260410747317297341084603140905945419155978901884111568866237832778774644759165238212865014758676811332884927843916237924185186031852063187184685646137557168251456659760943759937501303478884415278376630376027721238072815342309701549956830168902463661618827751989690609260605220608782714846583674071283991098021367201251375341902710763384002381430406960719235734968828646326692815085753809131889248920176561010987122816609285349827205764230869199794449521538223488262313005075651163804460213705905009852274965767061950836770117922037634037011107769357841070550833438961786802869594473652386278842636280007586486495306137013759300984575350835539154017469090008137831284117379679846977203835864991685709606464581856208305721081744935438503676519893543281523891478214353282364858610145814551027959800723126919652455668716294109768123447690447730926976104757742564843361378404937592231275531076855474426301213133349631933255247514148654588273784100924777731837596733889201272690124540788075063258921646881360181935681282659191248141886898495246249770655252845629322954614545145431203815602872342975777046178740933800089661630287695502204547840010451589033509225160310496349153863992721327261987280629310022368263716576664936319228747825944590637669210683591692362612584939278294278556268495808612415327592028328448037112793853565505808605837233972998791103710982783031225228755363016592409641539255466475752429844402356989839683039903702185934204755687344419233386375980498706624939216544023735012447361438069869638092737957728872885635701153501385188354772978551496410479783559291711620366711023246513969213276627334387210981468373786118412793037292751050317517975263511299145702310519142440770112073356228376443705619750432539285732926552804295081290607184211843573190230518398397671821700275752336295718043579776198255284677038786247422629404869664956856655127764758163163822604997034835418400749050399132267525710510589927808321243904439666393742403150081649218964228183231976518382797876183807926412119080969006782728852779266549125419775966256976572540128011923025515483404066148300749553261253252659891394604611107762486518165925441104654900026246431577620894073858600565823772808329300577194717155919793381102729037549840276150428746391694094138445542081933275043284784515534839545085298061261475418501208263573215304664688909624964533549493328886525979279710972519329312288527719664250487654783673185014878558280618795142060232443237575478973698791251606180075407472738522754940332429965917038623505008568856990017770967967346579429602973773465011750613061470188895832001206867259962728885581548780371988759878484944061793146711182989330535742846300943154050904327307158954305032510402048457179310756208309174811814525490489012846150199622264359737052838111537176884800262779461361679903044092261848292051117076001526843909420902938099709537400022628293685110082960209350782177310233621039248412028493440124611193877412621029335058193560684718856501156883395700453278093490792154162259665650366789759205216373095168413320102163302318880261931063957379335466519007026913279609503520370047177618836989551032360236396795069529414120587066344615421019511843057870246371857895115397876498546922982992689061402292673507455501795269120414477811641698577292578924486676905749387997953255746569916920847002041979355332468061685157068493346557457282614801564838192786122720698303626274313374929520620072148765062537393090779667560494639021979700766284386867151650261816431176938093381200273672002962232716493662888617881614469793293908065174843190639810500337698338051524414319364631686116690445724167782485854440540044717162378967585922270235237873116286402986082940062398304449788685550203426575516704207337227630699355709202192517254366687330868757583729748612207054862760394342797503086047935014150449856123378147872800157981304985293323150237228920685504533202030441764886081106293482475189177912102047601048341950382225946035561047772824251473701377807877671732208391172247798143854172485315421647200344865882008982781699058364247826698655177481114174684968063512697481710234626864010703203086731255739680472586575770799189705359042109148127206000148568221984756963947912998927102051224800246091407486304654972171720354464288575774686509767908492005421378035949181440666729954386629101632434996017154603229111512891214471331320239189354385566115321914123091848929272879581904431228909882470994888166914031805125064631557585503943502381621134530649368213683055542477962696486045099173704792563406629217303282285726639915448032544594812522960659082671710888002765524520951037255343460245223181052767872408996511391346567336489987461846793264822756303821173975310238144287502713485679549918089138958124267849545647832955747567588462721616951921161885172765712734292936641182671393984358010781456452777849252852503107356104356668815601863555276368355567093686226492335616745425849366527594550345195120606345468706056324274735736908646512575865376086718309871653455530389237557339510278692127924011386069337264691041108415718173959454090809045837652913101646489010835562543962321352005387378778631251254106906433859717460172714165942156815120774300712243023690437606302164016897338165972915369317992195528891048151604899019918419400877625752990863357534168377276195542572623423175307971474466832497984927580280732065908456019834194477900624514339121898537345450876897075787695216561522423425001429603616842381119525170443132949667363542528298395492408861455987817526162749587693720851504642011812034420511662662671603763237549237820367811201398810583724260978220261171524680459086373211609787549935798802261146571189443654579043903273603505335023327863647324992042774245781589908580958944376237078239871968831912534551374445804106547681119319655906571321763929413002771763284199211318515800102503787055314523434900582155945352143427748348072500936084443613318741242096941714236465710990751819032677792773168758030517890059337382990072066407536125774278480920980676501532044231173808547632311128848254275112750893141213226180979840264130693204935537996287284146838019285086843747088997657570887507299381217902910870092633257653979231475385578021837984318278269602473041914595431414660222728230452556960977382357404042290575044222636959861900418839999050008413265280570294423303931579118020149286880731129488921210981019290602904474808196706731368833010477690480354491336718371977713715928418277686819022433339030803500623909373456272070566320780330565330840298898522702263666285109974595482361529097588614040617964338404136066767792095459215258912080543845260909159651861592849320025849324968766230138254328986345293568831071851289373117771824541045042151690925011430602204205033289396566829749057110584291599194150520258339874284103253156236222273222052806833602757862275498806827181483736452053160403742822501266607077619892841027434326141482445877409724529952902903200454648938427214835901732011010815964938661061827168861563262094191504891280055324493909991140343925521769147528724362283528914309737627485299844061324492668736858013858233315936115040868627610548178162234156079907450862597720106539129576621860798673756965306527246987583602840174238895100001023921544069543117909193530624294212202955213609822101663547665493929637947012232375744975619339123163869115891158857967944302074658433207059826901278298558474252226610570202421430092749011880443461845014325306570288163065553821728483386690471339309492010586099271380022812228702619862775140952423295818456482409164105213745924558262034870950462482916118932448551656123708535353670084690655567952258320820924261961951622550688031170556159635780720323787362768028615937650953778517693976556358767529246603635965847674254418224887179872817983438717715668676709850047986554498839024734083931832978278646864944138134448881708307648776401891555422551201748381344501211013390327589560967736364627895709590057329700277441409050123126333306302913556031389766013327447122267924588780218938613295628884136041356914332059273841788131731103052965687288690353096765233256863343253859495812171301102868233058091839610261927264044843816533710777635744893445237085706502954710653548994023699333483900830178345961212918934008219479987434660246365031032904035031226375024381680978684467306086440224177725145474146796540936029299893460906620725769515477233841255889566077053870512881422511471192354836585428230836879825712457369894607005146629176337497691896877590615413796408040209482217949182778414141848527942826229415971229957364040807105891380545180818248364163782967975238739852427651260059193127023893550449005157078909033650167630129973569221981066436004285829888883849264069801487490409528250251031881835581941437788840441651708785231430608234863016166003259560512201638190364208749248608606146795016560973122139836616001229191976628827442930839911279254301533046238084368147185297545775787455335920450194245183699572332374154193934430993319037550689560595235841473072583482500182895075989554650045046153569670739797094336820377513081499845879282942965446748794976590273799605932620614124224243025977712832429525737776330743269574922153081348578057553828084857013847990238710277420550105124807117520347469397868041124018234436837233271873263015173454524387077373935945669785105510528833040531809795363368645444320643479259598518811474652382094067835324360860075442455984240894872179389402655123371196216746074659658903365654735665657921188965443065592685391542042099831325283162893009905285684453809388391320193300229230668033872169702473022288482421468633369167520593371384783831418248133040434842169027046380248723253538715131031399574726409172679155954034074269220465521345261503686560331548725852222573492720706081364010516737679608972662029281255448915277780129765446083632959029122896214596698278932600376469740648100371762268599671354587939888489499984000219786847132581276389902551955460343786402856599507861656506290429900639703233314436548979609146765213318130575969834549402175630592032371268482657876778016809680136084392626187665303451167260052835825482483993820207988094766601328745779183689143014263939304085764832025841939426334521775674298129274226167883380510531447029058997085556835008332685915683934470587074291355795670997510608186291175766321122026271254487795895690244574766983660618565966289938913557801890143385326719136983468138270188774576971917292228265077687386650494005697056497563659212931479012555534422753915862355598769398197206337355664871029350750631977061920118658078137050549456304896830982673278663816918410927997769212377578176504098785108767696262217328214554853798781300052294074749898023244039319588543019310271227032937113786183356324382443520583963154654118061146074626333549616938043361587778592787924847541756099489774952073358847209422790970794909305218691642171191273304424620410632480527259305046993208047713062471370274619569970761313861621316158289557113288889683416403104779251604615904186387232376505161257119194854274016457694085628064745747003966918770618648411365842344718343275438394556331100753753393491693883865104338922802059905074820066621771470463875862428699694198398532583154893448439728436673892729696090597813486226762654516313661759102465955943717338034680911373615825320831985555105551719003974860395222464420524065867491481368550729791439184327919499411283162987329569017071595977981509348975735695017991588058034787767186328648782566973479555776427329723255054435617818481743940617974633937218394689413520306737726685581286524943421875083798490459144760801579541207295106729418361686674933407450490051767753125738582917984648812274188731992363445788896666209645238449717929903344472780732810951778393065856281754939584714251489725420747214257824992286577879071715427107071316221241763220346934431770139069689586900797526378203983430901197094196985334070356911665165255565007777569046460003278359872189661469569250190715905455115204391097720152804442330438274855413002119607370130610148801587206009437462198093170853681301175426504867229755798481997593164332275659437366978533689110434988931974388577095692090480070917606273955672832509831554511731236194889738257180626925587362393565495687047960439196494681580296478343301383668519184109576642312510277151936784954702739193130554745233526134632520466187374846333932568141863616219022541927410923189605557855857518539941669773694390381993602488967653794658819751322407098019530530000208390206587072218886327887744991391339519902598172071810882833277452588511158088187392074658471174373929230083804851131656042263272951200491031055731112425225143389947630779258453766542692618686136522014527228120982612592227201137944297381105492863615385375466125306044341760520356143642621720617049054289951734651749046757212162237723578531631061750443605365230717461905592696217696099364916948969569188917791044600370960231380768932859914271063153377645565148357166050254239152580314083805862990637316357107645637729022778459660108702768467960878943451060128759132317770009088239886489019261025327148536307169925807213127505483241980637364366297373285462205540670864312180748227655290797008961142375189516747980236524786790870338029809844926107772395940033612597776215724049485645768227536877062693419685389268047065387578765495497904337685727169335399628857534744609471399774313355826729936656742043718928917650807394652921972872160899141313323106694017522614138906181021570214593754996238834151027454497823639426806944638318383029715961442206189021772553694949854241529042105804132480081963876786283345227303659489095094903543610071718904824178153076396374772917349443776533072204149140979061558316300795561436779781829827589175319037022130321630748038168957153760919370128935891446801184998246370084763188636779077586020635068364858828071460797617558666888995974152052846703656680875641191196677592757716800406395463785689762729609341802523278608133227758094693331492393303549626345207630754647851197347134301160834931740539424016433703158761121410109431394902783570905746494782624407534937414032477653911635348881673206073403712624159800123391647141257778669161382963312088368695647184645157943177931336465957972003220049326548485222304502495221363997363529909804342286258645764716357178664863342097325284456645514244600042426581292539638048786202305732071051914473526776422847368901422291780003215055659907855768488116377282493192076971136247802133272194681558010183762421318231142857825396870276226080375755408809230558792353458857543873614792900510239057736643321460384021315666122205329118391790496381117810177818584497735353484736614639190258775634428857045872130502613823292309768583124941592856156161136057570266689289146553671606261157576232349114082747645838199201726231944314864648365546035486502383177684247530876423592835924657219775533615801474371242468730270134172311558867100841844350698795983725851646286001895869434962870435370935249157433698047337462224826212207686596750574193712121835929197692354937780433422765545342334930188880705712261659807095336825174548497678807630115353606076265620000862129319845875517088198680170738525307319889699604265490583320720063368483151335439935311737295882333426108221443622356068329096626834666375798340282277599008366806408892401053334852545569455178187096209066055561561107315200674289577068512045121122971390415488727786849608614635595597875986646481942090380065939834899277299705981267118646207046642025277889258396192158166286890278896124286936438960843513764286735899703889099020267763673315134080092650305825014385447329520767307388459716723902063423663747130589220127988240275197821549885448650394468988984824136087575175770510537993407500465931106171406329082830709663631615191932676446382229569460402405453436843525324124199918040690341199184256562535025589558962951373891715750192472447484454732425157110811609525693900721165454093819759324190432840071329827463661052731412366635794091123743337947909381299563710698671910866471740534871852267553677531360955682721082745674810542497636291499480247709123789603734962439145886848158299267223339522617282141786335466729583157139789456784776897412746709695916364166711361704666884570652730580704232543211793490619411836277265763461218647091404749589881015838377664716154604137897584695735000485205094591215771642363525701751328631964631341795362132899673951775489939791681350009868494416699668274961316269461160203690768813589076009663025389966857014229800134358734053753958318513073646502110119995682438742781995104732302489898549853916344243828430357470882577449420677560727558722523424201507496677425854839418903023887553528943536798010295173356975275628116110486911349578824807114732213138573777309553182304810335526258487812791847370961496031005112983836766572241011294679430372720689643312334830268401362369754652222372425830233792140042541031124895902013771396026024069648856504708737819117485800286165207448177357602568657528459888052464968788132216358851969173865148526082349709079514093430428910252251408170090324842823391747532018423765644698837766170962906024484776304307019533473108218286194168991469186389834287247935578673995979132634597151400168233602388045673268932802662588993705274129194099425688515705267856443799816627912088006034448266286329853980487591602436432114775736520244523416203317112759387186635235006562382919186420161665599067894337157095054047702737940062871834427082305314154942236475043315105819875075720098225803421070599516828187400957469213382182726006708393933481532423226515856410712289778901863283094160214569105406478959783418587474402533441331271838754031820711671976300365774635235293360043284716244556573085645503856038397943658879905257166907265211025278583721525310361097553283130307137357770670919149585781998596183572098914064345387337304783974511201863575894395506278524729635597845510912460622347169565147592900925318016918004599848323744313170403590133126341455620330866764221864872164104108648725828558549351468698992709454949710964071476144103856619258308721993882068272056986151912049221895999034080282751038378597905146379624829216837585114617847775524555169098813366717925273428527376645162588147063405442649049457511981538673864334122732594411719055286940018108142470573204658471725847252635855053013871288217136475189390528343355343320566321680199651077022002055328012286644150615370842885572926742072195719709484904741865590296022159630237226074218996828340596195600688000158693215704132622598155818603910081320698623150394981045894308323371327734686912284589043183718114944042614725278433697079297933962018851362868168072580280689772157702983137888373140029742496223192269738436171121769269918411501945751757065565232976527536522310479593933873328171685868257793928076624823007461397838682305138995882388150573191938728073187947002568341182029790276310818584770726413902291585548579806102352293110945713028805675686758943587115870619096770503245520167856430118783626910028041247138407459448687191356812436197612779579185280612874685918014569767915824238599482965951109859447817910778479172378097329206976283927627637401580779581942819316857351886963658374201992144198181923097557531465877192865313772064522078318022517398301053318168064020535932006667762211403443919626081082520401176846380597967799778984148865601360713362572253583061772926632583895978540879630646754132524432506090200190467535767272874116649733474727883422522515569590112687921196512643695388688510303501485597588139106638538058792924906251695858462273709808374732893505237519254207560080981236319853286089551942383719870523354390763291039682188874504750523092031773773562938537016255139268309670323979634813658746693125847700394076883126109330831665354579626718085689930918309664753486423968613825805014421056650981895195950847963445504683509545429222173427054987238288641089457309188912365225844036695380408497545788620531701461786304442718862462968178053577027099098418979204554467967736472505710769604037756795539659288061534377684991604246836705567413643743325883000869902481157398142835449948243981809764108535949918452573727336376727762228883353687604207249931683402593723174634804828360145793722326606082831020100133288705625494131773332857079487069769467955893025638270283867072516819235469735749630427137495824916321527415379535741296476739310978470566563455525084525072862512035711521442514650503612595808589384181367401230566684997111421773330281870085343275729828230429453957074503503201831509925579267768342882506426084061847096276546174447706966923469841966219734265235023195593710423057152415317613257820558293674934680402203887040090671114062379893260050272039681441294217106178510065452740269895185962101901539444700846525315308779394743961358809328327605562580277844861375943840363313382897494451129852835523008761033175364163864402016787372574209903926425372799040296210629024316837063155180832435436739262451200661134782297709339155268519352905321877664368023917598022638077296913091110974270261152557753940574253259870255449985009269364485404814133358565842950821219362983439388373688939450648383676134045772914975535665805624093546086733454655181411617053772936248492947007929721604732494784211780322284191544143466771266111175738043144807142943292765012925218481744096215817078016055288256736600431348937850922611407935517519660854179642104661820447347645212301433489911941665040634862216807351447718976193333026268154148701503906519053833309084100787444345208596935122549377107161974538951941102342891207333491013054324582108038912537369051643173972986304176147549606705743457137174221484910910571823479276938378243452981852392291738975485713008347780782733866800188650576092721093103714588824095180338680095012170293082264750683430138733153912347678682241908142524227356688978943848995024616159968113166384822057006842673739212708912276466891648540545904907260068285787131785841393956217105588382759913681435030091053041973936709595889203682754779108271383611473744332393543698459691053996328332552183461515395833594313856891181175264947902759604065128054225025527363937076457375513295392552085738121948931834639210917963242863123080668914382400671208888804225045429793710860682394272901203949763769450229750680737650006638491969371429230747107408395052296904982499161850507844157862923641940344699117485198979853392293029675145971776539042480362328905295810013043162129988398421892553764114711685257333164662253174108089338789045237567194623600116074015991853481102334065773518757835247107866172531169560521648176145260174034351527354509502811411525525082911494057794895679118384179235531950717204519081272447135529724554730646976645655985464876012415739666563303309573143862317636958148238509409894474611856734329664411060643594125378474547459749195012330569312122252325103367468436919856355918599571289076314282159500404270658599038756532737210230175114380797133625415660005518623619673235086742927653853150859301047065199525051857100164811263915109826963939772432514600069628910617737372212793584474948105963757445346132633276994843335310103498661079001450755105843962421031009008413475914860226718969599974432738662847528203569964104015048780980134537706330047523591420628293193035613083350665940672653639807276624344956646222939342304837489745079888524950174027941675577868135212849594974104807307992147208723747829169897931619838325320188847925948321221737229803731226924271898750964551935775898109312289508359508369077138657662553892681051730878641143398242369421343863283318347537923778414360325599457677878625045041449801316068058805317296707797075323756169639606440545184869858261119714954488943506172470235899635391648445995614285128790054778018957957691055442564071142516860887871474946116422099035896209837360299374864986691538850788241370877037568579937320631880646070586956256222710345404129355737398903651238363078198081554905019107845441322757193361573918805013661138690351292554392638004416311111507537463650580475449670387917082450214463231481123739043688829290676826915726895593166030385607240885538682920772450990983487969767493371699710748642570667125694007986261457192777977913739529486259535136029165853628815187655432423933245480448118465089251232820123389686387841561112154159033924626634372870160680923658945821835764816924890156592706549693250373124780205021055539165134310937908624914430766671244293614193628970407384348984313375643845974768092933436988151568747756403442136574432825284539671569661106319677272418303246008532228784155544010912102745952574814340181640182720447396056934403077692395651240034000523396658758344901189679691100369446048394523783702110726345073495506938374827623113779815750443694188097216840823487659893367723051968871072161736769061645873018868696317877949652905299353988338358633707419382079854839660274346052920195957128486470195922550151244815684648095619699491536024147391946926914965001867261278615579104030437561667350410642832159982411267716613687963918657485311525779314005905867892769182064460212569841823797506500144908016816251193684310691651908785328606833193379552134342168701012116683150333908064444595037378620882672923953651152067343444915072853826977430398183261700095545550623010890132412394780647250205833565239396246122903360510759041411538290827921554278468655486917975551579028004499429366827510996035520360504349739461937639833972984375503408936770346603912745465467789855746655703322701614452522078096703710165927539002325775668814700275251899753536465769040187717627073865829703295611625002355146974243993981020542815264125840378316607352073733343312566806581603517584519487765289263358960223978929718137308507908137581956230223696762981919202404323934885762251438476160320109860311534124991747837608786006114558471455872861100194095472020953411898972344651448738968077073180837461293636562240268720927564605141605162023620143499535075476992670419793203698741634919740501851860327130961141993199607674964633513535222632554935791222946716218423107242718651866865475538955275882647905647758974240175660288225926687791243087535957001970751071820393000441430367414832794079083072983027746665443158226635643927143011463680675878439706787695559587872434609850879510463348456863170890472626469779836811944667738874396901019804213087849973824841966499043604375286442536755409069034374015930387124010874699748989735884365624222831143960395164519046545926092656318274952575323758285287256498617400312709614126943232226643896090651644134391947512715866719135564575464518680521137212055663139258038699888232608661123493028048398865328674898509313840290106073284163911144741201324108427581952589892181144011337841440304788584508605995401259253306155563233712115998392024712583231633381787854322022747951428224636207344646412089597635424488398103696492348599597751510903989477155646612391685056937778851991105225732127168644837328293545676559729266452743632743246747787620937317981456312345392403550706898133174949423373100094534689237395558928069442147190042710718517391782619652343842739663681397300904531683289718071840259689418676629087347466861008470003614177647378520052463839062748536830059474828490084660597066941139498187812119420473747237606169107599057594655722627181760834169352783256529212212149365973301406669808992272991989570852004450988958553925812169379626552715976229487063002253638127597808988702819363444700045019960223484792005101160224863940066501472109912336120635934139574073242821594569989005080738412362416296364160156874997038379743544936443334276482248360099511652910054059904455465390174898479999223923317753676595771114380168109638816961830819406453378365432799318116986192171565014739994021463589015526062681531813207487523132603212747551394199785685941704936672969885650390390140036801654333672685526454381028144146896402454484413756785317602497448180491007234742914472347073487340116422343036990242701626302055564389700792101147558479007956158244635357033093715754430354351435973088347612777388414993844050954165761528831999489142080475832063874397960655295070521050607841797090690348896528456211490082528989856123198649615760341321948705918093568657921155360536225494115648245788220729108314124909317885322010840643447852680630317303420989905757252787854020172583932762530145657770619580830885366160539069145987567903463126554432317921519076066122446039986633061235666767359127059201919616643139448839093928619381647879429462810511037501930632569386124456192842460203283758918295360936719416530147836539522300007116855395540409091690809701543942974389860726543033456243141672918213255020044131622584190270356846870942750464196029849464012991418909887589240063930921209163921743072275275120566578183230830095177105204754845438597375318998024684693108408288047318807685414359108713754562329786621163560282841618155979749277944882817311021339701356762675972495431296670954423694588144084272169874219391606510375323493852400239589197772416607191875595576404145498316901632511184178814246963985204133996295897095451745124543225256988155458118855344937788469825285580975309558431180066022594976056018619407373281054935391799829459108057698424872956593782192672154359018186313914201517649637325959248898540878344576283248523379700426635527045989629546405556291702028350873416585678350690415366665614114583493335270619150089137689767673809232683966845589456400464296254321341496504752546015377880233745728778580196175097406437869150343445054858159354096991153200178425442495683422802987391530549839683197589246759729059401190449463566905277033705249627939609601260120434969044265299078830893760070378914209617407954102413797311306752832578634292373927770402797273705348998441494222104006623841182720310266606922470501161541726960036116730035316056232485304528936931694006471092713864667928149349362578156729818720842249067936203809830755313410419075613557354021903942167005869924734570825958133831098272231587471086657999041456382055284239004195002432395754547159866293970495166001513385755153672986963848824559114742355841723296335813051596487207799747500519841681280722189075033475312686741028444788763520090240678427052070129919641761281626697843954196463328531797330428832939056261948308335814280588741259237193748403659854472399915376566382561514014422301728291176958087523861123468365568793156519970616904666420081334599239433582049021985278197459242699487696603849285943319730194213799413491966087329742306848300096077585513572954629949910843484669189369181351843190600766749883330573339706395368420054714695202801179831568774181885899376344872595763966327742721918962003607769025962807285425599816331654567040837892048439852223553864298968668181415027983418883827982982878172264507374487710843190958757275880382027798987475409754340745380801691008883635630525301488039728750136335059210701711108427364887979410681201833190760166261165926826258900196748282980072375611645586983677366836848144060924813929872262552693243579758104781148164523970504228682020574805095533317245672718354176645075349789973828327468394340486726945239065757922300949908096690104061073404827639575345377657093797087865776426419073965349997971959510030605229609070674768697722556588929486121989269353930151629451267326921801585066661285990254624580689141506582801371889432419584977476692485157289998515984509418059138183025788069522263965082214715098882359313869888261904283212735398278103181302914384648253479802743583971992137603031092047013196774760766866954712850744167299497774024645331945424286259944643746982231270653524714436341126657802046156116072086422113184049355300221186006305375212367511062170362204298837913231227717632510110405674033732133700053391554789645271122397610032498299059493463232825429056547417253262846266225213520525938317973329170056175365046671339574595211298071676671313832518823973767676541268952948530691870640967359087448001794888498934042393332352601767305551189876643225880845270031432913431058838523155660584748916194301326155240264603869525796818779285158494375593752251053855214602236299299435976114481411787772339552980746469145546326161881849871775469192448363899014571632147601689058503110610975687304550280771641673214964751976921057398456293258408454939315445804060603669232978743122635344342878724817857924586466876006047851161225686570975421303193407387987380793646741969102057176394602135944309934510077365297671485389027264842205144278293184902950438511242722565179337273460116690132092602452945838875438916459820273196031103780568608736395045940469194136414265247996565937984895435870852265748108963322746986575978089095118530696996161104413822550275759485117611266228089192878880054992557888348910646235604344763581320763703852829431321061863257326680183153149618712246003757466668535401685624177336994940053251288329590589140183659567308616486904175902052224976865722479130841461734001157122684054338338045271627295331135471390649604266957287912329971544173680348483412684558106228251391466086372042434116426880583977232805317739844115851736675396345961942439058283858845776634615528008525648459228049795057840356393146559529853311892916078622264336698741696585441341560809468423072495520996210511972682452649196544278407941614221894445065710522617076559465311235843781587882727295221562645691710871271274157350243796634194244436392473623524800811090626414689889202207459633977459349040359753281632406285945793358491702804687153143082625370247116696237202944923768910373688084941563584885497666164688359695525787777693225953468703224873019679866506842218192164694711625130691366679260813049310848787864870902175392745459819315547640981806432909474379751795738350083597907155318407032155830727583783775562679745172073648261488885136454319255257464065617681361525023080648603723810682066021995861771166549914491621393537272283115388923824901774736506983285650569040867498984979256201237878518616981082146982519971054962443291071543203637450207052175181761632710921576259074807273517349617989645248557652956295257873343421821526069771238323251171004109184016467165937062039632483600356024799142797842419582061996263463697363920478473090401099179144492599665504909278073134856860591392276702539254980102151983957849086601143610940496618897662429798069164865334861457268165825279042490943594281935304447453334024308784021457169954881550735801310499475306055380339327466504946620481790870227218677977403523250777445398627665259842670553031400767723228796593767016251860718220832301785110804269448652825083820834054793314333992386471684769160740700834780250608058489145979192129403215842199793292725038130667481221001692531444701029032332465664893234010595047180355164181796781407129896207309312454867503934045886683002094466863398478880940441025070211764556797831240922332010619008059877438987824038821280461214750665026958639791288006426076148008742346812468631221596594320948236126482651416291092585599174995884290224220327736449245700823709231334271346300995395037693841058294974875157345571048453855250870927040669864407467513287773918422796737726669233578201520755545695462644500208993459950730874895515993348797006981946827497041330699469062478888792113757388421195841681955070393638711726666326953659772589524397637916789033014429211931423851559981516426954712448657130514002613663358275704563968041613176258218016577617133712795456652994476177674665271910585202581696498061856373282075221155634959097228978221918779444720594482965896009889847845737594149182444551728782719439811260904797138609378815877866010880469774441196531757984783065069533357477691385141159277559815303224291367788806670088936712081548064811674731817189550942195211752276436900279646884307360505651247685848672229134632456300026272952587583678927274056819153540905462481607770975554988153391619378749266243892793517996767265733495836839037750065659274210937657423531844149742719587029839293182723059888284332931290920129391054794147871529814259718144571985409404183344140460243778547136264195612279621815436422234212369119561919885078322534098547326350469233666899568543938218712127123903428247251470314910073264501808774669220142922992834039234629717820856451280931984640960125486237166208615768631965892962246979838025809416759796636116446806025352136038816994881136854643431271560644279861726110497039184053376263968547633429230261515422743639717262653052329085359570066732445577540009639801628274372773390499235472828946361367181517619840867535936218980395454688557269098497130837903787374550562466562579998149489010717003103282650680006386043596168678407030812222374911151633712619899205857063100620868644304813298147687393093207578824537414339276777856328265184831051561113976855025882779718906104569067880516126112391608308788371228930546169992919957028856841856788626742692816915933128178889025566628605987685543535109052056982269411609211780207351015261048626244275324611682735194259565907550815020657571278401371894828972536071153304559224845624452255141177107600467978884163844226642327789871069301856334166843096406538201030543464547394935399444308316227984080016570530561209022867322016883905373985762457194842075278731264760896177791160138345380590115982664417316952253444066531433143229517660088333138242860912427055435812897963241953973496996752896659308105929325364006992931641506300587256642938343457512221830493208074014782877774232949816848990177978304204773195439452640382628640539445790272084346478688692651150127454231296975705368090532195300053694236289969046862772567292119614074692322586428916773297208156063118086273896707487387553555936523035571868770593274577626353595973298907010498367694973969207216694285715706806723048877125895982743204859102563885624002011856591980409983980676451141191411309340274921533411429040544005725269387726801441144956029836522745536777740253615303196288692048046860712127216168387001439845544499286821129659390528591420264074546237982288460259383208077975073520308761660089499491948234548626691691283308856360651470342781248011455248616955661726812158938816478674709574190247445474834969407250795330018386006163682783680411271630727266954204496909214455829380911580775940100142820043819413541981280462997446136767060592083721233089718529803427305151413430161743688916414704416757852236306523331798767694020461824271277239861315343053158549997346066466413471562775445340880085424987451768767091550314664334196393107652774931897387796090095292169982320514645280774258219823636314041896559854541406567436136338882223449289441761938887016682266886223282222885611170889681790348701203082547351087239429819030469326779541881373797281022675538578822744134283421996623102200988689182088633895242648781504989142590137899099760008790406929949603157108106271327455599343754758394431448759659826584017410715971134721627135873036521961792224703046557091222549492900168732552251403960648656969267057244925186017494961783399996681121059305136965633691255049401671130446042792379764836802345537028074416900983388390960525977307559457383128653031730485164330964009957563444411765195249272592081038005424663471732360702381048235025537395120015789327908550889736189251136099199815830724986582175800282932955361361909854522577399525985825462790833100610473930384096063343083650219073322949804085327812867905718703037756592200425941967468691797492076204349805357218142280528046022030783741665833976706999034716424696452635298019457949918901917835179814410655689272419603677590799768175028278513754683435902206479944812739610454729745276786864102390051606790575752640650033024419140321912980196021187535314577660755709779946760654917188487380690731149434028850881136267681525537607449469949110694350456501536317478511841928197649584510439978698562611540829927811676619767468102879434037055985460980246973116040369563455809855262215213146859349208169913049084695894230560467971994938779224595487112427661697033998931521913034123239966847904030471957412615433415711292478109176908358480299682844485209499522898229548475050392494258103148252593713500431010617002387047924999815308055079686018633087526776441392287973023891787985021106910677350031606986457452770425487667638459353143118699627957564577767846861135216480074284508964539622626861976251489141965077327077083691592409231639157182927324793094622331064300191324443125044364301715228989537592416331173743421918187675023385052924175312184273303551713606321944125320091737629216247762223183338791974656029268947994068172534664877127890722481019592522845503007602190834567892664890363018517204448410332320139095653274473357584703839738543185157733831821173055681650650273172126898860300259439932498378163686916406698424042891738380553825997448886926468702143003139788922344858002536095615335484690260646744179837811263193191880256131486349087468054754268608755192543270858555341418452946788635272636698285316459266906396661861792693629716316028179369627107649027818696368941858792248523859704367849129570458281027363542009925357246545874623513632330472760550980805317123556577113784882978803978693871233554817728168998945277281004395971090609805682749579622933927125095355671507039732098206811209283472647495500695224206584947959155721550670023591500498175552928477091437623129906853114717839113110643712374736229167740297084889663781683793249861470748656482261045699696123183639832197316036449740244598467414442338816586963551195460463257028883045932633512930378745541629854354460091113155366167167714954148229649304754865897430317939550678980757738442148274077450088941594936418860196732868794747771043787983955329592914973852781967251488265649791695975154139027229508253482038993134886876988870356560734985646084196099925357577904304717821866684730361379129964079040988612073862133799057523356779091443141693231136800015626778528064159141828782931565220705825358307007801420698873742248803514519003032922312860968250552404764651824610781066179740519099833649723388063618877900426851189880775646524724227548120737066563294622835338360895889083330734737057469752340818184346534834004511616531910018224209332482781792879324840751828277892940001479857760343761329348860945168751897398477310146824792787304061761855455243776517191218341339740567462906563240626430438953863528266237913756862130832973178563534786193589603314379544037974964335822066562930669782652834781594580389219920642471931149228297147568872748444179879428357024662872034446105799489578676219819477215490361207408776853784841308774094860252281390709649225576720316220691059447102719574950899651982950093911429879225945580573552843841556520997209084552486406457246600090227602514789817858025710893399025672435618281383128259753608948438846714327192173250452018498009395523914426515617689181571052296528518647199881306182104529125456331410443639547714756324793920720676554943241654012387080618982712123696939773487002414657094665802569259044305540498509230089860551565360430752273302433658765296967979182635048702963521597321998485301953175388590987392336141827165174962618528159341512833788463993522223573830058997828962426671546489962547548218228366070421277791825317613283037809393721926809565176968418553519426534553704495824983681786470730635091301676440506515515981950737722637037910368868440650646536205420018294168976291167215916310191154207681210391303108362610349364433366349559894213479514615885282087976545305119562566901437460937197996946685551616909092403156123907140542641864249135688605790060828388343477701922733025058599738062968401954499303466348958837418357909958385050731818007220422130844721438872311389657837276503422092561244763269338948022197480974784103257727807973156840707564772310514927517459527699497631471951272634532545422734585254594263397653921685270522194346255242171882117687293953647301451323388428678324516744305402485742351472092371616568123090654395528656130904179385671831010737593387979929677327491536312910073546485487498431891625412665445181908875390708538321031160975909064704130003440247029438179624749016767587028856360417912562113900574873269069079529761511195703529052793207802126461366399250017379730441193159526844414573592375855864443854148833255022306833142242661660396485505598109970482605533159171804410940238212977117561609630837823530408017254628029740870688796005675332968530430816222740794409155497400613632556154159814037060861090993083403479493235041468586055528700217177106891302623472109564865703408892626149628535286678622480326870438584149673759805746324351192615196405556596951924953094167809249930143840887819213498403684377553474128956340279912059551079690701265087776598006075238138105204914537371995937528006922683604502091107421348950644243597317004000446165769671737156409245178432152303120791566786096972337201981473133590693202002351832231530829049501232460768012868343137028102791596090050061225873683748151042368938075917246818330711472856328207400218536237007175726259817970630784828484431383598658639486633293514804418260242981094182770430250235353334239888009885594685581294563127655116030320358683588925580615708817816148973306011027291588908960541394770679352211238249110682728085351762726926082445779271658849471645996851046606715617207069125838269741635068965420407040169652973425750105142420518868887773353529098568458333012132454800547648782135231212744335926173235497865721181249645588809050608382930247557492728822194634773712757452030564392699642269559240432789705175538258449779329804027091516404660857895094210623840552277911562008871568764412225307048681401776033858127784456540456373886060983440860835347953690001478298142248750897809317009599138463552637039861347653805269335440632644069962218262450246102814032459825233771028983727559650167204852448929260930180005670429487815406454370635147177727165448417430349528394050149209596950618160343558075644581161916994354795054806712018682978502424157663795133340780349785919069271677926437192995276145738342439956514301148918646834223379119507271047354699042231777360958789631260973088078514889032741769708475235378112964676487050350266005515812971555903294056061897610581319991468386615604733313858184412745257929713778277821198204085707110779663095975783383553505225893310842749051731128060229310703709938914866064961363995741092293140387582663865669717744765412353142129865230908301731739051597769814458947979894598236232496579143182318472580872880136314658767659359276093638666778251254186739003500938987890025363810542634787704098235383342318366016579675744114575197454307921343931433986969993170837078759732860589463114292509024805385720377189032142188502792867753581221094179840776461729245739461715328657819376269498731936505224521182877938223581653880239287118099627196895816817200644644748961415031158782801139743566731304647638741805345242632862750444915947506164904195643125494544329650869596119793527952920643516526128090573747381294889871181237827748168930635190619663479365108861915253686400059095347914757274362050039788662025400704117378873349298189782500320625405404453488712712028893691325750522705473535049312202190392199830283880409848890218588686377556138198284318366007109023689490864454067492382478550490438954791248298444110102298366998519092597301658494210910690314673994125245332580851005364760563646687301179857048101299891829055337313625912421434985814932052639246014549833200561757483452345485902736681743032829934773059506587482704422726184880473494712042273748563411010470040408125935258067936369555146525274286910673224290216394759209674074940932680810922317943775883722065996528481081495261792169539819048612262850497071015636057439117767657349470217832062043976935465549871898853199158593346572212061612501136466547938235379564667430975529102776976113012074304824071254959575330609281655736379051241784655500820645051378161856631068671859735275548469521112118454619108809199159168244601369892765486575311871744973729685533600233058932817748090487762497286068191929995340740340166894676997565146590365532336807203013242628493922301648221697828798588345196733880787624938038717553096155177395743860973501694537873128751945428725719160337601078166404771135241219470578224122390859797390454521471312889757990382886992473749975403313802576177382883444709712754096459706706765904147800078109722560845025658535368264601438224884004854994284747018122142091368608042900779287152704090050216487645251433188221807103794984794375405916041915006914603182164584183750837984389847769866392260153628888830786716216503304308590015191427536537987552232303265594264982523604912160557655132008673931774926303329177753227220107114248912983592393216154251551436457380506159295745184825887887585178456841775411009222751138057711766120971229880894561686194608133705261577620886182725688209017752527151441012928526374607490522993710413994576814272529460409176796359406017963516545864295503325070687738182224135548218566346484035827433224225963641990426195285918100009176388475094569923061894214700708854626969579173425820770723510962915592952886599248475787998121733875616606481661894070394988251153372439129873272388216617868582771568209684220217490742419616907254689181367993028348086333119799982725109101095151833313766977788527532256535753678764440276560161885516648974200940388308540220276076010175661655404328217591657733823512590701560845767933267642283239008239354647125224545107940513599051460424224537551649364089021575052713839098968842958771135586618326744738710516839267963213970546965897291920026722100625411626925336839473876324509526529503927325138687777577625138406649689675582329381921653162828301591248832610118934211125226476338092270626761812423246119422700172811638732974028394635446688799176079090633503986663340679869978711334226821640710226661077344266359878355379063930945727068238497241363848468634794733525310361495662034675036830975154717227310469097813530143542634999968366519005232078490020721229448891170433329201390914912970272298971743927445656034290441445496321233172348948502168004115367823429411025016530477914314965041695337742449622011085891725887122155797308914325519571345369053131146640942599469899265447650419763778302798443478297103188514703904532192051204340223284587848596025592954057265292438329450374835821243983487847922707832657833218572453542712967944607160135919944508352215211951586407693367038832054201427067900955664980606447050016803474067518927194920718788538578343042196071369344815312640954671513242070901213866611593872376326090741888690814877263155914529223885428476989631965164388702801264274829595496345301012114969571985233586795331668169706329568369011125580061194129901147935340831643639994766138358256052498832834561530636286277835548299277542467589794095553289347591662701190753464213497988832313926394386576761394743009930647818044386807079601636957223943557093957667833283720189657008296556391654861724777049867412397173957104598709632209880630503384002938604654918568932043634747509908331534732011013491741781521799639881728731039602579869045629755425438257299020531266436408914978449444817390210432080894924988368669562956266961985765805089190981045791518500395374473459712996634354972035555380609382262559990337006483059535352868159654726062568343021622370042502257599985959753309129068786859225087201428574518140292209106571598093344457447185641221875007844086407939275317979880278739755299489127269454160360884934744235788055021487989590550998189977205098884613021192475151775428582505190332734889485008724533854526383797574682346238589054826010421464346347648802076379868933610368897937236900002811348082343699335653111685598752880398150834540878341455985184144166367353123734146918405695067477952036697562246243861305103201650947500358822565807472047506895624600868914211645911046571091268094790865613051983798472322686053081557795868493643334500194343968224928775593455294630190458623718151016912723446190314738802447700490178737855568597888293118025675350761048393018594004834909202430547724072014821591761579087134552086370913984337490084087457785461362622767024359851720149661012088549715519491945731551801924603685498503738690777779825179477256535669290205138439060324302855210167812817318693273918039204013592216954347789938600874874457397954291815438651829240303265572615262143988773715197710107748715857896928369443480083696448708685365537279658332141845619541318102251127066101444895323630249189862576106570450526666421664040985333490873838600609874993322581898581606997217228000658204069025982077199209785594803930515366249402812676569664210976512045280857940224050258612965825854576268785672042381361275622316954928647262222113991225042617423597713480581853110782117474882641212065811377191255011900310750378724622627936765351956032429762898712133065808343499185519643350706448980952577931506496781875308863367730253272962538779928728793415016514652060846066758983399382594919978188430812532496881807252789957466194923503668117874954500810070918873082453216171664912692752335203468358456452376936357896491548351866878342124917765594932964137687222355279390531290102774315280462588431336497263590273446200188820795241873572608391456238804990644594840289071824883596092190081001620280845512912065649772064467562249489574542384053552824050072589684677648470361131773347480902950663668912523096203888616951849150561405982912067393927777232736609306228476194788539458618215499498080448875467001853143482903073243305558846849873135708811829965822588925079027172429592558900823722565856821073762439381406787489261542598231610119734051689448600945887490203507644418407630494432039041458910811946218662484286908722862561379361475074997255000721907651501638250837024597226247366418694549429936787843532359017278539318271500020217199083993869508811015154350736960418284966910327085457459259828221945782971287639627474364289967913947339167490310905789673969780248817817517303652628767854138022252840722822492572398661089981870886398846901640345047362703451220166978163698240074070329082216083630234281957313324364722005362896476985787961206269656056085278041888540380015927506487181756874859723116276066548582576974745460248519866533677442900697599025800939866849742287741320879882295630896174707381636947592254823594948093703619524031972542848187135907406213716072960240363204775100027511552645555223533478802120069831908676860390909284358667991039922994016783216283193591586035095570011963220376951737254944213167618691538020365560204060985237234002480487247226004468024992275954903116263897139520859008432923016321669428233751434181670157069545621476275104829819837168700607590085097430731188339780312729536229897084593115916338201992199563005831693102973256955048227595272503306434352191733821452709947643963946430364798122748365349673214846565395331464643095854107931543726097078754177248527260266165594092643062692090188059227668122758774347813525695286266833894237678929823420223270856379314848872722539344996060216668268202330688470519502980310777561053025753950848674102996915376238765145237728039994485768597337164346890177682606052907345947414395406469084228414211299507992748471942537796698005139705989954694493187546116198885292327540453388991738372790934544822918633200689798791819557369184340380259127212872657080482190318664845073398987807989992769902108815098551312742204202594847461358418083260371297303140794121164318336375356615542609500165608726381719195037965376661289509753831358284272672883805821979609577261569639551356139194575400091279523879116549700188141048443070323036070684708502630779683175176523872298450364587991780099556385847091766139626771427389570738552801180781008012234107823723015039026125703914036059635674616366661385613108750533830888666205390473255587365945953480306205547720710261230117986872964601921620032806102420022797054633990757623243519834041459581324084937166810337391278731573030202357534545193149533830971308784303619588408693477271210313882400019722322160341231186406837594327990165225729206413605993356076196000503523888333160110906690309749482863141296768651687470465829481472851554973355580685282644159555582524403747622814010965400893872353686703772880592262474472103766006724192185858365701163901728147638918283550859337149269669024409116570116799989333271813452146015037300039661995356321268983363375258044852897046753081751939475245198770735205204178946645999998408382871150989947022869867548304677791753319002856426617830115307431959236205465781840427130251066753669359534639851795903673160535985646710345732716534655809928269144783115444025534765710046923038896127137765766588291891313454301530931446704169234883398006181253889650962635323696724994591272309084502438402153539693437589516803004600098005279346120253494915304589313312960748826644394795444154940798464014976064702414504414653596299247776177445525740415356203703275377559469001161521179406012614879865890801513162174734490410319181154489096022652601620988106395911515843498916174696508026878292678320397027847815156091436031876396188261445231433657953621626296697338182310823453681036886206379153498058416522775917864918739024454790151052430130129954831991767125775239303976380139920501286159467257808735299371361541475929767234859273422709783351034305564856317567692440475261258080541349568189959562394078258707772920461786928075217383852060013298820812059382251499918298891944709485130600855284209066921697904226310938400416929158808685044825682198011827461400661802470586599803086480898703228041872949586423095620539391579905683055028121503272368857164961656032955390039582321097994857151811617741525948238235390378389139607433162432632524382494835704919806520037022045198016577529063818712954386730237617631243057445483998203349630436537677945229350365585407756783136738088098604945820321325843811191592827727672795770046839605041877432085751862734783979552192917630986840085093185740238966138709341261235674649710861163121657141615479398757244433969794244094501394988885473295769745462511902509472288384515876568725707935919911611403079155406678231114852439898759137839851205467771221478228934925662778874219094347540170845916367789873443882204030566430944060825785255121336050278689027354459883948590552238029000773904065186744140683059999231329247118262176182102552743456511205247553144871554791056643308025258499393570247341621492827165861449388086028199909689067017273440930930371192511759705188513326031896721564715218921055474287677675664514637518187882897114792817362384226040618991165841619635665621616572099419244412159209034969685530587062741268346301100741044269864111736610334959446341420755080131476605727445247332466091690407007703749284215054052582817645253483860110923965417850585670807595435054460207049043284948056014404262291049579674627114669516545102837377570273378663766450541400042924766275950637794387798857581969668102705873372342626059897788250577954224666325697462790989045445081666914876891115155783774561950050947935885191734773746632528083975639074610527104668848494249365763806665607668297762023062016164615830107959408425462847216917609747576873700654027062731759871668168112438522746907121306324212689993779204287225818011971505879330101142281613839862420187709287351090545236431832953072725783456927106880196172296835213999845562052717183400200335072441449238737098790554417083527826317034493914401964111666394299864527818784446469423281463482373217777211721607706106144585062478970129996442768618216642746541747622425587803995647221673304471939393339986388710100109210299759554818417385103655103341083271098613352235612975726309103230985290994551420424015587531960504693251036595837060828567761230921808963174201103562748676363913588041557472770958308223596178744066023770403048317575857713927907951813439670816059519130323478682010237106558619662320654649977184797140582841032891194509197863436557035965416637966002673646614404205196451900752957323822435826695491725113438918671433977367919705042282389578247328920226089289499953133119232121267928202487901670065455701584651355396967022404518374456166217771451886815320459764266105924830603399176084654592612499242746130884077712608238458747434428876568443699059096306431990499648492066942242293436930878041413550942612225032006391701068332025915937728581664329471092554359919884233332501489307130409786224900867961468343980328098222297037578998248352393609751647466520657612071800354685380325787222076669350980026510053003899118629395832043130076181329241778256565409057407255919897393426565089887459571511794292741763598256073808492357541696637314857717143831188860137876548251128786801673366943393256780400618542347698012663064177250018893645854348633590491864172351493918304701638279659892587080717501208761083312554950140966591259773602635009382139981484902397113256988116952791971793532960606558897398890460697094816305406628314246142046763335726346701859710858212578615130528716262733856355378651062639850229408213302181132934153155069835099387271514334840339182913084309690138537150675521236973556956834769197833723394759870234041063675021036761599503405570188925837683612685171171642209263479802053545282812590779473047380612191087653101093669898673795449160590831294697043798271327659687009226025436130779461848695842533789095196331010644330836851941837749642836371233514265201545419499428695817144247388508907108355398319489602102898390463298430334761807941274092245637195012194990016665325794714542978412084056438988419623207192496038491541510666497889798056667125581743709438637523751555680626943202091491861175370878707594010045121986068339307641378083720842791398826915794869533202894696083061129046885299617322022400208594024612902182947451150173759725639812048656806837743940034799760578996564479233423218484178851778374319683431080758096597690473592470275764348913684607846976542099559138163467051203075892861788511827912331339745584331470662927022142074657176251004034229073837890259508433053007102419027952554486316618808607392808734191774588900278578741712912132747232673285704789984184268474635502599931875657330592934489193908317597414569638353850067220436256074508250478026733427472867013119772529862798864040808045847026161247955152461172080207871106770037527066160646709546349435716835684537120587676109628133735772418742657978939180790107416889829035357264419606864602733962243008590309560130878130554709125475676609413835651260633548912965883978723401618069258220621814952122060207101777327955883332509430720010855982152648332134296869128083262963978406588374651572600945190791393426815987030334098371905392265016325292005490896563070890034345914190713384884838696006067280590331401373673442885713139746019881769455446472580786386586033656812869521968182186231812525927444206850760240199410989727522874606246078528431273418196072961990649796752592028924640975308996625429527525522934039826058927034835559704266710132690637309645100575860339128517542520052180500651302913999809591180392163261410712385745569233511109128156667827674719059373881810248967516036669418126653262983605459805321084201033310413654645757783489102452613955821201574321832025721425304243663667478467953719367088625934142588214569091502351885956252850646248726342366720390278295357848332963365144846518102518010249275447403136126703658367948187829720827132600418093381601873199016626057654612273219973339272753313892283386091196393244322348744772569613334094312033822589110733982781791424276448247925464279696497494576677906546577043984668653384968961452795080582896814392542087686071789807061682223777023112783311022000811795693729350545105325033112903263619729388760887405682013130906980926475175788971151016530481858166064787698364399671618459026164997619808132290827574608345879805833225669790958132130413744614501234811967455884590899962663096856177066101531270787386457172145293555681279734050711912213957525466711237799815752883543075525822797197127816743899351762983315061946602116638977242032952419229698745940362355782140631804895749079981956406900932213773398267684243061144382884799003787240705625907254195690099031816316317025433020975916678838102076320204264907867552314779251852484783527307034741223727399529299209633994995580568783074874836301693484028801519031346833130721944067550183441830104727370458531880094438049293612668306354679622794467108312620901761323381784865223721107163400400079713556654918743425879198804063523201748726606198640008665251957550561038810079293240355865568698292809712130184174138818281926025529293857288532737570931309299716242790955830363993993541532312052186312255021270724645739784083482623406714884024686977464186985531216760220394373464598906334950496717001942968209713147180522675347843821391016817178301210814793909364060133019129380334973306126650380481962149613417583360654887304798943802088278295619610813733946051842166401423981115265217106012628138524831377197389012656751229310422536486569438695646725077892556597491505680947349921500904821353836726274296676479423647549931377994588668864871675577551338338718098205377572488630557142769344398428398842990381643007287189431753715762093096139813857039477788865217933114515306250668395331632216882167394368367260878776656543623365190650181097736517478533865042912432472901875607930995674967969375929267928600884228436932223710755052885664916721326981107512715204355007719050246242980221791939912389270726303431118617018615551607496003169720362725490476789670826544537648445590176706568488513826129790276350416675951653065310347277537727733093240727635665474184302531086158173665391420675904173556870942237820425054045200264038988030613743816230341854543155176529530886961225585479654259025487050153096914587571126847964294779813989777199812751175600509519884121172822463473936871850156547700888468939546416126352657572974297957275122721973697656938287769154553592952016706508902774487278906971098282079378932958142140344977301420213970568109952549932649038098258451156781895650397488812339049193608383915043706467427561586533275087607125579451354085876697283836361817659386851335300291857193313961229046176852480313583261308554889440907897899141726458420652861081680544633296491455382766427874516968140077886924172499226664006908274024864779008646423028016803256713676938151618324159596705218120411247761682375498725599142156736018253088995812708290883118892712984539082875326122523682645188340250816757487776499811225861123577471449654662731786963710410438178117576478637446394972486108478952784803387218902084420410701008395254070085385609740371792357986613249648505379971532601170195887169991982688205433569838700374125123321824805156067833901258515980181149570887699715847954643270095762624100010129669514252386101390119254973915143143444347397531817092882889418039798534575858837644529092701558951987265154916667987124999083402291793932717433212075219442965427995098717817852979920165500781884385396505979380972992481475059172352759185235092876021494449852758750641317106230900088707189544035764595547222172509595474695233270591839276574743548342859719851896437313049808751682271247488628315858585513681987805308334098052832175547161802149592298661361940678206039936494454776230901741526161152496934425682847002192712940956856529146558724685281650068652982290240193889240595123289161885817593808851883331663235730761655753327408999229766658858308950204474659468995313405210144753214990693312657964029978315289789608459502452770299578182217096926538009316040403453511615211243601366578775935477816049466799607663800207265072819378985079774979991349038203938864819792224563549656803907062080906981438847373849990236104331027656181912727347375691800272771750096794141717655705887625473770681353783978880727102613639538709868110565040826044694559654349796629914677590781557536822227871470370798757520319175209817357147180507043215695476530613585456069314485184809358978458118821946282667878821805728847765990860665860098384272716408696987203344348603696241104837102138465805641690507274065717499230277837035683599606143472961140262936099484812789996730864643481714553127246065236204189850604236955901075601183772340169966647821096821033066524191118510935833849903211943783131957106540243420163619838397697805294271058824968652256369321500693658229156593177807663308827038227630802083206498360411861990542756249497776470020916512226071034048174907075049202826985078153448730683809487452389229390102266739187280743291711357051144115004308289913991188192797103063073166334655226907592730568538503106751989846194694347253315390336022253878754664469027071896893381581619261706276343015665384215903850201587995538444658092097661975429189526627292999283529602425177918428923112894249625207571665250226496430897570567859907996244452809745645291890480349378630699365468056917238352801403320401918386084585721506662940542807105709006866282375082387305037068266146279573335587770362432358768735981261750891407423718497516562191643489950726291071881347414126791978095193534488850457003172870846836496850552563185157213368430211999956271300223800363263585933948497879223942867406832027977414598577408100390909987634203288611509690015954999598830653439372162948767712391404506900908909924205267229483919161781090678236904811244245379596265890095149920217798257962888820058746490567450085225692976178487036048687341383944108501913727140157109848304412809318392516784091364035996425274942812243433546486739825969939644273405568060510430980945131039588262592113970153871286858512275927898503461524322716940353301935750566580085216458682115789340829894790523890427095740676792129388473637141501221443035715292826131029449744110668606269267236358856749498794694026149840014907156895861322620850591344088267177731063524903574282572269801875832096155641352192226874022700804169797588343774190396397470226241834825973850433643961085649608796073507653020917344196965192028768949656390485098818771820777010555226920283489350789432061235159540362882548618941151311675237028940396426639717795433646633146102673550369576382933610336336424467813186232965946974482562953750992063570467474417022463122153825917932455832639218774401541741694872792042688119389724535671119143831472872167848444436883795075199267985432887626489126196568762808389479540953831802042197936952857879972510751622850687107111194224973821943850197497811270997314567482720510525908679346083138091738168331553219736659964726851103083782931624034897873804005287186476547424666989392226474845257881603617072449562978597073496789580076331486098403746981221757479051305061082155048312632118248068651548818184929226591949451689404074580474289204615081498472964818107491740457008610450825724196646066812008328371988674328283675517087528593605031991822029258318410748142230480196003716362939584386674165199610056587789755249748420729019599865354873944581610896631575086542059774381307994561095192687045157228640171736536225537582227439831061523315057292897435220576169816129474716524227635605725235227549803471409303162310122056352323341031103344711874559461627218031611768069515263732163180486009341315862477156245389648562960115790173810305739876703496164403314046284758432034377501064665498252143126010012973540593719423841333259605689220619161425007717045110522964807431195421215099838645628308016072124120668001762079750625449934598612010599073719883215906677454628185921920314339739684568429989597588098678110701555930156499129930147087302712022439974392155274752553073206402871934136177762904255558831164966740969283858178674292947104752351098571521844429101059493539236326024744745198861883681822475942983112083251800177581201676338328080738974811303199101668589421599076166067957377891368426017758570533678614379361129081269261506929322202784325178151254216091780488183059063380252855211020705461925630843619465161166329066449915746249592249423840220814653822853030158199617980437348495181334151072778888839823288904683462215484399501377042130755495887615482062420750971393792155390265895617512344214954696365264423042989340542876159914447531178101865097074056008636235796512363688568569116438567608385536184506036632610143595196799246862018008736492301604591060267627330725214532091432475825155784861683815083965539425217981267735156620934281417267427334026474672548603451721977829130935943056841322091272215970526297161956124762775131518678202155381263472752449277089838576517437293386943158405758358857207605991600231053614554250691613977754466335679784972828897032809253708564618416460998066097236225992801900898225354921692971141557563534567091549892105535156027959336346814208483322191924189481158791887155180744171794974955951935738845572314886613269425041128997310308292044859412390360890394622272961964024203082366489467378226727449970911079763715293253291804906568048537179708699795615515554973301528513525129849107778171459693414564857160054997983822747972510313578796563985935323252573712159323601626215895489041596584440465009066527526362035749591773852379950889203262033895521697094827001296377246624781885715049728120487853737656981028460794600311270872554630932765327465689575997328822232583636601833504278801637082264683464456918200012961139762678625204080795687698372357511060768498238533616240681348507525056851605155535475780387849642644072140072609909061526094710000133656905515842815413822685111448544572948113894140026063397311927532688228465703140977749443482940707123954964588455592623553610036944874803862360212115421009684149669789597116921185396341600700472895700833953026853242940861916357845858523144417469594562118229924666567236818831436679694968424955283768649049727904473203964110507159044071115032621657358562566983581849170940993033803114658757543513440271619350476583116137924022717311175149164911492898199672058931467121690091604881896050449333125725761934087170879239442819851658471804661132880457250535939115999935141437340677714395059772113462661581797362534204013969255699241782701640627726912454379200741301311312306649566666530578312166813694255941056786442045286331634899468045452708920647788500394809274136825835112755726863794817251351758028792543955613566661049722298709312881341292263671704925453963730098897835771104414156315731165714011660393551855699982027412053761905142095269867631496287507782776697214773424631768951124716001368699294104103549823646741437333121439081619526792398065881874340800078375474608189149527495923176407467396708359785809413388638990970851526039739290755294983656661477055999811733961283124914849970131055643789087365839492190830505285926183299056906715651640920819135884599896163256794590332955545554834116215263434577014593672891502082346585030421932549078043797550926729198389750117562173353228632257821572867492521264778336358670790974265896243710406713778724009776268407723060483476545063354116130458120807923650218658220938561369810600637600101202396790205816558269070735172726617268610575384902408310917052683555531016888474183483009731235000992380088374603892430024524479856737674249612998024481799034253754738156948904414033203006460848335637476032623119381935731387986504700325053427885539917159679280974650665908367717848636401690475308054689855916554652919956817920179914585447018991193796917878465524885429773106567944638982377057471825674985078443859926491265767429246928846380171852665240789293092769788687009222906160020017575429745480413400631330667833344619629016029209211898583858106700233499156229483253021262801269948722012249336142715445922665170916654600196003433301637969117175271723286097991696301409479436624490251045573536616881354093352347607907711384401758758242628695764550338452609387906409282082873968743832747978056369243633997008970088823116798843411412656021758876389326245211034535130459860756960887808162285169457771354826407490385448708781853732190449222604671077782621646695405366613666018245810663598893954857919189011257462666033958220117540281998412961114142572559609143337159953999216012662385935353010167755134802982980218925190815902817851028758037497246712402439340956812319954093071127320264302757808310137273738247692935078705590972096478251379908814485603232540698093243318456344200530098344504785547051231324456507225625856086290563276167899973069274804109613902848904765648885057077377794627264511047090958799347168643019171011754164957917078498307210016344101901897476415925996395207691041803283609387485082363507224883493365087571957739901304999675831696905715181774446603382113047659129261962772379672485830038147481732920502688157162984066604720178627042001061040407787262360699780439161044046191629540590233846077637137122031673140353990714930642078580276383339518783943796537922448354570040869651334786624820782750019685677556285092763415912347595133989726766176376977226913697769715466151441706619082238860792876452436051705789309046974300149060712942899491941521897844829229539108494102715933006815672935229071317690193678215912104604628775305204924390921892887851830525926525185684675740334187632876422426525908571593380099565714667318412083810507902879426275921510110059077341426070472999804340880408020162543648252373687765819246668084212784912681219313264571631488677547788251137524774797801122416964417918374876036364634144774564289859538711922020402918338148453452448488252786283335293073609557684158427945952607485552934059139657507665583905621314044584980597371492427545980162401045957453526283388305206159942415793472280248606310211440252031844400939721308046676423069008749854011914777196923746603432372891270205593426793640594189534383576592230448279097699309013666276195327673573583259915305004135466991752410335071659170801024164697447181614479199352628546532963018739252525052916208787578202976411038993979958844778771288269632860801578688371717114748484206874847099900830121541353275986983954161419570603637910297071466073649998033784270677526877057895755798458411206968254582653525505314103011481241959352205659920043142397264140894899335849918803988733933648536441786115044437732793025121325869462276755455219120795544177732266816457375735981263877363339671094579965611726987814075747901763941625359844189950084446214730703236983739187558314307210361413360351391630490739278625069995625943368730568927894815734160789647869507276996418381612426585321347124672931490366137921425398870513116596434632300937912588797920149040314401593178774606515875089040679422117801010462421756636720960676516267630190351872510739279406397340385922032592458342757697919362761051058058220789498899711609385486182736987670340583139632572787801422856679267246553770110741301463770509489736430846541909380232140890061837832483131386577816162020477856445359849162376692114415582008552560006332121057668487381212295592262850867427163815210625798390319007777919541574200498762723132007908888199057711701761517660854249836584744367552582202452518961526071385515987607307334842735112852228224326266880540131226263498526677908382626768596885403739467703136099912753997495237596580637227406502613704628265915123580885230991242144614990790696557490410211006022742684034172157272116069032546730157832939221934983063700117619179617542914765828623858214496997694664093837010721164198733964026822839825549950264728692516444498489728338053362212429772499189964296439097761583658791580575010626303125503292394037863614113256846891633128997704363736605167415644246724216091477082588659131726239467974217772746712139286409625728282134608973209428361718578481234781538257315031271222307435225637543966465589552065110807798604344627741919691683433799298924779851063943051794141943157180748006290046788046319421502400103687624437403895671946547100951089776451469022252564273519533459690111602748648024640746330980224038040781987590585263577575420828923045216753448339603474684460412119654811991090053554272282121920145007727625385111372522655973182279591257875265625484513862639010610107236138599885827197022329154227890837073476564513892913864876657764617748027387376127360826513490658047245734068429192872501038040500560117819292755531774741883007939879357884094963735838924340681072878177743976666584338977162063539610680085797315900596808804792335724570799367591894410693486163679035391752551281912795614132484168823826629676173387319489589994968219366903188314467264927075570170466451552373578101845470661217043254064394641489252709938937286482258628683293857434629039048607552318025965427015656203429253488382037261974028588804952742324472283246664538948516400625588990816810347678048494908336332019327795265410061546433670242709539446096997333500101050376009674084453669752849682577041064601652203909237478544443837007664106308770036513063164482017828941943654697876719670500897808888823408455350348370877339700530954379799205593409245772558043107617228797116841222639383395017810588045321186791719885175008916447824881049998566866206652266518759611658389816549298922006571479639262713607564080421116757543384504734705123134618784547485643856487393138637463510594126795471488374050595701546460749959934445726637120301294507205003289916111469392715465079286734570364229149334332484752469242825255520473341320515368371371310176780444986756128214125537543367486792185248392264726974309745803801937953121427275999742383113699946627531169447901577743500064727865812230515383682291069618132782657683148391924403933101921099988510868993133597211584880161069006735385695396251084516711082573117907545886727894386433625470402853508841156609669958913762804097118990151897062026557045590126396430323835016672006316221626907411156180725698366229543446152877108941802364590797621381487205022754696410772741598659100317931809399106703367867062849219100364512186452248445933986045516961951128968219605278833677634958329488808719908875086078753420678532414152689426787070936934970136639548113889604984888284777839182554494326198884087697269667140297999434221405728834364610711905687405923172901577929265694266344635666501300154053151514459397447331220932558122531899957630269378263160548810229742848305912189668456911252679629056496687482480760605493161707136501252330772036147358708960548638412849961361974361258098928888768384234571781979487334207278296253201415839943582103353375174030881628629858929525174463496351271666222253827580274425853022057314708736997737812144902712389112432731658624721735823522646993052470139631580374956655321886013189851126253005687861839161741791887228426117388132446628466286665471927074068308279044002283815245806938290422618042168581121213902663057798573377267866552156613997578589775933998016703641537142653803669119865988839804614619894624592256341681545285405344470644213868185126063011995373647535628930253209884422976745545172039514537556623646924465659687062003135259820275221366848369658685723800226750423193292729737229259007810268608354699370369642174869679535035622615958750730888326983589798567433805913331111381318604345788914355247520347870559155608288716736595371434641115548274382595292966994827295841886006302725507743256781827263932738391905245956983022636483529358343264734376324527273855155084408137766445737442654491602925256391206058144482257012240168796649043453655479615410715586879876559676368408252827869992085675397108104411551871127231031826307536358927674343235777077334625693864000602827658956260295050009995698092803261968526678623794346894031433506856751966839198950524545272110197595119811064580810622482201117216691087379881055423941923415928978142919835167697796186289821847053358243603700698964154372171175896303702389490551368223786366017005780202480216162642058299668947065247954668975500801431672359832183168482839814499409040164194993520473435945203925163400617353516670744914415788369770657724182940885631029547769330593682031159865507171192882622315604481886494048846990973460235867573945988619866888137322511808770729278321577420098791834045440362356345032368629566869239719264358328849694458200653030329259806043043555630828030660807333349881176130738544400175867184217920207284072837930174369642776324292169315309276902430280538943441452386399292859907718688216928400678657751108846928812460748439567608331520418826114852643419418507976951345619703704148031878183146693378280058668723282399352853341980733488142587776395033875732689031180265746882332935919397006791083144296994587361396502172895419820698941004888988581364330655996959948379921207599304795214564544215435554594407354530938136836138464318454511649162379665554772564191145864908453915273078980196415716882499512145734583641881995177943136408431058509814040930428247880588087655145569277433112966259003790954600884327701355069865118432930220110224076530403189670006865880397124046093016543156549696012326001844414454993950920037557016261536690030003530660136580971716251237823951459600541797209470139373216889499173086925834606362860413056828787929009322253099316200558668070356038336786257323284805249948812588325415488380657124220701120392939040885157655219223265387095559936404954419824577033670070561230779996254535799955730869318267525062030276447984638610450862186304392408913902835735190708269001810070162560976545869307932901595738501887740630693594981627819798766630506598542562023143310644074882206814333062373648165695936819321253718846447705903721968212617601791066764595364920331303643503481017094988057771253861028584222109811491599458757591031618257085047359622490127660749350045657810815636488356619338515443886514781285057475316007738016840245163208878051642496945177804060430267130651231120461520099589011589933064976682471316975954271269293028485795602789141374762773064601221071182161414941246825790654524354765795130794310359744097960714831921601232770575461083541494706440298328847072287942976859234394235191646216872137905584965384808320932430428596228383988383201818954818921712029129542829927107882582973992354732562038005370224222743448706633012287683532424367848779224615755637078162953791479812446314274305309710969150776177656806215659484743579294121067359148049936021781982409108554914134376535539476205922153967739261237903906495308574663002009409902037886070912461724381914308970356977520853452453902696969972619667917729584335392235363302590973714582811694438154905644878064272966502803136727619289336327571429455101292386908133744118977002565100985087347658900971648097595247972830189092154309722831628088214329901607529064220023034726581438118873579892404143144988039806701793475405635910062558627436382212229055361781966522156165817937174309227636747229643996842366996154289909593594069116401407180313505883508876617338032662418477402428396080148602722952331423752994703112673509941127502559208857592866101971065786497888965978601246433124266139443340612445290929154989512561303355340826070527380486309456274462117331198153470706752860136865768492596573243915433655607072405172899043866029614673304488453527125768416433232644051451939991665331217317313249024291145629295207662024992454213491733076286401323609911620537476636444918388885283756491386280944846270420050025562650478955502130847019600263748813054141065044781793295133364753989440938362080739097543712866505569766526319626856674142014136140657839749117838060212616375682702897249000844901356953392532313666229665042698565065979465797276691401328516771906849482531296938052754986116374415210144216149407778244933546157390222742181098127688388242455690456007113036045296411630223836645585412931935311726727183355423510221203372972340827656979006228679022729030794137524565638862872743801279188930415793880541960133436301694167436429170175101892707834749768585673534657884739782593846682621679383685554323307689483634052710513406734756393544762306310298561210074072121681433433955082700087455725292124004043974590705550056305538903091983837986072453604598433588014177248119122812452507891102177989468603886677878832662768411961712542705843166807153062389439443948279850909195915311750345717361913561362666070834559447829343724325141722054272475375141121324675820778714268073810895869327445002112004360406232089897706174375881735261646962361113901928938114031503967679888977545862161819077273871110591637038630702456730254455919555866950004124212521276898231096133100292495027012877049802543206545257328407136830730254687889915669476929465956768285616464966114292530461316282234779578438608190130313063340526080285617315848318414882778817659838217595056500625853750671102500984341406347740207638048790052391533641194429363722496975011910062283576130225004717206192922787265258825936395442991525797128264696122019065280000906482664694480743185941818512420206867256242171777019016004391528456150496895921224165267482736106136219973673570706006150452966706793265862506160309026026552783007447083263061048988478302523869733947367190766087955621485310456858423113941357342432776931100549793122933918959702205157814791065503417676713524449808365771923563840497830224268099138199040796479569616787524357405199122996293200202828829678588920729852550096836767051056804062332232621716453643824994828826337894660767047889483600963585240070147427395566050245112746970513216987705136237294464777451603462505590474387159788065128542672264435957920268033613549479760077664506010822274665332894636361218055819182003285777426985630383645469575050262508118974080081029151283636025532771385483616393618522080945093957982576024699479089358836593782635360812967461643868890121732979997106821824981854770024769751634207193630676491516987457111706255298014343691693423800740688725182643545985534818792648594488972853170570553400509515996298099475876464649901078174409341150552091612994888401329812601763429767090855614503003728873523044513206337871083202615096981998421088501738346177432639846741102488174831933584822596240653364779693880878303503658566530643019979824300619129070284104238396525886237808867320691909433070430011461384548984622979664704859839876971365724941551367303458596008481714823849201459998898695511399675168940695872604862010840960953774400049747777575399140236224799077566588221321252009755688156952660140158703255849492312150110988184212434976378674434913048262896731108772017869385489357517324348402540684511705263051416818844947070883927852860389895219267818125348822607907553992408668747686511479331731965649466732742751816174493047444063912044686941039310190546224913071612616213461561026710642032358591185725429273267522201234141337755151380754251570179388471315611920523209930155756292783986498293142516561349283046758406308842529115441338382489359243455657230629773369920176609266670940222104140719322261257032758115234848697837861719539792037280872522564001651582125687199257647562073082474190831447290032658677115319917927875896207657376706564163896944559597293034991152040326213971675923314334770578000063148936999801028660868575500256907970713208640240768408943936820805098881182165461643905791688319896416063862230684284062646938949991724489253717706983273413590789271220957966699335235473910564293161488482728451235366251682714466150355815655668091546640764170197823860899912465761683456591596722150332074699466454663920762558358255587446334487653349823805608443564940011642365109356717463333072400041871934222945525268728499263312678043951082796123000568840489988916105848594204719724903078536142706229411643287927440219445694654107284669365879519083924847333147611507303281358438727155392116918136173813120678293407007001174853141068620962315382947499276878679853488047996169782145494513422988812592650793974557461856424709954702583384726748677067926645244074517304761395227815519873338734865442438778574397912455696765144364602550100091726762149342368099572929010532748404312762461537152652571439457927074009975082811514516609198273329939693147348944039031422702769628660187194546070775900932935674121198959334739383563104291505837847877162975200185760171879322231193545475149150656749017189284994203369338142209842509142717642923477097455325025355516250054372907209846074602431668963312189095184436436800139846406197554737866810335168947908921386562885470215389359130794016932290138994840685160312412790139932947788608527819828009910229505318893954460971735731859560802872333654594420757542916488120631896017805607022540871271825989216597145470390532196934615693011057435922984633253119743527167784466924007975576588047328808532382573746912711681606351754059143856886118603726152757842257387042852760080788613809435622581584182735685476727208414344070834092567459548662454597401008747136373282804097837093163460893621714441603430326689985475584386909047712129219219613876633146037927638405443301520469963405987417032572928160080614747993871689435552876233263867258573208140824755976915753419367777763142422442681901132616536271174652932488191690082825193405652069795165850216456299650200845251137138456151403563142285917761626194038865557618012161023431600880556030202589550769606017908563941768574779687402392737650332195953030917191866063103522492042833358625059850901110159977516087016424392571571352124751230501662862159383798818768325803002685481860481005901289680311843251475134612871589870406524731165859849314362515860091387236548609177341797768206055630209871029399132040775478065253091938012918414772751545371848686809876703607083484522136890190629441566915726078812405125932245297462868079737884770018772776308440696964244585535090169737397968624325494643509159264780592377997390406143463740201994005908007364223935410276019491148372882229215831310142672801069932424270994582298922321441304103817832549807161179850213351441461947978946244354063487273741032883380410770838383252584406506079396208989040967360762711660606028259570278208634864642975705518140467560173038785185647671987486095774368348333715520931036644396493901353006149183044942609205982131216022760449345743567006627600696318268393356351817954626094393899172131834990498435179816299235852359519319392564988423610302164906350443726212516280622189283660966969854171963392481749252195349671348239191792698782916773950389588086560004258907339712346575578443319655725772370206030529017159446344164827506902815896379217587494953076469038638617064066286923016685854839348763733494504842913782470800894458460917606529604313326864628277646034876892456791463030200092595036700119039561855446485405712160319950795302309977526296417805864056820062411906012751871243100494521593708458073445567407079287783966842114159127314650938431975524983201723658177360136897294274819635267521648300968327300858894385886492462000863117412634442487048084290842623057925446229046231992338428458400979005106320158130322779100755330975745829792489401784553508596858090981136898861450791539820583389338688960797684227114695255168752791543096339112263347894229696550759808680643985931096040981795998168073266135426032286431469525731990002656801147131473327968159533621419097310084788641433188108313136913114212478690069576829377179964940315548158725182303326060060860452038022131853067377296082211485587679023325726457363878466539960517428571330429265838027295426021046237712293361009820531859570883456052225624430743511229246206345233470794722311102688741867978737438313963935631100408185977544946557973663950958614484906610875091203756331990439620493146685252441046773671154616299322365761378353670837466203832969418522282933430430344864899289520681049965698819578347926107356286272409086619340702183409291711178772191441143205620150059112269399432727673046120630794452613818713768525928144806405150325889514564424668796013725153787416188903736477355227581149478751347518529015661985914212920624114172623167307966291961880470813232452211948677626006304727645226798964442573263934495738434194561911455597466252242479993126130750049354772038713328822402163215557487993249569286841992766605053101348892308256724378405437290895820094836881821481203088066677607624545129555668704755864660460954938993472869452636132817837870573111196995465818840191214810732614718940177334346719803275734567530372998915494268831815094044469975483207974843302932428994289480835854160003506886851190062225143052458323605015493009831511157750137572099526675410121764795262081611789852432740483195881634203520135968205377211126418010689207128102257376206567567439928277355563935128544739111009834629914819606727208765479674825237502065512580662938160234738276201790768428618862093555055261266022622496702927651207950082939007665210814108201725349471310064292588758865611292833218417218566962709560529703773680196044363284738098633158747909087325914379126977631731158348437817162271197411689244897322974298013980259884313984837577960227224535979489798241308257040011781912982998303220329233313811456758446984466510787505387853898894766687393929938193098404117480910907940827929948768295482277791174905233041376833130307766644874095679612951817413681757528907182190509798704562220507867022567577382867620331923556300828504805364486099574512317736779075591251591090402072631787828248572235031501747996956105326571194201114835196184019834895155504674602485602052366152200238253488289600529712919802143784365257494373452236146590972694767489631867678874727958799368586047323221653543451131801399617185588796849907658382599657492563108058751541119604959399067274478822251234261132994541905323648764813931326972853488958464950073721670665197284636443187418632984270065379792282555098981379262875634162814338089759413940848228059854888983300379331493986690260540009636284059474126370368168689069056749341669580265526818322486376310473972154884726899031487432610183672545020477238602866972410572172339999437507149116199654576771528164569132116181786478664415888953037244424205447860611675773901745976513987554366251593771317492577192963464859632954198530267951796496289814745119809273478704575885189816879490849240532898725058084159792268628624387151030792617088894417578373778677664601496838585138716553567181783288611484115910127380142806064624409582180868111683582552549124403849417263873837257455207301074699850268608525710955631715069155516206696310816634830846177298723398069515250445488700280658820912040623783299415921226107515249934616811303649319878526228117810250286989894487709811581944851072134855829852810007755956652793330743172991223533152614886171495580723458209724516893465262671883829972042934964728088827933851315640124054874593530300358694833698201665524961645060470717381659154477137374317973949091557173287303009717068954400166501519900459282279688815009088503303933051113631348431588718096040999771585345163053650130458487605632803493091975249889957913650038121827102120058383575479250181320237449488799342526091890178489592028890817844879706648638546378274547189693631982087372834230691487070962159563930880927495155733449870874382091568524169276839149836399191962241715324842588063564273097690644163830048428416895320395477003973507310692146931486692225928293869119571782198868932601331964471796758779510883219392853171025667101217233314897958326289377700236683310058504046084248443600232362722714311339548800311049122538858121209979983559022627292792940584861942734290637125043163312204692914106627188822316731844788986379263397795528115749819692745261606169305840536716760546860407308830745090635678439921224293228638913835488981220473595537088328605951258427932554409262294744018627469124331864956496999704755300526524487995451321799622080245539260668486923609111074396455642223588892647515445351584791171033295307666420178838125648545699915124956506531739351429036084026134399797717445548228049606460224015131534262536322601764088195159972451679499441346252963267556863589730752485608656561531000607165860308743444770715944970736926496224853235330361565959367537438841529605774572676640625540713954017077315182129771354349948770847235180674671249959894274766947282227259551907282713365808773108543516438120806188281596908085161587425991790327850258110507501486400842370721651736483886626455705277289743201367464295975326635699292665039026839163097175414400578524374713108623730681424084941532657306885760381491494156179900439403250282254489576582363628655902660611577780475891398157490009230376629284361807867428394765713065142264126526210924006327418488826526703361767481882571493656353941206760440421256516001657404801630912947517878140988500443832182737467582848565706322872712314250093891233684952403198524215148898401552748421355011375546335877827053100915834325435992309033888827983531016595393382766640256848296767135918128043553760586323849574354164744558506319190027317585518956083488442445088483130186414789966796384467740757483882666712008295003541022877736618219124367969285159707803963510121954450209133168816066530015721894116824677231707078517215966734182381824317892351775259015814813437981199612723871695035205097184395602675500547639745165467671683429115257310836751364565935476653072328185936079864488832303880624494390879132346090062019964304681760784829708987002305041755575201665502122573611437254502994545948416932311041751377375344908475944356095340927755062076552601767068363844872587521981396940530432013776050569334299689180295733171228497597550755228223686615199409147115076365995824057199703165804790249643412109735954408809518712456328832357352452029006705207001523694566564575921085636666805972204557665894141693722354868878952424041260281963909560318132062750030512148118862353936405411677771643633725638328237655690074294705811524649970258149684633943021626407471839710287936892788563878907651317804399452699479632086822301405051569268408385913661213620615563962721318719867058733274615420589353527985660520844426277514742747884047076215409942315694205900131998181378065981833610721794227479614343208919556099180104590084884124065131601960692519108233252250903889986084955164915618228445899649786142929386424341487475720031672818430622630526007410321303595782790920072528412901577322105663398103440927926048687362006512503318547951466001864648333884986642568626957241321673384804642501518062895026590327096171106839834480878702810436410093233064445666270012603320455943985462877806920326046648144950701897204510034682549323810504379451957590866374266414723553761877621673393738826729718913951738427981340881500353802527218709690819995166698536870907255409923241337789066483438511651759971007582699218995054589921486328538355225280341332993583756478453838393055777975411668168926413152429042286865315799750715675491643663532864065094527370328386228293374544639589536671277819041361200791453563474443720490283309357223555435792168206671969378543723496288400596789780380642275816067901892119459112805941409801265372766238826029090332410299935163506035668868823492731280734077338837362991014410496356015277687385911283885780428333001170110073164133475626171196038427713651726159325296304601961475302621423322361543737656635266669765701622594087375327066272081732418334261892317476363371359801460296087957259320302873648796844972240119664491467752788436817126450787429338382817047679400955910768285677613690655437559892926968364593951317234866539189737152128732549399214604455341859411088133970612183930941632534248091769119149253923333448856932065819803327998787130248303051062464304528103964155418880956241747068488282740880606517390190726295270445030869133692842614774304741640430058802881425178812167730004763675362344851356155719366167612041008402789330736538664328208397806413990051984874010503514688481117973491143087429652282639501673675579480644501377517609717802921811666903301448496389505035041649268592400420301845429131677037116451869022750613409607024279900067108047341551156447780422764921685383152512375284119373098148519378122823325119287181486053678576397720823092449333279218103071796742903509029240927498660677078437289768885278490887696143554454858825415794408224898657089115829394900786020206925119948216757347571398617921155007618783526997323826825360912550471499392928690509623602879144424083361619800594417028788491109597766339360898251632378613954705981525541790249599399410025270778923676850442671102807514848710326977084666252291009981413429808963117859178741640231021454147337035898014573786910029248347005665060319059976130146279433084325917105185996081219493276801370821541180267178895645263081972029668346363051792716655917067700076579863923092410355702199822954337802961837151380119593013777505214737009540481063373310997423911700609696152660580501980999496569273651811012382278460216463317038212155153232915573642502715313474747152592118897369135542521348641722888876020380419010656463461042957430657051963165230122112547867329185809376261097272760931445352015836402726360060537467066168966347224317964501656779731626776218665301035665284769676271727343978371162628543418936587386154935060490081403678133267333611117807723068422165489199352076058958434564770523960897528417851367372230330127727041086154069773479533672877826650280513718468208229657165965619240726974426670106305663101528144819212209635124824381716318413475933486369147308152188056015363540115737647150864362898392452692965696206532737496899840793627905451084384327587197662826989785572640013186595304703614851566717708170767076644819011791789578927147923812480958478280648297234166199773115798466251249303378673629115054836684587356225880361512903373826747683637595627378356021858040931356249841615938147518361451352293310182245534778306298006152234281963035552841160702161965702346824466133839882157722180930559285553290184385735939148248992278870840850867661449440501431345770483429962517818990002732065334198981282591256222155521877803288661177613245466026812814180047164666509227845819154010477936821647355759669870362974656798560346553184120725372388768334082460965706432900003664957122997996034985539215070009032005111055353608889291931076779198165829813754491349861529110270565014720419623900171237231058251699284057585182111835470473524212305990114964776254532558774176232801229584939850089737412474365472048047809477369038894982512085714818658363118909674987204798028428918705319590297944389317872440929499565602149607550171497688813710879465794311983471728373188569428016330119270011194461238390426542698915007575331141207785035805347008838002291033422044077417955907565089162269589267933347796079901496362255381826916306775403943393982506545449776842441467431462725960172499865343546951325705558490672225933193896327313003749734299520658033200085825766622056935036256809895479616989936808683759018939932099084974528618371286955777758516910646624106460845261421570475973258148906207918148050621891507658662169575972661859255834930689960712232080111981858187549522678976827476181871296706335634218654891532782114513352775690357356100936227204078615330761708270115256950171031539362942968314714327315949263600762267039180663416439524158230743402447833876368820957395640837453451337723854611681834668312854057264471910694217358267964047749060455581036406184129691661492287280030096548236472967251360431841508499083213129024864100907890286904957802348460600170198656648146613710791818161999478432302393544296862949875196979480053826037295031068308819391675349199324604123734820159406026142883497009190507801783892942372470485967711648925824042765773254281295704379111824488769963403099373627094756115718996848133666349156397789272465065391527877139612678735670787490402692041890748510911384107171865602941059774554251802555770314130253785401198154792940754575522341186038789414125784138906677758382073007319919890118362782189184238026464282761646953533927316624601682058594320011361710147519642231447056646711127718517508839363507965906366721216313495799578606616232087302394493286368441213829793359713597548026826974772112287627573340156774104413060084964267436357219763157251368824438271033718733702674618228089164622047495459281384895944399894233416167361634591601724879126934683144814222918978274208191038520159975626748073303024389163934461495029387148726951028218691738152271829592693614443459971064538971700210329743917825499211446435028866560885290115960823443196385241442458332931691543422461522411250336222691823526333337502758321191351877045565744763927877679391479603585430578815415317139276881403544664545824378102034093541696441657230860344602011981265636726243468924087211717279067866914905608135933543674915756961398458303643213131199790479965857416728749872238987551580302836709833130598506228373947467320281575507379883472587396506052329372341786608222906866305239976909039346474148184353146944216796016431705465528827470168484076061814030626348749349086588103376385470299098171160839015812496971361409801360826903444597893542436757108875060070574286736889826409081661036151658114649643537844553364973100515266626525607366068724137254521432621887034837310272648416078457263101681707264428294918437860324459777851330844291268083424742706582978369232451567420177546216187549673274405726658570450919916216506297725014325242982122219303140152650909931276012499549509907122378303849084444136095942604739443861500690873143966049021970905315460547907477290041392588354006527455047325984419613220042455541303503618646630596819333311307768705638413959058516936641111128403255144689341227720611083133767821805434019838425705354137130916421038283873568430205825690375146441484092573649858481675545958346880596323593504997957167462648668199435043535297210354431986250684926840993587222544772551613450186754085309877633623530285195196203063193369222093467078902854949153053201930886764281009166173824684711423938802715879230768984493383848272952146777523812290589959675064267316059350159912009025148956283798038088495886713010231349967293033139696088794669420139605612061520142891943571434421082112074686155226711962859251468725339816996891168331572147503898280905911392381195137225259051836114999176860598271233087982521338777172972340834476144681109699946076548038928689599397169572008564183695659421489025961546919541944593655458123035238790599116130365885980049703692458444926914370220186962395918792356441081040533045977636922909293811713918818786058086718092878700659694256026246108712112302579099666978214093652173748033563651269767601203096784635553121115004412768146627447411785476238312303927734279453031142661987655067381858449449777749388477976510316739868393702775355721879653670077285766343922544121724169642742893080058959088525525228201999205185131512775354892860329868905423600403765519251099456159816591189945874945319094314380774390253868130055817297553367393560063681656334814319979110086463059387451614414453607023596928289800087745549296379977741904158069120396718588040903437863024086828626067092909974514102931599950329724039261725957069857356467666217700105820144217046797480652084942354011376532681063611541673095622010962230676886194483431938251100113870567735940569992064791837994437182045051872396037487782943205702100691631282959650246806599234142322721388568342608257683263049448671010619118836343656363245998259554162089777669358079953383705043075262887193558648964521561479768332322711263060920592738710747359039557981846853575193772805158890555192802347030743337627199725732797515329170273122959837411013571319238083984456027955017365151282790914862616523748840855936766473226949079478796861436568714573949602044154255504141468757617813376155876221178054279320572485230122450428583009246018643272984661132019193177889684884372603409039661799714524928070731101190711255781654236536761269606828864227089814020167186782381331788416744649389387264522094109736054476934600196232019473557208617806388446807812147031013411926920307271955852228807021485897308172253451263976419464177105782863547796049078209180375312351749731149816247713524858748686418779879867510934418738240598486450282383459589128844793113271692949375127153262116935484569759540943150332561521526599054990485393947305633298183637046378288273666113981179138398211481151401691879672837009247870770863187610464662398387993433710222320682969059507978307981874499203079963216742576759959586190437493027010407970906172943658027298278661338894050553103942286943143026538760216035132603937068112759493532291417482450754014196581126427696397684456484229983211187086325649999601478526105057073322480245994174550578183441844908006967389909986929137988366015567316340626622450812129924729323697257074232064084115312327582542409373932369181046953463632297235162632827628218106747384696217334114972051712263068902895645843889277572967270724414186898049700530215555596601591125232889038020728455469527999356611767165650034417358358055309457946754026064023098074194669779037473623779874840149845457445233930354595648652204399726529033713524546923636300130607621399163094266691789874259347352187223020193103002560199223032731029269297258736129422998158082225716473829274754603907308679357525774029482658731465966233339053663805202105826060361799669185393392299180383499198018089406782117671365929702998745957847166895324073561059287986450918180686412692937373561186543258611014538867605850908812457820912090922102543783464708560067511193861765741411142459075349368897073243308784598352439422098776884281410763781536107948420418491484111747861365869384735226416635989084000491135594648223180752018379317555446673615954071457419833855643769029541106259109333895296455511094569514698514821037335010827479391279834010613667549832922635303710838522293268579869534137832962957867543841013232694186681043908373553550487198177835095745901110012822900541996975647603444820031415977838295669472861574545693720727124225412959773526018990484449418201829853128326611815015474294410674292076955302732432292274674589716989238735545462467990111290637915914512170825061269756399002032858145810146300428866989490800771453654176453539799614289491211196766039845201090199889878939874345491794608134963057963334691589514303398417977713770603829895530737417260083277576866271214303479271948419330550987539903820511854692960510746237049668895345140186540763101959701424827879449156469819530507386240227016193557168938017376931460093122731059163563655004735187510961278990034481231583440799643669103863012924958079856686853515297541474138292224024693543586466009057522557627035665251375577792379571585515237699693209735173357344855689206302725509375970670402210106848812921375986612507929022531616075196698136008788383225927055768970970994520084433946198268891934083426991211617104662605354148075754440680089761050205074660885501069677248889263437458455437065902828283869184877444931635181970788211504090639867350878487891608157214901988572620820319934593388234576541517751901830786614163047064092376173688237790900390336022657328456639023531471463560154543816630797900741845946607754166975125055235562765890384166819937011495205739051618211827428814956499398493014662103657617638255720136976024881013017612027723206942508074574365112560706042787337064904270982728344693071491002499815852997589543756753269362043331065903222689549084348977664119972169552088059492726741497679753725969196669541163886630060354930748043865384511151173525878882804915884715111405230998880262431350322360069217791987992281570011552404249618260335124357764360145119352685313710538726074599429963824007110518102774248251481853619322536246230119214595853992540217531084122815921516414888716375410044278864141008254967556017689097910774655945711360614413257005957284514041080933666116469794671200638926005823111910096212139380018620510086435398995172342555085780270421332668358089797655701492930088283337695472639357658554092104918906536738841735420946818236241760369101886844047524471941930554332682429136587016352236955406121506514823601051233079372222759275232593952048472376368614049669909049711808855286819765025154516013606098788533754250672766808242951016036506652068055985205539054434471399131081734831422423495877274083225753090658411862010591802846166018291076721990808413569156230867797631759026269945824743070855977961790520404608679809825781499479633435451137986723669124855375516436874495263630343672966375879689424893510340709658263372628603816847863356594370568086590695506306678487064213441217834466724644973142879038555284087178918344262119556949517076187940204454839917435085727623478692777294954631158729003503588883175668901055843603899028025868329165502629991929186031239902005222543511464208312170332814732480543119867440643590544838464949632142447155055903247948118906324065286284124182573033289735451652294536752216396862359659483091858832711069961118551158322402303262357307551377208663358401609333717268824360443934957537353775290235482096166063558955352850006611180551961949243661504319412571571465732477148255735679513507250644246944758507075611684993990255254997035000931092268398591255400081204139787537635310512340815349975954014771146854120435499789606619153349158087119702889325725088581745993853337151429356042714553135753568336345005957271135176802992696936301377035411800980336028081079375030730639996270573015963968863724164005612119990376320920942314315140938146636388359483995542182017516023678492140577142347574568512184819990725668471524673416574130495128475726103579710199640961012991155069132583535831612435237132497169512967931741328641286662288278624856633097226303027851653357888247403936081611009054802707330044613442589531007193110799607449770148728929606002914408196834937867180807254659991205580658388394890052148334260087906960976536175460812034872902830601509338762193102008524926413279194376954109843515144629335174649843371987761764231568687746022368372602351197946565632520730210260158543444297850879406620493591681637351886861743589395595145575862286882390463806759851630429406637977182759532984938375607529787624851590087829078508711596954114278530233588471357299619457790546531581890464108933995324100603579992434784766230897455692391904226985228157061109405450683777893008227933760109583613250293185743987119138420080809554108825150236023404188164978582850098339740565565261076788868725492691266493119278106335526069533116863270919932121444380702335312914615270967957246338487236087284124047417429480183964788892555445435653692826243266298249796868317338220361789660066042661161290157150798898857844748413265755706994079773942540535296244999590477074916362480341753663230471100340744488904135353371648719344823413314727256522433629041969884153487850286267466722671254762972271378549268570499213928950625616065625913465189451354351788804031259511784466677799715561657918548127657074891873796027080108380586942662314396264365993756360035126706837180963338216323390972509628955285113164468740025126949685518547970827395199198260844497662863471384902746773548279394758688437213238937626359122382816222847287708080257631760898662634642504913462619015597012176624771959147124104663700021545656362456786082482892396237554388787802804360480943633736159630180267163140699393222603023730955555423089683532339061033369338974976909426902923091251998160143067933587689867640577211160798648457994273872139209336975160206214839637291270219164402131737593227970664538372718794694907625342717406746597644036101269781115862987468708673801699981616517548531915782746844979066953232671204609407903572784808848560093497751277084361473796733470385397483131661860400544360078763916220716227020016952086521199617632797842106231075757089708715608309800198273120578720215471858334419283870251032656572538699721294764770314950629984361025216611983989444322720890852264796691999903329799391080885602153030530580668597963420426418517188675696299169624703550108980751679435877678635275529491974918970409600075930782894860446270313893420372832394995443294504054769180640189360181296280738074668755249343139293155053677253990113493068069568799162882180686796213043140869366128569391496567622383414521646009283601354524761459632558029174195431814743651622893834037474777015797171574134571433704763308504649695751491372856523207815672088496505269065431257537992400178651275987523104250657673098404082482030773260939525309022286409421587834342158752141496711928908971147909526092108202105204437903931155553839579621803439651494670393321999797131946285869203219301059343356967370579675267792566608472742296191893947024314917839553806976475901021530120203598058943557575940835852220195589134709860806535886922228732178118142730352970963991818621131118767315425647775570359667454586193288260292626095206103471040936853191796688261795842880346471916832055911070145136995995620287915315724660171731468905804364695385917393775522323112772393283131840833030911433992108582420100830884639529363589521547870176128363901368057560289548722455387608106612466093554493733780309557170359588900869935263991234922881374575460338384212673963594715770377925276325663210660907526589346714058751518517137925008874961728912995914723414756326496871095232419184119284115942338363053514076194532799946549811673934176310466664923353000487787235868687219983173377316430485184911975023233497199429792693503480048215251797537075310319405083543269523794643953549429094736773090377952497924316399912769805133952000485083731187082142113842161047560050516728477690882443932786788964799286423967248081223004965611271301147475079459734504703376149869248460579345350906518405106089666413489775949022689471526752736971163058239676975458527721216792686084342193172346974445005268454346988227114419671937114480000163104766433920844880007113820410628080004815929234535174837013100190108733480325385881772401742583076638193379711573372431291585385549903512896552660842447327483976152893423963747847572678928887098540352975403980294554743440443107298020917162262076193386998697949857515086986738790915520313134816597223197969540633057983108318876561608167096033682033101850591269149705971658916470534154181576581630035491685614678170101831199720954206641037276187041851980211328677155895924234728990939122424512216655834007019265299270669675733608115970992407457128597069094167062588007334388907567208025332549112754321672899502347967057474595333744955381608670426998552230696137559524543544597118746801999323659116302074966068759300228825617508712653665718387735460158403560067031281217636076174897443475913424629519060277245679380221264849772692861361028436275146363722940149253458093979310901476346508477547264604106976996132546301162129825524090735705046201150553458945487768298892144105255943810892489867235154459737924730136733811818777883236326139567933403189106549956515974854354451439168873746198438097190328017226348474623057809022027495366730985953748617715295503507508491492018161298452703269756998918090056759384739507301394653253214621219959521278381145010901472384441842986327753258509778132900935680884053364502747139967376231296757530214786803183639796498655384958595637410649684941231989223979603600088007693474368485990639427742165585610816625311421334729656236399016407082497384426511309032923050700633992571614767244618779121296301771062736622910567078728722055991954943467482788660815309689155840025741015658478279696873799567146820447875202042511622567697880506827163603686056364129177170780925891754137048132984156189873818740883169820925353848496627407736335976331715326975854769736140894569076691090014119106601230211798185064009483344976007877013960434211222905442319688003151780958311993690161045763907936365705336750835443919573939182989224935956991994017641949174718392598765593445832392121721091117582803604305099273298169799087691868873759692450719394537827038672255174364336684176524439066139327844965830934985920994142030629043201924601782213294648024698568498062907518397031464759165274521908415687857607579389368682362428143226517456719927274107738853853874593775936623338253823285449066798958861529890195912668034153620818943882705529029453136070280391463740773007097760982333093727010732412904495105842494398373257264402680297083943664843304977179358296037631313641278666203600978101583688176501721956203347508530007344791344421609204090683763658550822199570960499423713680834737068641676256996016706195925437452491393103238992957489419290960685843119956234326298999129359950194427736966636031032912108036987913212864079074728100638034557909411352040710925611619060173006798388384665772298161422828873529190659697823117684848758116283589166845853836596264982268811266322771888712349160480372924278916030021166373714103445448573004469522128554312430286515186999337908636603463205664915169476269452639352975852478686231468090136750387735569233431464815272941013480751806438038154811924159889257316439093147555747723747520851876482008663486518997470559489542563860584354402406434055853240074413963858550505564379359569374323397623313804152173689165738000740886173089649116241319196971954964469645782381512798391989839362063573086539565642968670121361878518574532140507755983990217331558787849280738584654673210290602670630249056759757256454679389696320530347582145391185802896527793578854076574850880980200311217186976087097480961646898746771124802769845398053704508492235605950413873493639638894840758555660598524653781602847129647436735783871393168420781900405750197422015991064984106239319462763066348912180750372532839561937367619256457434601887588745446037150694398617990825487102359857277366862814438816011448448944285934692113010795563981925697240789095890957319152110400163365066731124249756807492322924794897324084967247224107817379502722836629220026400300773645347527873662361265275566700805496241049306820786010229419613200677568845175242929258980646528396126308105020336572027747259971745418350520726974809321658090938245295116714452211922841282705055665972594738936197020795925577952284107055117177329390595159369942917352513902774593882064431945233892407523074176657538582123889086150427847664357763813330054185823871072095027567172085752226744751296690739179016299789019766987943626439818339236797766632041975706274805871040791427495433707429043933643221438449247768105533533079111135913156208745141884904332142712353953077493949164822819809078202526316405894062221514616145693531157281299095480538601880127371340932796172580214594646082070803944264364573073545753498291320363677689878156620052485622605465023895580870853653366754033483518866545397343870446325328083181629360811610472056154888230150899648258082021342633333554912503268620015192764343237728328924828661763549946957825165123266390628322919077978320739210751713406312292190880089403543171498756330237300745208562006785185900856290097945401382343698572256884800843560429786238014095460067043445458440378614951755377943491561145027662397129470627087889962053856471322686945060723590041196297175193436121047479309941647214709235906240900973704839458045978137601323609698850980641292800748686213830945286173148819376492640976003643226013508631342665215596878207245372448709878225666491619597483223800337361577663316155012430227062833805585237287268537517309490505578665361163525030406101750258037669344717872948222831047432581738747038384625060516207748479099788387787188068105721891344465485499995814833246375305884248276962039032308385487653168016867693729472461663056820574524866039496148847268598053259621272149445364092946437758698020595319093276556173673242788049559959622362722182384833810230693858469434453713442312557822750301830412070498467612377829805741541026064336796274523199300882202103356266252266214082376836485404552911828462105419074741961131476124793215205752044575975500688705724071435674314083332818103990460726118865789854197916958251400018149411767903115696737342380950644750721435877039825027965420752524771861992526872087164654096193616026281655234965778686357091999394882625806737098110432543668033608548073086881221475974397639461331015661210763853519045535219967369314617172878740882625309713057354683712376156686263203283654248201679597682554690687745370468284762572668160874844870394580250621211795249583277261661349381336366376222420381216691801706831441253061335402927226205348976463800860437152149602141268105988986218314773910832119503869491823749462591253235874148305064023122422034753466075740435455335410770286349521999736666267336920996964175047380050327809936244058179331961229580572530451940799444057171607583722573827507875417800625496800576367070862128768758844921247996320219853747579891427218123809078167173822780143788501590608896742900680233665390374248860077491535779570537341556877939888627877026806642568863951568326646548018561508890814952571665800203262777185934270830769320731222668413739275757478239521201099943072679284833088602420213541039832782502916279946024909330219757300932435118454495096098495935939934298490283300971946062354214431010149764073308353013906091320571358165093390357365429016040438020146106408784964843482838759964424522776389522711835806687159450327913727210127111075647052433020029135484244698502006437872220669111942508773225535282265735448746104436723162298672253866337651551463465063288474150958249477797762232203392856931288102882401401723764511269583618721354817840989590899071370229782605630919158440913496708697670208816267127458787183922155423709770825723166479530364348662762159268087344017218194836141702258380795817153785441092908644497125839026914712174971708026514070574490907961734241565310293404391927482965112091396871770892750483675712751586882525045503392771213638940156848370618917461124759038633224719471825471253629773253504904470564133103133783493888298223086242533810774269249610492671065561736264586233106903450361780186133095439304741564199784075665747704411049865933662318017357600180665007217794009458382783262127871289529011040304878474997429127069876737092172619779905912605974782434931993246987655285698258365205855425486296136903788291532050799461626723014576259732176116985196348965778803669876299484049596695610643454143768303230182994129445910952768689826078743589755782222611413327058484381570550976955172637330498943688399601336691599752705446342799623387362262094428276885304980621409098869477179324427744510394542353735695392258160783214285461391051132667391918140087141787063037335799284961030260094615685003455450072071283360758790482659077385848024941948727535365091397180340669184129084469832466534656043611227719006223164032844045790835835946472489860111670227501964524233769523884568694227326036979236079590457769175726574734145796224556955948610302237474014726553534347237689725299274584028970515411167377197194161987798085676283730998695819282988370684658166576813810321316251044692929227605051427287668914981821281082215064024255816109312346726894640213440584345135856921730369596616287777012318879805588391978102212187892141054760678093016544987673601367021156379759358964094333060227758665258386335807553767356238362439531751260968946167600443657040666516963494373252014408571572800379442465488910036987764046172939127798004721044436373655786777619578846620360489284143363658594862446452630423856979916761989978125176718071186878003298293838329648560073496874975616808041961320209176812135860424766015956225054135395451576687106698076976002629478850093967882071331836664465403470469288070222746216775014408237125593104755908787429152607616730261224659543668250328915187845765517659869041403371402775655470806796848914770069543292016224789581550129731452595494480016853553289947064337388364816081321329303267234157770061848942261563103186215971630742706395618837628919619153089626385571852349339819705402955790230400458732956287314993820644731907007732564237055754186984261666840113475713637694051497660699716048948920237295425779081350722027697238052155004777373332674459197092447036956226227223699854576702149699766243920052219114630490870627397526704231481878142965055198140924145242942463793864459082285092396861122064588137314118791043298271228404875582804544739294399387715391005770033666255140704449496345718963788984031848110071981608660455013233036019378440075798482262909185339759800959446677220341797524989745347238538081549049423048206431852190088219084004146382856695612516222934345804699563425252890042883247417995806469649965935878189649408468530681765353156718144320929649393827180345941913241879067469804160576721909641450578267733686375878853828183148414378770128463099961730435734773772528563533597717394344735676772092652895119329596190045577161538922879527328648259058099807015746366060741726019699340912322264539658046275377981887383989002107076781835532238582076953065776775061708433801733399859171872843539181813317768655913751805148309249705658588782510089756185411390134535581457680514934309304832964901738265168862103409147473704233835998980072280955870775816664718919192269146220083147247650685540158695732535169544429233901431942572886009411155171134832650516544495645592893302471184922683012164767855289796232577499010802819543690600281748996623850137331175147338083171311793224286796224361992770901786500069565115827355487579212596459176387392391690398092962228164102700015374414152584287825180057355774609738258585772431173328704803482993460930636480485545426379097608966701732454150003700255585355466507313479568100532822775262906568331786185607369773937837472233456596084490306697731791189990697276945975508570121910292151878720168966243017476992048317620122455770727942587705880578823534246084348133895519127597236383991953827426701869999046854854963503468054808881632532087155572295101550238619943838918575153431686818440192892335233109569280246778555931673252492138938567983416726312429755740533520757314041530084617964271533193655230721181227650970851004293218629371536097235990236400611985063318507354323181551721117550053679181977474323096250650103745661310816995845314310619974131559175269216927517965735999809442032462533147573512215391706872569733345361692104539764609565874096395732136762194617395142867379614418952519635912683791979184081760665157862130070376757335785752795211655120403018460253382714832461008256166902222005900952577534763993824074369278411822459054860342036415220946932361185210948062243953899549691957302082134998248708800472193981816071743870868294393273841219140872687139520614395981768477289421109637628227335788534631408397451844601959222373846124096852019103363063134709141713027325497647977408257426448242335436261606499963398679268164572589120896031023060750396624864514898435885550028136081755669498572207812433711484716040435617379990698469092471677258698559359589646487596005428234517323015431765363394782671186325876983448248096304063697464627612536522225820421915179736539245974087923193288495876489955419990678416732154440391069228915005405809991224813185949590371128952058156307417479854663110842651135222076998049656158959122587131608447539883030736282132915869719470131344370650587733981181287043626817703082060836769768054481360629009016547208663188564827779637599796096863009897145288805207344921972088646646508252059901372952790355918899495609059824713404395759387470698329837566896694442177228983730056964577783417078821080365408115900028858652213598821514889930497950725470331234020867720613950976647115480704568627847455840692454258383113866243160206212124753227763338942362224081656707365067756075921734327346944286050853550152878213381167562046236722184513687943562905219624022190043533728960489778263419500035449361571861628117822761369539664212246228567280055867120875314848283043273863579407329001376654780737705484457776567511169975225480303598190513299495975091728104612923434492841692854349115200384879607441288794002853030302838656767265639489308779577169854556355525927783498649456791988123955881456529277749535858410392197639569697883650919196420481012940173902835776598998264618370137390232384035157877333161440161536347855362762880628864711732529530722999022475036500145572689883415806310637999861442710526344446649398684425832903359638502464886491791292625418739698371720895791763440753349100179620440763731167045282887669676898012651739341503570678515440114181677638111557541399467200412716661285261383282174084065285487875621217412124094771910556072433644782372818917943838836547830082704914810060743875142161567045077928484055868679176068685039575478932908730321723909220358028592151634382465350770465521540972877863448616532401265020845016799026386347939938389312500483488861552046736102682253227308088507097219165890162276434685062685822760922481016619800898714050421196081765250320961929445611508628661998864696557271072873376360384298132741214892852926781884581647925955761056455983152823421036400449854077855962079569206053443224923320271575089919976084643210750418119277093089110434231241935062075816698336100931770504274163439339075803334847539473437735372461621616946829091634487926772662330716890052202828555167142963218171936351529394992398985322921657143670583253323300333610971472296029018970292905578863673984368807335299392383243907121781537436867101002764905493805776060667610637399223436213707015898458313250766400193751240457554448061369811575692377542005068827346917237727850998256608114447813967471815198460705200791193189551533181870592451007980795231955739886248374148211373801612585274740007113925727238205866443145922628320885974481438913738807061931304004574068750032479505434828251786387832445631959959911203944783016991508452137935740003938316469786393949832069254034186190691237378887679031384260982906005493613566121010052351593548656920171911716243358710644442923230506830680827764083524224257043136282926479463720271870754085054734471464187558060682126566145149999262633673077426199627974451762500722877131342814999877339115081908888449441579599335390423691462249270128977754262958363635625395697812131541236528911618206877751978753759379189712053322737035055702713642463945236990452871371125910004546987090404217728967778781600214595686726031152023517610929757073433483833442702932177162325346027821062816769657158528822486648301655120721032179966030109411885700702345282983684851397917802796740516202787255251776652594834611797709116174518797235041364379556014660121957689869807853814780476810643712802072843344836006309383690959832389071492919245530564458913220927465404980545397641306876567331361568319911481756775725855103465160818115285666397312313785713807580804191693004521077083748595622888321579109222906877743031503009940696197755622066602234648227051258123905084719374152921769081602216504837266303642481321332268517892212322667327023169533889808204076419632114720405290976199888625674512323746064623252261465979452693452987605610082222832191877241716336718177055597496243169596122534380389182170156564010146402470536626646908217229866605226307171687747222689460665416896974278574556506185343604663506142781588212191317186948076259824547119654901475422377924994220125250806206834098229069459886039943880549573362214263014985088084262596247201672928636119523428662197138677552483786272407157230154772711859797816949820901487906875455404816812117865695728725997466154534604584878688575962718184827529561577970157425792972126585118198614031954459069758009865510421382360938025094957202649048276734522394376256147912143739378376652656055399001498428104032536364131268115114217473519920520019906664632890750760351666543478506803844547700017212724832136451386973586017623769733048784431880693317948253305984308843868020287374019994345118355546806358572188544056977006286970092672022406643269745669841284211333260649329706011952022025591959414363116620636007056915804632927934324705217474973210639011013979466606721313415349836969727949211797341876844635357443334567828369472620686135173226070567978565178646436839273282549948274407202312392607800290207874287200583882346512648324122792513171801200184048284662742968076646570642127112584692555822305505793869551919595707025330959759540663752624104571823459026647046083538744898894585479776803365304081014973997629314820676441695246243666311761926009646128004753435318494458331574255934590915518165613360177624439230134775822779395401797268425536944529795506201526843313518245757587969397500126528356561244859120963174958031153826546192219916510769715531769745065289497766971362457897731958029004406702325917904809864169681505297640227448251563809546619341861424254879850409031305690070958885969479504826022431419230342825725947507767352104909313250600368042895815424827449767757392165635611034462401891549891119564151992975525888384124350510212741491673722590050141119411368910465421748802397309216236402695390189356525362362986825135054196446663703361319063064733658746754808776600375588319081596835428708171030550260978847952045171655860988003671752249309665871026160853721445875301738879737532253463696879810875084190096370019687264598974089140162027397352701898269167166621668742842712051918101673644022181113895127675800592240727905026069684198902365755956849531781020598654423659607562526520566740793557873885596340760092196047005532098825598033180655345314334365419936022277075122109030590701614479049716637210073723626876752557643723346374407212971869639009335573699421956185195732320074374343059776670095917247771691590056728878650512210026335070180954214295460746048591690930803326710350464467797182473787101352633830019807159102378063949606055051971138114623199072107865379242636237217804564083433443633356137628343532012745347058819656957541917396190085589582949001524203953906737711025376001805573345324449009749438486421186189210110413648521052418858986440345004020215726629668193755902506707029045123117371408946964257819829384412267470962562735052785504134107556071137741255067081615644331545044480368776237663249905990916225874197383398603263875067809913858153275905805975385431676875943850561282551861569085973672874309536282354971560241907662415514824819419029528427508957874093640513202586903665281453414921651546741945391770743338724943529338258830887663476467506399190141531199344977673092592100202736374125949409974236353700610942033156768330070683473905890685477315256462010170102246295260771813350521487384433604340782338587191274812132652507899896753496401601031885061680726941193106173731048258326516564749834743441928688249185459371360677761894611621965940468832430816992405336594194127986264653912041438271759748451679273958260106988457662814620130611285003523258659177308851925013127421314744035846851119312705521721516481557697987269920103318519793656447803432010525434084903284193853442148438711986918234278770860354590968304012410907492973262404226527610994905658234157477667665295317239368835606898446481814496377058721785668238983328199583451298247605200078754130844998215554711123191221922518511035930260716379971346574897722843744322637810126074336253793633311423552127227033919291256335777015445940909833228882489365496494631050685960154679169799751508619834458538650161440334156374335124946150462449017335701366487510769190734425415604896550000426906494667450946666993829443249021768906070007494070547804731194606403690613811366955317313457109960814402689633250231467164846385255563535722834860866694975038664274551510122335955884834289022133358398087279457160241263163020919878265720388397458989836003406384549318211635245837054464873786751567389868720726758112780242638673960915390217028791375777245478316991880554082059962071824364744438794728247768339499752425598775672901578322576149811238208562069137036494174974529644389232847985189178567281042239114610737273906902810280141645649202785021014576433867018010992854174922011327377294299538236310442048087961214452656728987849481290437362743195560434421510976885567858008736605886980529961029863414800877552514658440893605977728856940167698277320339894630735220649584992725405028668253478163354937732575099183184134827603793167861119562025970327267875011961960849234163619501922728188178424007531582079102955048327246000475889535386304001900668796848158004987065988737530126485758488208320690880816873826001572098748138539676860491535527750681007099017888155727618052985956804967994075090965466917722756148601105241123700373135788919325000734819493426873118806463826434510228651888661132472604474000014412950624296443582276621396895413622410557042689205416691812049568051751011286538548081797719363043811633732389864384154159888809690614322015134884642766952021180921648306035371091793074317333294891684664825711873748737923106801314838674342863405892774449621493251829869825456683368385227501038388588152680985306146825224446381359494923811135871406381666998426985627779488730959670869809175885868598244792120699448613657986619323237775045481686737531543189107708177136100769819056408192938821941994880902150079497060897359878108319281283315848403846603695267376203140326604087748421796911039771404163189512699462590189710578778046812113383252176705396186181844503375832223475648397569449799440355753638466956032318383648312800394565572475189245072254062759283486004863537756260655282450206021955420125829340174236401295890257847372928913204164305219988442000113384383070316966727716386169209207277825408108668434819641271993910325517499599321112096961831454857217791799240523217678470796031217771743711928428090964090727263116217828103722108173969499207518143628081891120757981435832270530001290083138533058270948851951050423784534447314204806689658564556804286288585892278633610351034548545994443633507471409245130072191139687275180543289758924515306466842132011975213540500382556532910205665424386679045644220902476039011982180510991356932572571196218232380015595597558221119414083814370022026978057401905271758535622326157193917168481847779831459580833795073461132800673928814735967087421230317891887977356269129702971172342805996134718113772011910943041463909789425657531781697689779544222938475900275107004134356308702986150879802803552827829493646111333463960115321874586627524516206147385485457264590337702907799727747267588722690718471840164140456629806273354976699898485705618578361073528163938112889262063868617995209719432266640353435087823480911817052268698658126356849095089164948262220555579153607312322237359306323956510145240461768853365061960184185890849471212663069517989775919276169610093723484536785997610816152311609495320360039386326360014308213077078910168067689694573895167609832853564063336560303028043185261126010356703185231649103211435380931421970147449563876356913497954753196363807848530654345823215553681114279567609977431865434787316887686424901258139988490318403398477971226601201985113252105087689173763812006682096248203387620024646882095452656505253862039367914905965611041573555786718635900627313769339939979338088587817633636401615496255120183500370419559596187221538872583888291467170018966365521133542600275455803852169584124808535834558336535202697572106882840981751535215128261030907287454400605969623538016678642697773660653730539231865711379099329640209104480317031535716200417481720522623943848939093129307504308430266460438157709345269314730705345649831046391272500789181305905909812063906016938241257322892833566484405486599238400552827797960524793960526818286581476660907171416356189897443539952240859031978592060167059804412917830188361705217840887165709014192647647908962928286967772071314476575858562213141022974623640205387655533424655384664255922968748062875470795367768131726650617758450895090510194699044635904298672193092239628348423941827412762607679841698666725523880599822182598948028367616204619044655379567092701403616501302461510056862007628194930016492358807300537744303964925522725851715627677918005795443227293494345214522903900592075708032888204310381688415789300825596367775572696831678946036198725506243954641706020176989692267115347280663719781729190878248886379175346254354831207530221630301783547696275267147849868719273264816143307843926761005611935109844317283596150821061932127056780875087065257971889339828364938604349273282793285670751572529809994267014139466797519147596566955612078805982253842687067339413447226694643208715821063375973243153246265182468884876680124984300979223383784201408427571852357986507087663879490289584530814149093946149854269002159045085388217376682706287559490585297286124152351110046160153876412352427193175780328089460356104918852561293208810896372593626213083327120843632502692298457878957528121969955982511905535282373446275609008019209955188301494558668665052067985664824984909814224945048185020173349494897065437998597396864681677040778448247497448029954085010761100236447967489668702837653110609477768266654175653664797421936485610832721631939099683543187472545272744674912972661351673015099341664194821561499376350520755321477720311857247401022678598782855181040779639436796726017535067571500064765947804167701048668102140094645398325310897256855693902323518666080665443682669226387616803810436708642972358637895758003278607047085395418046701769030639693095351144877899973741774143597751607520250702849505175599112688407436307541626687745434110747033519877801533310558457075900827388549707011142882045507569826218633835096859941850647938885090636153537693527557566360377568615384420663832875040478475763177529380612206835733610021856478297373639643234636629453950018190994219309167304817891806995799743434286540830076915851273339014048239773057857351274211612202273634675367688160062775220066285476016773836696076545856309726316001736274628372264537505784587963074385931002016813528439748613810779239289488122127502861198608446910637758382008311794621358490112772610378155546696502237238302428741660805595323219484445849589270041694013020542280029864180144191908336473759269068546098476225106280435022748044290086254159355860439969708067321384213558704900680214203569427734724819955072267170101696700531653251037823733658750816688883350151236043317973577463219413814985347391524938723620040285622306401926047336444611460535113605784207096532234786982792841721724963555058490467672249175819388995408533302569196545592953734132417437443981483220522540395576472671802494302832304451244599033676958946403805350967570216488329520659606573943911366701231834719279228012728099629893411727976457765853092149858297027323255310430336763954796753738701440797637533056383162320472437151370021891201963673499379851365203122956076477800587277531791119378219005045488902227151903778159911549018218520947958764626084943154474407649616220663454650192716111560069696173956723161567595539899758508129887712404572665852533504481485628822209971838300641938207519204520183955907565773167038817701831411385678832040044701630604653866496996459975869345252789100055879789851019910870263607541417226421674433497007039150443346805987630447614873628224109724719764418819159161475605367427962035692271058515588951141418521506015553635268344115128153116446211567960464861770474670376205120834265464231591889308244899156357394122036534985714606780128017963233985880608777618748094191127498384999674278944288888468715055470385378243863341656585202582091159632178911689878799621072359197875326696793817903760528780971535816487473917838908286807652332753234514188194679203958602385592929443431642770698589295250130497942387081199321664429246756693249737913726591591777437545661387880446311162635930517580369461446387737273048951270786626063753967789306439271712018509961922373579206860074642093535232569377293660836758042652646352845439184564891539057063109562228644173402045799952471855157533867568158032949067880830556964971685896624077198831947197641584540946498317951201134613172811662630313831534042477744210785335839384015119780896518124139576433063171307262284554636981966555570914675816136640983164136498903681500450241392791243091330012759037947193182826796290321434821063631869644639956526259483252874654538721711807862644349656042631465452279782590757645378895190259444931835707629159035527331157220092458800152655459580024113162680770339661648264810247364901544460709631724043340270900071212225462093552573903109347411438865975677860709114978489057561878540479070953618021705353583056646108202539288864735074282062337906257648870305209160305498804663509665153586893209533659890511836781703714406171875979757743091716687880663665961342333138263119707189104239818019600656366518832198668408285818229631425823901152676938632200446450858048955117987028800509619710725739097634554324040087598637411389298654271378427340813994637363381254207254713169635160386625009650115876558831281205765618832334895983438926096455319131362928567919052715012154274188439383580778148276187131700711963384193709167541389621878109398972617785596298983718090406931157864318856859980614430316961032167763258594953015670130766985090684327851373696987527648567781421290657128861137853840043846255085043804076971366147663027541867512451105267548969668102939968799293832298974477430469845906931290632122639761364352567852329660715746564915259382149643274009539272642544966589152181252896550982220341213030906060728670385101918087148571983441953179334382919523050297226381107409211067809689343583951191783529779888484693227214106917874671642060957564053479922864963780335202961566105487366470694858450775179985988974343410320510693280796805764830990786401912612813688004212131717739544687207757710591155934655671312598069777410060263034818872507495244307693840503206766407727434027189627805287758406646942071865469771884665034848804754694506569490084211662787867991485978225648944966502603086537155495885561138197366100277053133542581304634074495956677083540708401336777545593735992382083326570852459005449750283372884086638337685136287161308715480235946976035721080597647522134194188597160744870517391854867024925475865618866161858342380289962390009359572317385982973729884019639203015593984999145590919447311933177780891694640617511812355606960376119879939742241218626736966515734085352833950917350767825727615911130012596050377200994750555312337698504810384378028422530382726814259419227172457583646713033509317891233080305702982310516840962731694578831357836250441908079118912995494563021991862695797298075758997510364501935722459681500737343100992189150985646218022475456291198851581074160516228473815822999620656689942812384669393594244083603430906176362773191436500723408855329945733755758166283927032960931817624837187055316192099633013308700718140815084645543199482600640840728123270908267296232661428834256625601474815802020241597476987366511658679735629167448435556685895398748277824763460293695266642859801767606037897759512050040654081937808931309733882681532423783723147374863689139170421682735925321088488679336757212593804900832042507788480675715754713275808371001264147407676849125300966631203694774421280395403873323885885323009603083035648416971511012417825841937894082257551651486040017135002066790904865276714030769518391561917993011132148324972925009232753367493271123663616807571629561354744576820355288211580578840945295110042708963049551169540675506667489221459181734864572680549010172147567789424805136933304937330933135502537540328244936478172842282842501562652711947519936504531314277894754000781062451029243649701388516889232292803851051344543818204888133092594195674665581093805793294965058527081680893494017155534479353757566887218807261870474767128844420448081568232307058045455307790654907741567722076348314525674968363090950866043459664845968551009150206966539399146067358772925646971425412007380079375760271213286812756121947022178206850676293429127591029495415495471608774385579503977782536410036063171908807979152175116045241837818443382418081943025779233767923460193816158067571494231788694362060779733307979055523013230228192268364094184317611779063093179036085024336587556002937205513624986710941812304103134394537787805881628026741525694886482945994173521797907761273026717540023956390114596006746734670722616824970198233548065751165851810385425418334276625259952339735269986585324541245350501304473375084929900650314578054515674863093954436396810861193648051553721496664778956051740837670813723981298793792999587084684564887950281297572143377836643843063059047992358892365328044204564859020827798960724269106089352042031767765546334146810569910254821376903762809580038552059505189020004107502624974539336961119707222477090932307221734488418111100972839617761231641179920975519624537916338096021177536025801916409430092590046285271820004835274489736209630925554005713993486228915627451113438066432033187529498710715662029096020233548865024956234772518163206669924784645200866746793535248315476840805441229392554706689333711314986978146534910644803703372322533526508631164759973478981688440381646579467964885643310702784278737056772971051816102453973659814861613960813960499826995170233525959200312082844968662486278176626437579374886988918768163595574893248553126161703072798132089162990586862711228013539164313022956287201596729780397770093061323828020753205347904050034120048466071596334996643244483125934639995660217404272120503905892264589382162672288273863633023759117206702970303565330299710726341662244791552161609356358492880285559862290200701679096333767454752430908240415513174485804934813689376408537830789469636183967309617841560630452301267660354912389819729271036750123180113124123206069286538936893472974740135625189962635483551033840315708730320925882721825746451216372573558740156681109639731006979576947229155083000458931180986519568630456136191770137219720744558862217367345099433731660646966475412187819748763138024754653030036836113131997567862253333599359698793987776416735422989491416826278381406396319189736107147935491380982739144896341471083615880657824640190021226510027776709432730688519530798478150108248274880731248371910583482542956784729489240604634454013493813586227743751378123264850225112955878917080078938501207610835591122004916443524919102197184473780338479268443296371692872795710152109894582470710597253545104020947663250164061958297509885179108483621797556436192406330713082736873455244349238418049867880967934448077908596091503282675258034000697323982836051555301399413406517596768861608161778037860254799226785864218853184758993069304862277484461116162469826046396905541219599045419231113025524219923657236038778080573173831338390854875734287402043515370764160202658050488605699415085336274762916254793127177442790668957938624169843557113575706913510607192195023709889272431192565849383999644211584401353591412074617952631430056833614189995969726162456713361951339469413131546132247734507996986622833422853270615511099680254375028676402244275514423572885908218098077693569197301873356679780747753579721167469562761034762427542570825911059411153916170181392430235415649839766015927801529906884922904960738884362447991489986744312040861121348038256262133485073867511805238471233774241723501171371555131384679421462389204876031537550431257672001399241507611470612013946183883846317557906040975294734507621863822352479688657766662441316313426182529494588541802074022956028172528813284269366074341755485189701055073877475305834220812253371780537519705319493533622705768679634088190814640477208394735961103337328058721862954369692395707946504080822094560430648819571936633411232259178340326543636708732564107759000577120223758305289150377032141266028074831782273183091037420642980521812474751014299949209646205236109871184809150737415617725180293461670593020650490625686908680702079441804423910893757282226497576924920146768216302991743931730102983067863498741668313613384025376758095347566499624382862015037498290881827115063661657047480670828227222215759819677447066514174260448778894528975614403310478617432858347722836984138905765176201327486631462573048117556954754453156070013624945192893336622030293136193964009707449823501131461249579298150974708230282186336422168092230230664408079953839287240047873514402335423041731664426504468984038812219833325294370993590542233961898325296308256665908235090217737918517132107503103856845315723128851868642317330093111516397067895197645249562722984705713878117555086811858796522376124154158980047125066047786786011413968974070907319052492167066889848142568906933797189588577127182678585423954576180502705494414481563095640234538897382046782843489054025852652547745425177851474544925869242076311133762571174166934518886776134388811468417974348844705495429799362628184758397376169759592819763275962285831861389502866883611364935501895757806355432466037740363220679258752110544188582227246413565483940134906969892021304400652632037776052470849988309355116436375355771879619790927800600215793853562615822799906790435678209111964264818036837460949115490772438063451232576473547879207936647081931165595396893246427724805416630457504197026483063140862173124066507096794591746437769448030552262055158519771368485630975032925910950831118754752845356230349719118426977460093256655305477754091158327468780295951315681711819960409250364449622476103412224303172086062215795705721901819555746032437456776456155161688249487111812142084220089376956727805201441724173758053994509271686853164467441700325965669654871963298795744858451996746796412202017757811230745554046187794689139664832354613611448062969146153109758978043195810362587862109997818618758918236445647797466586723606331503269917414893617121160945296103131936608326655090711482714042669578854838058369344277815460009070796416303082859306710646316248475633676194941233884585288337787085905746996257804527903843258599149489435341439627144232167153302706903374604117570077652020439158765609097258308625684712162058482827916531482195265333932168365967506615526669432841221005549578198951859718548064281497183875080428338776621956384597702961986811697746841178387283017262711373842061114360608642301053430450342559294296088876773092008648186380095644167101703767792255326445157339762201617666651436623471503521059060985455123405785448381275718965389446123809192135919198920844865341641706443370091246821012328001216328421704894731869004790660563861025194988391756640012317673381114254869542005192096258855998622653978659333295837472174660475529891191699409412405354310115139532854863758704645244389000625874809849212458095176550930588399796598037173992621439461434935893928659813548570676190640454549451441972404053151430820734346040696582929095395414479366809633738972151386975672028920980933435259036564277064969836961888597991732866751950506435419248883123432670052385252872922083574298040136554487039046745262076421932796440685630505196956314863956162257053119192175187243939074185531225053156788744966736882960953077770800616199430170000178385761702359147830213292678963477691839408178499267222363361937812693617503550734963247428602275050875069091720907360132417157351545756640357908316827906556397506868346034199490306517793472854138665425742499432272411128085700997936752760600337991140856080939610183213030144702823808518874828813629679080711865307302467688479719298446580239889181566711521201871257756464837082827457702724066176516788325479987241072668465475132879021916985848251033234473396823005614042603954674179116293319635340019139145266292669770130963438415101833121951443600620786920684142372413790346155228542234423171228520054356021181358854128524854055695593795219511175747122856912841437742343332976785158170579972847512627377598642692038112628772193065549459285874848495457929265058599821457775573788277187308377044413710117192851709264317680530189335976267610361136050824531636339770174430503392946944859310072603078018177224213627189239204108418832510961059002254444400471105122005791825752071784638415024020672811488574029697074977081634324582259883136014151438918212594810309367833722764562932888137526874921164025964135948667119874707867413675454234837904812562978842502166337734000594269284132671064777002623825230554753605226046907281930812017454866711464756109666916730462446434893719939181089148930163784937401668290396715557964806827829464203300276183631460367887437928051670591670067647017621658557481409225233635305195614969462107681518417830234206994706246984129758461791678383014917842337372791635580105426448983740362941541433772992593819590374953999076868740555128465670774289369179477607807165101424367920482836686493384941712493676617922605709640613145608139981207650720042398371585477311635735425156936486928152308701582654856102551646017457624627197499079689685818224386610598564926959685136039514713671399347505796653734846640204311896712199162769886170245126955398998655107002057625787095001583623399116289033819687957429387488081107875223024270134644661069327740000894933632930331918858069687504619607695057684435841593500074058374819156776923285141628590641303698800968293256243347946157381713194893614961988806542414689400644110170044834231391775242497449880733331457660354730846754184533635143755748341973355485778466204182049394162130229869226718063208329707471202277975554968474259089673411752908501845012258677871746862670321644720452787025529654451509729434917763942101182866754206214021408418608515321155532095598207918951404218892794156377401557909572839702373265305141750552660340016590026476062871526639933160794646527940679123477839151154391797540353437642237923271772328984067032620162582700984487481802582441891567009873404519664292307054466728552943465287675364315843514341172542727671725058414742989383738097387015100365144769252250799059105683953788033080342788740534903170560466897508923951730860689784379347468075512082884086648884766755741569892031748535009695867854179250944866128983060978081348266974189880033900827385755391572410382751312291030781300613098391652117059647329704801799428851011834314134665248979958672071023016593219371879998931400246193433476969101771387978663015732930274559355672560584664228735493155257256844928871788700393552118749550871768166577876350878586939081579123763292898735782923353026294417941642478931066126474495164025889857476473304022075787867815890240814210429071236174211965801911532737285857805653819359241532015514178810242210995445198533687677233569222723485189431419089518139373910645890939414361961750583795534984488624193165993395067515067263241424927365517740575559719827153465625295152174846349800804645553752032655010083915184307812618722799268813880508011187443146997853194069710455214080454883143513503458831409499066285867035688957197496819903109980129069040498842989642471714585565598974890039106094240853327493783404775630147204256064673315699725359887554489293408273743088792296195482071552530698687876401418792228702544490826724040180727686624641678830705874266188067600153695875721147371685184766234330245703870179211327932412881804428418124291174275240417422732346047142809634432890410464788547770749315334215416892523704866564584018653766177411099650125107337417393642836746586667913169231073382520468596248904082815748585606353134380972448344358718934024355401636170017515545433819443127013031310181521415166358476210434469221873523298813152362690442338370159788074346646551677825971143560533706352239614882019316825461540334899868346287592848344768921181211225308864828792790814837226741533949937452568650127471842522273157993771455744421314266120634397222965884057514974020693934279281366517900682155467664847838216191860729120367177028989182386973429752302421401331858145452617285301928499878582217853059981380624613889119674081223376748528922167027534062097750862184352553121429197965171257107332583143697304532682541185837753929053298309430475857325875837974369592054249239161510848528451316478983418956647857398745235331290970844133781329926903405904313846083077872757438817972092096362528611391985384563944485641672236242121571370003417285338871388072874336816400381912982949497759995838019079308181763726650378875161869168031210186831623129726740738992863638449608749144381850312370566637373747919528756529956208212115863097851093848893767122702034328998104084702512288749778840552343338753431404303635754264782630429191613143083867451324205240736056030629404121275365964055829361953357039056682876440643511914451096511643955638216596167843333531234262238998272441101693515951357596256110019943586748335160990208517542539910464331614001474273413100176733844224545629367937442754785421395769724736527253130453702911861172064572909037416975325017440168575984222650082767781781222965892002885005178853125475497396265951267116919366743809991283703187685519263844348700652643015834067174923712501824016032812817872663977731051163222881237105316434409140361680579579461659230541726290109358631031486115058663232068686404891466473471807496379197000900294878162944504146577086758610189751535687624260170385244113881249942255990561892051629934466890350773996221248568510043549723427070217315587711249294024673330577664675618400641037963234727296646725862128982996969452343372778075793603824235452689868479867301791799683147773001132510812555190762709658058586265478655246269982662444048255808621396726438832089999377157425408893297952800904269193912910879107337436499417346586366201767544814092978582235544204704055343859847538704810841423124397260410481708561999525109752050751064305179862634389141181780697251370895622270489454793999251967788540131446279087981451037086134930828286014065826412987307846683170610046378228510890591361691785249473934513307361706980987788286333498589455911497536750925052763566202051130155350188273634408900896742743539323218498492710648362124963429107836418655708086959037786770326376530240416647669549066864679194160802972571246020409353298764378676615862895837068625860188607609495614367185773915147740038714527996197693669072793897291811478771999066280465357453513125326875064919038482054509051051177381526193540492675461563300323603835244464491093353726278701462420832690105852682073519595822359283668010130383992547105573583573473143340434554767168367451117835408288747180103093300825548129078022829792829840263045340321561724634058097025665100317275148006548661838356456756019500156308221353240429734958550408562029864853909416336528802884491689504301075443575481301095645579787855582307820858622700603787245793548913463574215484215305411039053574562862055137673644874054742841501115315842935430751638611494937208150404732190072518820692800419650250041897049358766493448926736189887143379955409357711579716957653620955274628944370335705744008220162774460843272388167773004620189651086599033121895624063796307406253355032714011159032151432732182954689798673198202694175326517834767314300172817169039637062593859781513990451281467803329001628397091082473448475065209667265846396817345524144807574970002662055988985630593650986619925073436846944550531959516733806214583699206593170992849517414940002583322151015628013030988280821576612927426375804206119323013266786071157242087733090195948917684354879245569750606525628334537371051482126169280424941880643199621348945544382861264591353946581735038350070900560420372895983439944312512108393516952247922706070073186270512849069924994598044317124203157788550933103327762119906007869285570998486095249859476931878026437269407709217949571812174409028505471759682800989698928182321103773168142401936012196072956697576861113816418036033402618273610226550300564111158874697104518248925774473051381657034051685629671295593272931369539083383387869684163824588551250136581454947819362632396487911889681894225673682092440518820665399015645477315682790889931267918909628753030488748594067012371669031894702921184778512763056916504283205180642251234909091983543359808961124895517574805995682330176975024273154280782118366406426334549198129969647514220037089687087690888480054006711808504107214172524438719333858424034613426715112001237024669454799122599679934799961256237141476404181494472784650908184497940848949060993366901729758833316960860469408872262367789937880607945289800285588101093521974185053716076155042110750508428738619321379927334496423278028439126163751212645052776315252404402316902940830612114770461690507750293624560242385293306907679715763203880504681636181846519323244065112226885191878247063422941292183987161382268013842700269952356533390052204542924467546334667824988935811447593256970672366899675425724524923091513970004361451906144086376956128409759514951790106270428761525890906445856499018055388800572152991068929791181656825269847964260362243766766909417218608696980996379063665060367962109630933410835584558368624162070232495785193495673128333567216642148581076989736176224709039224035064910854566601244418716694724124675643618389479068054031035913783871016755766716016798032914710281250858112201567088167186367290102330432985913998572013206367936276614736633546955412777295535729587051251434737859755913100816955588106645971476422666573225348030429949794487139499624789761912456115065771146820016223441842589302978775300136811055583427597011879707946709501423292643455228995572259689546956015495594268173855710087825605500580627482845239077503216968600249361240378744077918707268891941076757252221628929002696803377083922064688615789588343801327037041595314000685461921945210034515277627653654177686306000550465342983446697986797396668351772075665346827150951453002400109840808428326646866061160948063076147747127812133895367341724345452945840798124679793876766543958835173551180701888175802317142568298190123154679710873905247177788178013136508456860403411691004480087275112587617790643250115022188163440189202626281550305848506547341057913657188815155098974174857124949163688314011242353930576330869730636041275802391882597964089511763651809117887722008225921733429765071670566394075504816565285367419205172984233379381647336525382269534621487138394233525696398556070999706950166994218635801590664039535225485116977350129617156039233655202194553531089456324684686224868779647368637447444210729361428541844793250284635341963762062996065762491389175614786322648653936593961015566098399057210649164870260606915046824769567441323658691620604028399889093945187093760494450027924128637486273370599715110456832149357976333311703929176191930312629521408158137254795413624573283969114781919222477167819077296667906238371999693285310411588569899748760544768753399285963930191420431237713675742259516988779056557349975182060233108997482019255355013893061125941685451694765590034995577312600067259651756275506775731860128841052709460338324856076277824497900923644770069877509098003065923598259875150076434988255669664670223070940067716416409922167971831211257250953192763380676383744587237271223943876316138746971846147427341800934594982430737858212494984245836946789863200460675726765691101215229069250913769612887832093213304532309157630412427417128878865818984744985998816856055950612287109182058814319259746807966376884899945394878904616221512596636216201352303676199124542781240231353713887083061349462906594407128514910927948586204835637631968561340050564759584956335550817460166136682679426376803329311839538237973637267414693471478862251043764100473748898791172711143609430667771777453027264507714135108425471081996996211872067110252801997044902824663517171361330539402410862832127608472180036917255676191434772986087543038338944431443943401718967285205891726155516198975897260258237090090268037234167333274972762228200766449921861106870934001375527220017684398169091572028682584484279899634852189859277256901126134386258778359898623093426137867774789994448613176141197673273648258825186409845974313791360059700051416813055912592693533339643394749013567593286425110332606714256291031945920757329710543853240987566406856472628488313696034420881631221170363345819742328443656718296916190598103346932132262240317469083451326188116996200154728977484534067642156547011544501801879097767634509751991032051528432201256806231241857203077964788277623177877704231243685713640213691056468634596004300143566590759922249524685754084351550385720959392142258835003023102704574768246545502305223461170235920607265954580218266172439215176470975917582683126945566301172061049478750656949076181569472751224725801647835563351356376580739480573720512863350709771491886555806526796183495393395213812543824141158571282485572997295524089185027082997295013945011538983593575255177810875025187469726671602405201166430331674826163355751153093340370596348591678449964937898305279717355898021864348853930722494386994881410383106022238640728541131080586274518708271688404608314911256952697239066881063407172828768293167248931975175063070363076662694043447253427350354801869451895502075749572090594321334895972612442267886870415365525915331324108583762790429054066389613528523780732931300839877106620060775743769417314278901538235467215717086616915184138426934018761653153034254701541393241941033364213820851066486286776746276093962282438084167723988951596854938376672059997935000409105450186303920900879909713608366611419222107358678136630167959787389282230420207242397676520098867030598329958020244279078467062853103238282090880077205995190880792512484314245251582923522350204274788992559986392112455386007813251895566196563563152831370985778819119721289519049662676453326043856125833957909220424966165567130055856298137937466438525537956951784380106123936398957441996715503886772066727507659917440790332810671737916053457669871748720606238561490456264922987306941425259592210728535752169462596498385600620128275764719921450180782711785519894966696713013920461795941080935870427806872020424531919640605757330060113846379371171472707317114378491067730033546776363020492195077966611584628204107274450438768792243817347661719003629400837348965705200763581849375755723304471709353981360340900424255005652897946650882692067520137326326536446965592640072148005189571583203300095324594796885548546039320715955743142134391775659413425094402088747417763947627368845699219710367587213059996956233698787369583554983631879245553173459437514071695516489327373170108065588783497237113681170480282799406189048863621243301747850426086945455763974421847206337087681112494619375925896214373779792507400862232877459872083454654677217592519762529768984807434965006261295774250765000020505324114265811041754250289186686540285694957117965009511924141527827851666014300389484273820929620594212446835024144517565845455789040640608348855984857030440789284038941681787820690565256115941909859724527458206862465099452605957432151943984642802274973850257395802582139667067851798512808628401179961968783577830554238717184376448779935795657937449794618352927985031547910290806848268317115629096239273005547138610716601057125334454223335474380777859603850616319133719988740359288014786800668453586417058969315815415012354617077142413955060533712860923408986443147768281728105081646914026059020225355439879609472348866617985456836378315409672994275219975271564238546377133331920310667928570923174204296675134472616936824621680790853489411012125707228042281557112384664667502173571833945429137987598649856812619261722676563296491848867907109567305792656206616651328780142925566120612143975444828704568573486869603624031574220284397022531535736565116085513361397447834114770307324005853091596004035400913313767549472646600213725772692144232876750370898377232833378496145455371723605700272495315324603843410045344164258414965739396463790926413596827756086505714823554747888792981735260111299572552705953425134146799889243541754842069564358013496329124091636750820893340591470947834704466767073110654214265823944760554413013085478071614660363987602255541203604792152268956845468189444491918359162329592408427067219116947603868591147469077104938513259590030143339376856609174973171196320922532188562344062021855153294211682580153692531460830399438343111819156762650593484611230479353233657010028738069269959231019759974821241968864923740291373919633748033237475882438225838007142499759848672685565562073906188273637258673526916036697481034756915862473119365983700418383051846633538388741780364666472303318863255935562357837561020772714503817941612477209173063178546093394801005924170933056636503160749251330634484867961378718086314877987957479474214688558459324191342064200508966466856537486873618298002473459106373587125999535550611515767819694960981689116683401188250082110223260721671107698335397444030596095288923220423171840102108031500754539917086836716060605095532107792023110118901902331166626014301644499161498749540748405298204654157746913003979645663576105323350548107492820096949215041836985782441853836855244023351299961486169209690367172946995369116089299895045164297447371880908546183668009717328203721237972588914860448562454306136630952791794526932003471646983991739420444348144055102122885699908018034137231545989057750559838566520813806582671553605258463497868700192999949249032229984994089572759135243541693668056258998937577295796866362370041285699770194526283635972847441665861786659766072966923290529756528771941564110723940009848705411400340857431618585296905619934075002986206627596251317812988750748684360477681206731680414361599450253981537537212627206690963859599065893013746028004532517424550784892429894529861184300613931508883233780292417537241011190216836611977445208654178365899221947635511796189489330426128362945464890628315575301735224549019189145527577834571527946391668897348087375873593864848922700826360225707590609653598136134301112483964171831503976747416500929060214379531080104422521075219015225336174933385554937923774770083787012240314604484839325687573498636771662561121162745907993377360245424888804753688903751356502166664271810920821593516181564484219921557997008117401557158580975003433404877051402014101785486542948408028566090840539125760909626450352628296538071991475398019508023457027615606613485670690703273113896775066420295489317844977564093858624741476782232821299104476226194139572996115793948427322054688025305891228443472959692449259280894845648113085501000373452240189037566263648865111255991601590068654721934976002024243801526295944020299047531866373523142406589638480483444632304020098790856585019605967722767738564231819088160829322666054278917170204302790984482210843984751082951698971807541335222039206995073032206620302541776181034247646718490528421756863579047263224581551609256459772931065903182691841203856294361976314748713559653101659404862786645564737573633918695516306701275515130701775600973557223482360102117268435528884319940373724249920829954474463453877470555536719517745127729323085912754645193055572678594781743634186694970887169101807012990760730253275024713367167662051030328926203594629497406813426923093036320273172142378873402869604917251110985958578064312253849190074440486928285383535863988594821439023058628573793994380503793018412018773944439470371794994820251912957744978976967781167162152608707934951819082350851426413736006176945921467091064048667047860816758286589828939773369146619468631730271628020638038874963847493462938629156666991733219967711806602693787044386102284188823768588245349543437195193200167358960629324756140580133421798081671958594673659645684844911977910176863551629203834864590707469406045830945301486653664773229098384899706549166764321860611843459964630246538962843981764803500969079895231555365847489028936172035782643730129765303441136182246996396015361895279517752337247578645309383894353751622355650890359261411017760779007187166167012718744155301741118634972783439295004278762569736793871105271353896235054430074577925982782042352659544622966874043234835999608813166788060001822680453182414410093309514882794567091921811090565873257068276785738151258275446448557335960503918013643699894837205977638211795993495530413506226779969368912996432669126750358638009397940664568518200694267525363230824930064157053215413470572391160371335875901208564627843311057537912588116410361551414173838761985194642183959951369619214919401602468378635667916907533105028440652307084656680620616962427815456573554274587382858123965670010048239394867011678621844785011889137745213341717009649517463417081121474692634918690484291915331847119754855572921581405766982759609719019872949529786210874148346381214414382743218838484787664920958901416227771876202677179893131015012357239335060817520081508422277155263251292656165233088835560919434881020331158966550171541029727597908594573029438414441113607200958926515278090427786644385534890439994679022658086909627189167402979943425378089045141424225350948063859699930839628168080255523459758063839464208310915436362399784732214106375475743251299520017498029051499884791913271257410634050382311194372324454766570984385113785794764314468402074770337258757110067094470531426823381070732555047408958438555861845420237117995730810366193531207486156373322456739027807212353500191054051498924942872492999224184919019197581886222180898767676470555421392142450361025561872724682380726181132644938985743517474789802850483665087180167673785861403273359824583656442692233692276152309915404403590618192620369091023672868602452051603913390613382588715906780298953833346192641131335284530341432627155210330363792380845358555459191954620620165917427516711689764053718614605787093041156890537873542887198427059689036306301183001984526910857621309438697388275064335256927553044729582205427311617759423345464360362424527865862454868651807609050874523097552431008998251301620988835349746581562131818187570035280157061377064281849003472894454888498028347058332314071945638874265957505067560991498625881847843819306535000475589440057421703505972690589502963281001427679748799829425844900474078617822318647959975711544340921456436989438749092430711930219031258346249412424085655292025137665840467160884415249230192901817301529077059697589260168343254744881292643827295241123567535610454285848565477560053741635117382072975438854876568062054422931044210766819230155656558381310390252982405153218779334900135084472907482503173890175426232103596361061216171400378088768664119304957396474876067842580741409620973892609589312805498282967837080763492362251879467724454225622353662243295213396416944465317265839252388944982385753531275281993853709980208196117318580242772158154945336967922734653643465620124887031612091292619285407405861322155258890646601445486005034205856100953118785898769959557092108283899656683165791966864347393411597915839978136050844713960789462945285787657844297612102867629055203588042315765479373028300168421306421136273602670815296945823350481377148800484967577978673698053361046635110265672282976802565654672874707981113091109699727873855351978593380953066477470883729535349442229666756851269514659811618609513966452771730505210968851801591059521751955365808727891908804004776510584148840766890638308205696357885836360854069988618225546993652661619102128750955269885703661740844551138338236050752717013379436286154382078035490418399734669748400270667585348694611842221267234718984407633715857798965491439660379400026717032979576090908165754305237559135548641920197483743889075655108339151286914600035137144152266644078147081642076653239462843928188837693775041894817738449984909131431453516059406598372317218948419863886304819207925843208677732180158865633350387613560894238566625994327230200029761415086560260873836869099863180016080944639155851289579649286488732613588664448510088068983754443246236461676844540815751888790462155283691766282633898471144310139561331196254485041882957772609718114733393712276181681994704693881392880541264684721465108040248245096439764975986162165124837919521856275608940495988173467719831427417604597121598104540835246880471559489198636254679602842703002309995430347521714480010580284103988905390263585226825387074491695536806453379070032341856889614654993855789194856652133913699283117119780249152018603338738144160222886352169558835739428425060629982820792934914116707252639682989045412275730590505233354703979109130337851488175485950949819352786115328155996259236676260544103907359736994676091506788884766413116569266138858595858626702255061265340397009425776848712333599604608209787082514561979904301630188922549083554472876437033295611135212080592651620124942685277613344826827789362633287051088019854938985015705917678181888514586858913027563959274927268508824578357924401439162124364980582962281843785764488404298959371096177189535685592041119738595650357134573042950098421988325938992004590464609452833572108557159940595729223872707374132984827893157859071728374670554779447073404775906912481171197284558869681583504037351395098058824947127380545501806516102258128327219091569725496838137624753458855894727410281450819349292665639303570349084381997091954385252055816544147171906539515455493308638113687537391874397058201398021029925945039449457951367425827767252296942811174548669890630435427280415294065609102804215181274836561256722932854776064521723162465090059655827373436125869014069103706177498432554565644207898729000098995210755147695420109469128598846397460005877736992684262284718371662424432091645928559664560990125301720067184759042095564099439881422351514095323553242857286500273868846157321680030855559056241767515988854289285941964504639683385614423428822106119009708508995287925189836417938110056599973978548947329366459143894127621872419114462936452889604202059868857042737978991753900400064848474311390726026950575922317314045272447167118024421210525942554407576439445395449160053836995314925203515383439383088590937698841466677522012917842301611135116489636992465790092315217065387172453507554947737702888896128051273842336098195900834109845513401211599247529457862324719526674596652286678033215522559563135470205628674510068417522936037688264215325999754323841591152827669534510510610984768463793806091519836497764975559337214380409299504907866429450051813566856574404546296115531902056191905192839317972292504120677467050347599720614142898330141058014224455922633564527984315364447255422100826208370916491967130288464562631841775300432376330486231651671343546263367156038471285748491379290740460076816859888615088798359762175280181172947157350022414340180037855723990829115806499987296834664115000721357778973236312657204813979853498345231276495289383072430808434988455753421885885719800504242050177453930603580625837744393021177836653708221231215814216517750895434727503688036713096668676334157416053703936977149712403174715503283396102181705685921694607752716923792427859080055893770829169286590150407895173925329318827240169673309880214733814590927254629084946005234439798858247841322949538666330388938657230587203167001129726965872908290301184724870089622847245758228484201920469147746959938659605160241459345874846214648147990385949324435014903961822689767657426790334200719208426871788180860974193121341626242914319550052061828107410630405230422828777669918705024474743671961299364669169820927141023755755246818377835029732854114030573006932329144154444160718615385176484527485286287613951628153462997967531652565571107858755710604751982650872848295963634779517761853439291832867730242486089057538192213425878982013410577558446211254594872181593708727372687690175388155369306580977770042681637469960591746130552676479404937584312737472433178642346059327652993526512033351038442578804053411361532740381282328477437398375411162044485837421404682280525929031740286155284132230323460831836148894434482380722696279748852521608300391736537949920838493614786694763918251601146807081724014672365152931688752419060633942791337121519183040636835653192704086439065267900406806985157594494849628484731877120933436580537040377329792128399499801236366463946824835032852208972174584150495635161503041337439055990255358077784851823973723410366132384669716912961215780971805522702685676362195791128664264658723539927699476707378079358143048808843848541775068635104939675778277560049131067621161430192039059303562251948850204339119012315891853534711261669725090717847713029714979021917693245500398475394132265957112599074455402807743060076821397344284008086815242363810707020784149598972204854785586543897802599630132145890619343651558143730993068242779422960150405014506270399935720452925027688294471268920056742185761663223775432915512034625989591663487692561252655147995917395525372135353518960319205978799217363154971601677828960121649586478636383073224074167340928508293473901939400112280952458895752612315400144369639407285002358931960052190398895419975038988914959079549633090970585441312677350628363531541683460341873472466183413628859838003563878038872800183571134278126426800586544783381708327531413299717357548313219455038928026313858883433515710802268922504983548390195918709603429977725906960188532873527596308769714677362152820981764737570829094082868153734815235907134385994439693673697499813134563136626294064053772755594546386454602873167452020307140599483950800144063751942544040082341457118716749148285610144110558947320589169216279909620756456795346393404770188585712824052194602166506600038546133691360663601066455732964475470183518887486742477787071446895055628419422946874752189663033455430590147404534659239370400910270748597491196658196425942347620322112142801025807942909301432042245847509542983509946815333634365948187646700034317899397516167899195744345095184423602654566680130122826659267240852736909635836686414144439708270925535162900622619579201236705508194762453758237427433486941707679748034284994122209296675685109767224028458755539437800215387994690733378696734898742056296122029727699483883298590446060835415644106060718665632486810253561184793187834775749304730173355386453092102884251270427601595992316232550737106515750442995437389946318132594406633498773216311029352105026296323460710673790860241381194746438471276181092791836659106833191409920322483014835600677051702061106080980504446272413904580607667655712768894861479051630396787879594126229734666287968646954458335577145760438926650858815180355494553606158804854614418220111835344055609977098723503632878681389840681634696626981642626283198750394563770820586287568068188511996415293127016966024397681508777681051088743937767300188974131038035203854748435227740345177848735046199543497815225100901076149987051069081529525047123184750532435366948941967091626876549964421067578007022773293663196060033112303539565490614018908115477640610810678825432125008707927769621162071369185322553535879144837750037461791990898718638016191632425929816797758672253488130576401808432352505627937124746349389348304927033069487896506467460852906295426513093285757211460735290080789699922267155492114207728395764034467720428774613684322717551471591026221454372779961944140414466848487807603043054239441992733054236083418436299318348620350345914062680802056841941882050162346742952535020173694335924209123990272833509082821147522395956771343904226367012055732334794814495838415779387412623235821254338199059532095184119375972037255570305980461766105557517191744161002695370226931155482010736424088893133933221082901039012159855738282557771046006417794747801293265433168343275398034111834638432121310843644131818253308782086316091358812672611024307215549232364965034244725223459919143899818353210533531263015804477642175112431411892848622673990770511650443387977701862030226162379090290622526758678406018327584534969633346391702223614329154146974007886340457987441724897442618332398395114979627477558197953678311851945376733057776899003727594642999766543905161087217700393290029321833717541882493800138156433275592799078958992726081143535381606463599489817408574546320103865107885112645026554030740706127995039591022299091222108775404328784041736542479326451797611599250213247243213359338358368108197769173455120041376572048114851340237396665676401131220735227865076901906069548048838151692267586383074249412239960313445379665007436278134704509172858988737047845986800201110296045837509077028583320012570074984118346916667960922815319040623890523740191525289274930457507399992966783428676713108326787166700293953252964014448205059018456589793682900279461344650224973558262884946906634794236135844845401344229652908284059821732768912547251903424511849970307556751168435216459215179880304980315129373105521596848883461764983634499771314596892424238694920550876516946177849244385834187859381384017724174176958909011097928000443572258362208151610593070827453150138970043575042054056032191065033180401740396335517345949028124662539025431801887823536573240162009472377864807746657255705436106032922804664458550679016488724639547312074010095047427514745811917628839588976265659560292456968618685247517565257876358414119573991790246415611388621090486383063895348729301201421213521275553971324690089078575933640871491842211030932365496792496653657152000242302942707203971048247094236870275851275502335279845332294379325170773428560111384397814368737614955037400650372895280488226084015958633609297756349287194038016807821624571799290865907015571524297013212140784341394077347823451556978278962067220746882703968486887375753641479258355159611726342511562757143047194050782093232220388074158718454896982997650639532176123504396150992969657151159257615993833564182860243843744541087205125381260453657398067407407535504486660343299984226095348943227235953821498800534196522371596159759929449903959710352428420417565954332508955667404916328823375959231919541085356280113888530291334710152704453563884552635505940440860178459812467077490512921902377789839231400234287761846454697817031120290825882983923710180588045375845110136699353790184685493379918068742636533201705615796806222822367819339114311776010156239615166366275659183549592589222486313989122378122263476718384519281638165132785639386279079141574829796110962804474209917056960763224249784657112256324252837322554918687685972050475986241781524812447057055835591359543995961947869200122095139937491596122443410253508580793917768386738350946645529799109314938361635999898042672418194565181770540131521896422072034515603293547354174907100024058642358153119396817995312856689362571833460293648191774123375878450949679505071275285567844037359650080780178842488099350713303609764751774256660300414373675891812936183516196288414688469160585212989678001858678792520245714346284664002610903751289139864970217709950805999782489696740988787431783559884625612415340169459704539040135095161690995934755731875635095690288469052964485085266251160272346463416489203557516538078677899833017283618476380921614346536864840508188653635547280706885147826459953388864664616430512027746944174175493460857657625916453975373393746236730971013648429877692350771554859765703138634283435737272871716069154951276786047987811859233185268762077100646162037053682242140912819936265247633044119504520842463355506010529244405441290723195559088217324200643273094490353439740882892993405889774184985438179112459328626983165768765973260833427008281316694526426544468964756734153517696248557778029129122594326087889160847748958591517959084521184471729926537574739864472460670310011646097178001454688935712589837004737682442756337254683697558560358997199498049918091708926177034159843231310624417805325613574638688996154062409659780810207676698784190646116699528784569842764806757125732071734309221631735616976165366478431407322239780174976777414741381247451402661397931372078782424239329490756021852138331363224722890886848501145247318774886565868170053604026804158891586101253868543192352374250654632972895460210923746745489667232140297251243795258440607092981944683146963019602574276019192428085222317541589415446059150408537433739492755555227282312245056914844262825031876022626276295206248760274150768491066642875511074548847666096737150454990729082113066757071384059006685773052858921226128317376857119533802373568665335735942103461011095227007347963714405274464393284590008687215586708961048346086465830185142895601575010053593418028803402023610527688019594623232304044568041809654404431381267051797514129701550942674991584405888304074658766589114743578129949721356792107388996565380869894224814912602494510565196610050474068363433108745769184874028863172418529351336853627019041985034642825995803638349947480139205930128635981381751504688860206632585857035745493847276132380518190825497211514448139568441184708793304440654218628728254755017526866985731561762533002770489287516497403415623098150127779179227018863309124273968675303665269553616880960843070332338786378439280115117073726741496919379773615165091766282221459124843501949680959039985497727426659147634975330711532419843705558675501223309753562594392468661692538512506140095346886674841425664102380420143760108736152669042713090981484372482156477549640162475935299824405463906977139025696838605947505313691541929793999333314943647679947930245091309442766799506050127631014760970804123650535304304810075144838318837914383482646991573233037546166827915197045232702904058318149096265358921815599670138887178952220541915161804270243000223189750159963998386714278555184085692089157465403168815274732488953134914645820230608570580845557353023286085538761523171461655817067394694749045314609646250031651628414035622161019224805263072837146560235979290783572148031032569180316803070114907878404390504257965781309972027342597726481789193078912427800563952634984934029272069569159486837776931065407110764770309454118274678736671604057003052864294850910330480388134872813511477670334263967317435084081230551791431626772959014771515801454372921896367169342389867020155395261977988932985547361344010463195408058680601064301185004183589285593348371255430252810583751724270946207396257130997338821285945773615874201330603046246871280559400874001325193720011822944971561560274832356221534436213635133450917143138282053363048895455781418361797015880367281183207192324941202848301521782879480426306013569377214094843162435755002776538750555808860931038952147795260836548715070168853389116665712115422865851102445449422799132035708591715118308855382734645068222055368302628662525224626682354271608049088766898797257333685272650455862213092115512377672218654506595929643877151939990374868737746709013529615485576850874020849598301966731846215134347542570510938173804897376586122023536695070162506926557017788394613765953180475768993724687160469046906527949974583841671939765270557966074707018570657556723402809116808671605874540441274416173520322449323928960103655631210515902457123849795389369085524392169307271479543043941682623819907328454231525849455455389593882083308510788593598258283036082459697470237703173609962083308293626794600266561576225381364948089785536957845215036811841449739130679514355219512071096995390408297775036597719585873477467152887583456816582970719837788295130103842599399623874906156143614097612874716786153178305415584511206075566465479305920018007241534823233544403849539507695145987588899192898691601895650715204362110290146593099324779821781702903728822643051198576668857651841968508951453879733945352668026948543422624075808284872351854255915194234749806513810774735741412951849814011412734238869434324806425902279998777259076005758530430513983653328731797564312382551363647115429985121245930443200255536033604289230653119168916527349062810533802644607584831073652281852435341555820865322482816503680879556958685353125745691397399543250949019527741014804698849358928878918449354186272359630275408023095761123967242182860321047655593465911038916499830491792067246404391457030439183071385880865281384390443414941833397842288419174867734975847823322338880593928479796552596425136563777370456998596959247938344827719791790695448873159056570552340730752821702694351598017669002269159329113415440999641328708190756665516284170452653731671228725691008779516626228568025263138344917472543800773400479809584819223437033741719007208991381567205776907338858063901008861253248277499450544669507179104000214327359055599860043381559273426855592396525637339907204716144692210458939225373968450658370130717837345211634480780988510651032052099862144952905563315555508448684951191080576317729642926036213862877575574903539112477896202565623245164767789159111710774552178887074296159782012329739173160083142626165368155253037323611355694603825668093833092749548509997130059677256849186298339257310966131382052752991264378270893858370448654304807602579777259557717679884292741009480182628792646809465484787634275783223328788596079578273164823443906418367080819919307139610902993707435828308039431383368881426704932126968162390924338983113545788416131727009394705348864986161515066075809223325730293672026586882022552363570282195258115048005777085592309672128149490371895379384239047541830623541174090053719797192814071309933636614582059080799228960337422188028653547206912204673473936397796584782532881369527504372033732559839730288590886573033628559802468522968163870565701069667536709176643608149725610528864361604067245886790241464294355260717875360396179234037300681642147599176651989656675046175271331802694494287182734443360473336723097966569548097917090476551169280784456809157618717085653468781473162437558270853202936579178568165776541468967853823888897840940889617975045417950228752280496299810211020341257784566209962678042597382820339415555536539895127950052709260819416495296686554974056918766146397461680571016000413146011713613294550544658948024781987217638774648097075633730300357143773138611582093627604364051321408500885187172158880263993459718627709042175028818216757702986119935629606513337697196933025794925898958429132930007823770737125287461634735436822275012351858098717984983345752984800214876111616395948758681096301153454010217351718249212569340983582404012643833491501677036959505822706399451743587474091746900952644836770983715748675975003452687424746648820382629284869574277758660085111743240718890112340262496456432809094451304323861486635954502792510333241240996761289254808955142673273487263512548994861978646560706254408378250424911653876897398919868623790730276855049399047082548148649578865119290316786208556106342662589032441197535699799435214361188329741577107092176669767070692491104801035671779341416509918407224276878452269349648275959800078203678824627582488587456529347743790569715281803163902942288158312889944805236020902045676556333106612490252878890934276781595746350032635011322130026828473751752018383037954084479969430622131287937506067800010002114587379089717735819903221932196102570767792692810245307291790243361064437098766241262311780940357675336519253586830242375108769812681877176250970239726615826308033626431031903405983894228053627064505806613047072384165226386647193176787056639782255117748417162137911660702052285606271802009155856095872130400417837335547678471135332142894014644397752083249822121125635584833716737487865169821449350780942137985545027970223107310813064905341470934535279803975530911809955839585999295113539313022853535858930461367693999558615189030309427154652856070757500979778115418999769305755802487251468801666842025697583782779191464617304676432082905769612958665463902309739491527245609571181860599941007858179158107552013713354988495200164499504226004325267705667264112963935951870072833263976587528590092862948166883056641617426415675449592018509320373333379901943268633409756848978275702341505021905832471407576291707242275037025915746389473633551440886376367644990481677082304617460906464903827455865399889226291030916008808525832646635758508998498151233898795069598375383555817194224215213255826166004816841295902593564808869552310190303053091070966151586897343220837510951208656911370881483424678174113071861267405417905763478469298466977050049844500758781823513193023883075005152014033588882865593622399258941667057640918943060295726548220697151054492295668070340795426876777287343210056502236061705434693599740304254645298882776086855739738174614268950147625878276838557218165807207881769692213015845209030942944962970976584610289051728327254680954755904742582887977831360893448988235227926536902534885778515382302228981231483453571989411894055971694888341535632466991069305300678443483055389905338746982220024430106201845760483056212282758135137388417274984184993597154087438793177147936779198019159629396201669643938005116619591022181233528131526800423589942552143072685267622415118326058621885043307731963234513730220835156154471379985312878560493050622666401264451338061128813170978438599564628341513220286008973947321631536822550673028955629696058574797152311404308583416712551644523616591259322263608322338636926209480716678234506277079101036832814381982747410668190718381354800316737935743104883778426474918612057189890349489049520533325747045706053017479339443333926040374131628419748351467012066387674653129054068909484875239318246846360699791366526558308595423499778636586849401386502743675908489471729012597792808327854103070901147838842548895883199366449792686785595560664603657644045182577688427549575352440735456569993958735612185318191055444349397203689595810075995218294597717874387307395794466935368989985656659268142545753238824702402709233760214751974806037475433010301295449745194501692939790421143943177637924236940382483595941292868887720299404820042401765310295844871581794794354986968998719862879613808838356525517300833445090898967439952477005615272720205620598381343919866746886583626875613322440125126460394180410462587346673244089425464489788747477770664825777542844272520721945033934057574440518263521274682923280677583082764889869570901817490036530165233228001651042351037444889000389568935333160620678721225990069438559884774591920782547052379258579879314619381733635618984096043495596884453894019191470516980078942410174413050464329167424705649898406499841027041160597653586376236690056718218401472590324697096364148910341354914540419999222371005467091166734477525848135946132822694302149617838680445061645569978379720166135148721525228376859842358450956130860792536746813355725084722871787918674153959553461499607712647302983564459579011762751521692563178646077118452823622164982274611038917989858709364435524799134273839751921518327159271026580594121753661012132212504833508925827655169642392225502234327216597539289348112483552131611017531804381859055321701863072970692558100377356647214824636756573100870835539913278594520414913343332437948952201295159696627822504030363906940172578099563703413221534949541090226303512226841648395773018197381045576890904524297777327726562759587369818540989586642727469328702214381320309982911605897553454509062645995029015341123109477515231410224236926241847641443436458378021076154840508722076576789082187166406794233551498104900683608014958776468191290677013874522622914672517840517499189103446221942624495120423585599644715664757124704936773023731880712632309608206305245655504078110377238004414994673735668623822955351260140276764005806083272236137836955366611509668105131238401028718618641099658427705644187013164949273837122547496087270575165922986654190586010094698737419380950611993571956674868762719639003945691858093618592903362694617396488610477294105314221922499529888462670164572351679583775908468880809217884743474322094643141279945864731363190025911023893369288886037143781151330245226417479183355665180021938043209921333266054818891798846116067648340683301242884895541672859155507536642552365266546753836234654856743573289337369009810609061362953114718790470105384972939093473179718501484371647196464904537845695306667424559169395603644454214506069330386030581008291999904261261600031482639274670640168233357025440230680555816930585966609858738891024302150061708716219928440597345803628628302849007128260436388966317773833487286405772463115400654212778113478328793700679085964329848777333113870242186377950920961875416495073698889082508443104579271371219861126610188211162542455250819671484049557025688487662787069397490947298634367263422528558610396654402539594610915921991429904771147347493371196225686734594177205796428804975530369099346144452699375812442587694201694808106883669845555399721536786255429021516816238318189167619489025883483309725940921794298062976361454916868256176386593045356026253822739148428930713737204832668512061639151695514973340934997644170660380375878176699116869851383418843637549799593497097366653124593188330987530160769467266354938313278613757047821179959832807810669174183706549699346094347027335453221251248685664645047376964692406404472337320602212529134273531557787038027263055292858394552019068999456980230956657953307546870752990829649209700923375402297180805200494679250773239409863213666929628474678198275699343579162865933060071562334951455180952105712155470329251096401543999425115338118549444646241591727010138674504888254933718520798632592340489804422558480617142194167416605122079523738668981318536788544392170748429200821544800887344714136148374480571288886232397480844756193305505964223022338700962432174396121125861054493248747507385961313410424110604291377173236508181278901452949842555420068248037365668869567913933215468185817717456695718444505432760700977818879857536711174766698306013710293690847907629268368611749511269800303905601735036678477910910979710494176697107697530878512164504869461366419217762371785501734909881302581358719807334011990985685645167832450446253522422616947748587279038544116568718894982246316681702785488004097264934427295002632978264907180058244569466570716620492366078850052567556547891363090591781715213604884118875431271423291046090490251347247877736831573452263908211040459179459860335984510413774951304956840276842104728431524097568074334057595821726249021419912514430519497502375983732565552765498158030151741849803584475648470076733555001856429289749195522667112269468138419022140331597144969707908368903455323656934110471841262287968862921567565771842406056587623864200610755679789347537240526601363521034413675129151834137823147808306419616521877585018949174307255483023855001778821226468160155533345269269021685982113595655153452602184499253287743976112131305395382566803095375049104082390090588273912453773372493273062299767515577733496915782365182788700080534924870798483121024928511986025861854261937263780612802594279639894373586064148078073300719337618720276609766985129916977286148232932056017560916088128146929707712771568801387366346534803999120838446829813995090780756232136220090115479405784836582371287307063367028172943184959127103941623836718337264260894859981019891716843941990529464821142149776727976144932754468342457766826504370572076539171470421639016565812285742023426755371120812179418133112922260820244982913667114141983585412850882188898698341604210423787242442769852588463907801002846948386296656197757845730306875621975597337053838310747056028411962440034705752348236486600599166044353410408541541925860970861566371178225648112674398478456023259069389679856924845156795873431840498718471515293521761126376977761679524848151955684294825885660345380596984195304284280459714601954097754187210152249488349290614086974110346800331363971250128792694391685700633634802980640275292618078746242035630016756517060367828682810259362156029639622510410280069469479114897183470756820011612685580966830159418029583572733806078480464393944968389435199204019718098968292951049231189461008864202789574072227675351387474958660212822543737180834202776827779714563537234020439094491705917465675220401207358110767937174254315052206081001350054824898424172064368954590486717530616553360400114960297008055083273503585408979884636800609359582005233637429843082852476047341427568136951485988483051364112572646913868760400643616356786271537152202137503018062084861127242339257986305572588919526921004351639809702163014610175641045758681367535157192475979450874123808981347088482162420595311590851053344283879983779973266743529984200151992411221119396697717787374498196537804952851485811437093291290439486483789969106709171354748334356480878414177747740354170012597415573537619326131227181718071415258923155725885559959072035126202650122928449356001966970213275086304557161350188108364759131158720833028364238930891808668963811399982942942417347279352312150804097979439783704594199664196759571015633162199798962514867522782537352613602506077437639955314777402814086573988684007113585723620542916951327754507810216990470994743856434642238491853381925946695361331601041971592822422229970975290157340220842784326169233853122549422566531525962301044672343624908179220832862977676104131544205291083131212714135407333672810141758859367580836741147966980848750408287383706459026956662097821504073526856672538586780568094049181955827951409999776815754328928720782499246251285897539394762972351670613268288588484251990408138176300964950057197180601842275469277337664645775158803301413687760650566261571478254583584175423436192157038878616876722864664322968516074497864054100575838539557810587403814143079637704652757899675379681700759266027334373267937082138840554896819352097847774577394952196441026137169785998136566007467468985716051447156616420136127651299433903210755542891659593022178598926517876701287302209227346905855430134067202709275769784005921473444561305308074901492468702450330970813539845744933706245536306986128319892039173353901877247217728614999771845361019692455874614949511297657154923105148356428990899702055852758671526087388423022921775651744295812631700082254679767933049003925572294809596635994931829845252081071356105848436215784796134561865650830291627082576501113157717244823860779082992737898579056940525550301073457796971787148923764934390728786654435875520974981409371354615416077498477696215353343302523390096252777322551452752882631300556014493988843563955086635532174480880504533481640063877235442726288626366885341655479296710994631006035981279697629598944956597110795217492303541602758603035287171270173648604541231306001575515079088105691075104939162072491941954484166350658302456692847388708502396425186376346902576175297212340809297766054253861688430493124013891351630166690374803988216114130995205079481588592930918724926573316450803122748347694812961598045340032742659119111729989955478523621612174242078428255048524962051728705382748145385024251943115403566929358128614634698750647488948934464848319752050736999948355133660198612788106019397638022250595601009919457751538038249224833391258443666627910969425078342460760769645007276440332274022013969841209738606550721100773672038530521865104691744976348162391055782395816776664549525534995156334213931778184408607065601890730990448235758553715326945683412244071876997077900312352956041552545056452969945726080194857025687906340151622136417113007008559440575996079701015474233377816376489413752362859052630141061324289856853933971883186726583163207901803439128021548531526706420755186745317321906865260923962378145066604620148747166766613883541818849329296110778267142640493641050072830131827482740329684043574369445286258025287251652625630386934054458565645949790783984792122150160392024562103092838193214468635502807462243639517445795513409377739002592000589090718419063986244363837184414428278749230408074143222825148908831301685570074212955502437588795725989300926798500826552751807355645343676958563533237509611734538856599245860488822491411081797126767393987957358792222023333073964661862287463334842046583435168936046434733494430974889130746083749942541048984772935117331397965901016671223609369673971107274247208345738650451619949903411277671711159771195292848982923991884942622313450829423339145319997497311847278912812227933345274940494457234288972929315247116212070560766631073930424879695414770585977013540651179792745696699209217628195552651658649867542199383131486551992533665749514952139283055873475963485505701028758856516440029746684151878912648951381358759693457002826107164151344391870958039438987243538222842595568849788136167847140850744620846559436968368469705623775060721772054278152636829273032237375705791888810663122136882120383391981202503562558804318926593235956734595525077129623159397628934040862607278213237893393762741076541259279034658941788816163074511350314352709905780723755886641496118229933396877590083128025014013972488299397902596267401030981831061323312167473268256479571921679761016974890353164182487191980445499849058563264825510682781044353358847976281800208471487916986573928225518804535835218376822812677230252696953970347519511258650293093726138147196684738596026398589356282418505447165954659652934820432997253027826721131751054259660395058040299069119951894894079144193151831850032699139749788249867061976891234011301562782917192495750007575657960077391003093230920987268781879874072553356332672463744418464251653893058082249198892005824304938639731857120743141670643662733603880648444495078259620103571087833139602399787104771979399378361835178298869098796744310925543511320656218799233698969017622921876433375421965119487350041393867667078777896957622274499100711672675897669773229286412788958021551847754350958252166166950059545316050680808780191080284011063727812305147679206906911342336028118706392602433354392137556984746973438556120206411298811377810635461602371901614736409508740843469868068989405562675689672331525214698860894481604291421533753250159391068325408238490451754618237697901895158850898754431912957895833261361773553728604729205224214136747618422429369188559109149354790460991081344980976766318490543592442586506667744517070346616963538502748906177824564039607071614866897006746151062399210419779561547088848104904680909619378444556608822340583231925280292507849087681901461964063609852901321086758307274236911475728230471015630383842627102394258139649518788978376661935464540904347813489466907885907807748233856471269765800249573101156094855245295111435715971845624751665525822452493565006205734674892618822971297026962407382096449271977510877658425497369469687880273670314680014868527096998010870437716337076280100812982921688314108220042176893633962206724053869114615444329385471899589222562025384490429021233232499260188603893632925144469327073269289675505203718015493577733999578708063670003892197813754067226333155297587367421935990574340399892237187722209441692155798518727075909267275278939590628318862799746645109876203590919806591424668018594281632949719105826416919133472121991486555527115395871330163864097007277095094453622308536307121600108344327630121340363745258671286774082627386584995029158909086846760985418979319281241705754938422498686629332124845793384258487120823218491391122596179591815016395171024516574152733656489048648520270907008110180966847170155886149566718824776656303658429666069821906933159824365062177525094291195937223604773800179348249980428678535140639764555943603202192316030502927803802823597705891674771355697104216365918666875455844206280131643735807459917544911395106509403432676052729097248370704043691636306971245879036153962631592998578524561743456638534153414460271819178700414708893855186949781929077787032037823374689995964611098999791270688948921774212983887105313565863477973045465880869669740107329423131008210675515274905860503073663021877820774027978087251112709121384177382455953515645190570550488942753763655372240830933804995174016986093027142136854343911834503767742319116013581915115649971479273393596105639111197646736714788314743265905038517455766124963429547675967093215350651473586060423203991616351752967369984567257296805607597988851015827534484675968415652756883760612743829393665678088158610235496330792130460400368765809933401548439239218613738480679845641176562425114788850474190921924271081190406285054955403777503354433036017125580842101762221500883723389826960635075984787881446805831810725749099261121063138506653705039928408498862194874187962177357755076187364154297976594176070804010632446673156940773211370463830548546946244404868578560765874532215837135973367762510972239152890245481049802477245058180495702148539909942913956123840048799684174202146224956746054421598158244489342664540532648575907485247404608150641045280198031502701541750906530242073668070126122072294155236883282687515852125692506722536214561397735957692484378987344725083289565688035736947350422754431034692789648946855555763098662063863703541259150100805919984814040060544149467721810557219229659315159195744601116905994683540806276023643229460181653874037069578379018401903941803693893682656989971527635744186272652291074621678584150372741993475559501111246128921465568689437075833942876542912943907143821449298615273402954550334457359390154853752417703199518467411896085268130749474265622845692058736346919387774265256263768499568902686156088455512679544292832528051702265935410122894821171276072084540621701737189652298292001895035687560135854802317232925025538328558086058202914541279972569600541879863160481135648020376317306513416122678841535986652094558604787504317276001189131864088549017862381132885151783829959745277570388911927922196296445460334590689938670825759098362171637064527997047640328694072645107960626168216120480724473608929812955758356040704452228442162256868174904109679629740165438400319853158454992536684391878611179366545602020996880652208093556529371183821278401574073138919454968233625539292381844842289663123528560899193688668162896979676267576436208310264277273040671124742787784219434811655700283478419594288443682617381360336368694024117557023599553044661386459207783076814104598827782665422727534661452380700680252139024676142837769029835740725586159770751325180580661223859835547712443036533585312609977942016201632746563819042568553021819071625515902235461301418615412997994326270529962036247745124003276795752808555380583868268688220493270883125979604835499107754283305238204254766909446832228742498364404359187809863413903012743345516453808926249459146631920841470179707796638757611855999227965025848886294979076126753757852229333345193476783422244014479247026787641046742603423961814517119437813371586832858058978354467883877725588241478432796623742532138702235547604537201411128638940781225840554030580614257285760847223091766092100229038177665771880918857929940834000945913170910507719327671740495911825714149101529366557153625014563963721389458743837397633791023399198804217884489941819437621777142544765648794918337469359672893076707069649766843047886545705576007497780591906810522890944725247763376381720146882239945469683504919319025302955711121328057210046792559167103937770995946181266213535774045282951296516623211559777127997136142217738389017306266097357228682517524815227635539218087860494272901125484428674195778473595313087828784798680913321325456646728584004831979180111389633442728175506814238321987735929328570475827631270340056323811146376469419748057088962012188209155678709582270255776905988701092686563065633257727738828642133752385263096948955515654488646839317905352925595124973882191342940190463252529850442413549596460574202715902664732620350433213283537792134175822810212894067669145098142247275372729776724657371633627567646790586739909272361263307359242177053790162772488220359295374478487302704469912291624197776206165227087651816734108496558219118095488155440399301854303744239626698825747114234417438364255178181514674395941182786202937239558616249176840981217269912535887874845326123552433904627686573941485478088768513665443530890823138157497894234359577265576726356105945826164510062461266959691586764897058540589799003940318350331798813359180146321246690924450678249698984059604561806393190042337682555080266311964045955171323131576343171571396910864381919670063368228863141064807295299357763742242948121928860067488683156223739553772813973968104740264458980187279374142587256731909119448588167357579839079854014495882593253279683110218287088956210104285790338628265276607925373300346941248311966381031662722923081661263793699526348038662005863358830598389211139436094153773787183399379913380905590190535530449474883912101447202962560526338144736843188535892523230253297923688065442761275447396938642492782741025883594940757726836688104409982100316737232331464128721396899310518994587971933100112120284848739815204170795985839893578443752703195295280149763541745767181732648543113468205370420572123166681265541909320286201052267727500337879591161545505499507218435159076059877671186469608777095194872109128337865015373352068065489066582293098718844201358870926813948302451985883766962347409014558977762300132870276508268694033298620553643834270078795472326951360669808506388827058161268024802133518702136812226811450446813645071578334639243025054740671669177664112775923287025965917801255284688060470302021276734892502879472646273041683673167133367458510919762224353945880540139112254309157061035874886555402529420613429317820707426929783655760017380396010547132032253696771253087647849686545649409070273533268331188874473009411335153777941435980528842340173162851610291931462261273096034944159605052208214479619522321170920886891198346827451949052670034218816381298998681363474154065899384385896888596275271878670997660199653874171037821788538789531250372026509070848329662625108137279749354469138646161768735089231458714037971636074805486438485532491983469265828078171387374241739739998065880059772260774863560859791244220823353638162802395641281549708548860277333770156919174598461529548463329527358419841138493846604616957570606826382999209099716930386905491734409195790595203203535891458556228578452716988794018772897662089343755916347652828433482322465301647813424600016233767783972545519152658420639464990315561817052041037024237006006835864330591929193642790146969910554282539159145025972169157179864649321306250741599797051144583613304064012676465311929313717867835166827802800378754330365542115596754514590822018459975537674087606029274377940011076247357296084256994426917460004436710799523230983418578680564042365800116226185066470275341470061118089987631485809227817488502770208281607685013392999615909978273910115614987405235161711093497212802031004807658936415840391011209505468885767485134940269624247268098615060421587125028704114930494961634047704885053425999094082429715528652904014136107662638814160483917050412928387543530772427704085971730800850883666253182056509101208414265485812254676401828765559388517800708338592426932254814141789554245828243584805714938349071814961358014957457400217207155273387825785798431396022937120614235136246471637337954677094768153188092794496452492118259754144453565005879300636515348665493034198245331764442441358897251065252358876921448919270691199344279154988557772098433052287629952284256593850326751826296954664276755735227628929334429934939050526093320811058001030412904598640360052792554132286047343735204167601987668169538157100033341239282655517854403681658430658718359524300052408494637231962382500564408688027098572586060511933599860547006956632344090363949144643838008124706306441211582618031188305585363697621189367275555185914821405503112772220418879423712308087859737428897023557011727996463640732737154698326351428508284701868532367055438782994865248744138094755126630870314379559337572714771664830863168080929140956826356565517730267808334179039724553702691093470337984348160145230604727246052123098385213345290722960238930704554356458113823296431342324879700102164518623635303659989041362302389861672636306488452655604731052091281197769559173058254310461131620702390712975329273651391099831656875918822452272447832127370899851385940377396539624615399071903827887726838881223960810018189872258956391854112272735952809101799456808888019878630394488735044393246365375063386163740912940009635885924800305919478691768322776561126880609753649874044185310006177112371595444208228991867896599872015957415581384055572599143922828464918184866045042605375956116326774169806573289954499421971189503558049964068185425607581805980328683392652320192383974706731628819240142833652234333612297660947481237936144239743078629497508254078878241004611862476974727921463654656685035052042245528176907671927366927360893715877791275608319219694729722222775135869410931710222311200275780176666950368601699120700132989784895160263977569888141350420610635980017849213339337976938202245792835892035799576839398466430092869734707416629895573575068992046446796642661437893353705962191325564711337395273708193437418668176112704087242606469075405522902404641555402192539131297166088910425647471580191080057367273802563009778015366179283626983805840541925153616734194226185046709444688381558331150990799557500584385068098515781562239056243135478272111705441807529412801374403565294700086616726977098133080690686844936574588343649026613830752226958075479438928750050454683709531893129065676097973224996691448341703759516678590908847511659558943361579295527598876177216147726739252342768502232474322059757324487326980502571651557814809068836169886310450355497344341296561333686285144122728574563638684180573104327954325629362803559649768096302482996714572645792387464197201178863023224123283210216490048811682437572031555890317907765604132370366210534768146659672034764372792891457325125845191637950635425345178087984362814906755392250575477600977412282374716712080184221836817932351093359538403393914684549209656353047789006258102838031283370980965595417467784495100544894117751618226230953349358060373855207525810644908881168690241459443803589817644450231465844274569403202457820868774503386141315830360998006393933831986978727224553599593223345306998639281366198132385066067745781310551001961668560005236282697668218563475122065504371668238601469599975131554921868091231255438535420797357109883257009856442948651694454769686383952542750335439067678637608704587808011583378490665375121790465604542626151272341451204993707359068501890533171906878309555690330756080595369301093421553653235991899180880327191780805813928151740769890949626096102373262844483319421916546622236426454298683843547867587491218060055486915864814725272331337104422884971372696188474984831752612965525770143657853920469182416799903053423120591949976732179447420405212353300438392951103969202823582742662356883019220707859525132001790352101693753827333887344556323195638655121201965194886660010822683569807444172776905588843268216269147858992746526732884568575502493651912964680820465887309846932168876061901091198868697012004388610892320652090360533884734075028651733863940845089251963914478805070625486988681735320720010062710614283812564450079828319340383811871179860501152524510462305074201410857514257521792475099543010647907702374751555688887110495346221781388411563467738920937052527248695650669026561044529904280403884775884935787155032002670041155814395522941082632610118903729478078662501377864795816908381446730169010414018638111499769604792620993967741904176225220349087782017117162615366026515661253322398818507085094353945384396221328741747586046972506579211394387804309038341329388283935540375458545139084438124351033688117443177760349717161510576956505845870804623294448390047229431430542025035116063279034092768970606672099499074718619090429173842485714661204709086880645874574731502520280604232746943435220404740667292265839517595085313925782275492610086956328306079723428858078978941252696457314232977694081265134147774445755926632744009873307681028977177212678500543641232193395691476632694067253592992980267035686559350132852354503877324765337842933199294213044031452399035594654073107999134469484043485723562763415690856291201973378904943542521782505093943541892299621287278291978847542180148561092684875283224210693539900243159148214692153474556678625875752738923418256131691106071326699975861491571070790912829129805380340256810455748343445619073234760940876158506182554334274405222382828204544169783718600072343124546776229536720701903420777755331026899667876235759762027505081749917583003070431594991797293471296854179183277000765889985366911242858310967318243474225518211057594056608252355566085647697147829624661355624279788315626609212034809087317583862237399082157863185334034959406359077660428580004569092098939195515624494398307565950180920543016434391239626129043961185264897755853346664821442775843949054218403233974991525921812376459978590247012555181043359376513828895972464849343095900488408859113424643737452836157691913182691368175782330988086187502328080927254801831544000202860882206309895789685314542926174601464511630418163739008924314582307547919882324861889606351401355029399241560366826257617419829726832980601528138487903220475164299167572933316176817847560976529599206076320640182013258377682505637944760886659547515603718021386160076046958003245486803487620835331127311310498734588582313542971103460271779613596664553037694734796676272919095563093100481818052784115564021207729545207041608685800874218388069615427469826397632301172919702436909278875506242252004756360023395569740582048747554206447876628343136095210820497810554047300176999038207437139964318463139631706442956547993885781714523800494153626953509306013683354271449780185119366361299115220817374713500057404180987175257457924455134424900906825444098157158653620146273221429737606472532930401290019308163605652398071470775504431876544043682320676245768125209288052397586410606314766862513391385351211639023132261969710574693363313172265836233859408582677509443612150591377606364972221656889535208547177536564193322346806667435673385244589771449624158707538434038554189651227855613079879533503412700657235408335779577431108570598597292036937580982319302056864074419863845964137944446832600659006288907594246486963292663380757566540822941679661723281375437244135768625255798844495218382470461891916805495525047954056483755272331092399759813418374798628109078335678642525634125438724761280104389064043123136777705509733429963581393135430516458287020140352301121059560075279978323542984791309336426858186928440745482142788613728075182315395186507572525454089104136714019744360864694991284598007316093615087303436382237534042734318163217873582258738941281956432025496038308631234266746918998053036875318115114328330372772743167013631683533502282903642751248500277690868854397408058802242344753722916349643295450707792914766115382554596190520519141141046692375802342279695350819003629973967625970705670730464699377773367671412126528679551476550250578426529235100904106303691223226582696838926981745748141388380518694065295417740467348210823055057945372113857388546887873639118415109918742264121827859610061042094208436389942756841444811239429262982849859357526474001122046815805360903533364623955362085060047337441139748503533230799228192125184476595519074414406842430704026286503298266227921682763685395437235005793368784473114895349228483247996990215937511566603694663453895975915535266405725313812185855108721762547409537622128629973818398736236414675727305605541661688344774667518841886060875160036615941955577857035573308714441099927482215919135631538166095346563390357325498156318047081660184064958463094876809501232325227720297522160504728183575215554035616420871406392618970576535022438945438779814021768498393308426037155203441364056401327307589147657699403690018334575381609559920796244962363959587422952864401115551382199619018630286860668364336142683630177661572165805800693787648389962670945109142917141704213412072987957433672710317594741073110138692764360334824404305074186095871861900277938985700197687090530090815507156526182867033983308648287864195779254828430758800685166239153563544053749147412952362354533349163698547225483189718051940372420609431949049548085645172770688058382623349988624272176650633575486868405224695623413130394558199165001905437135503486571676449494189139344095456135668060192114641193396493462091534440631712226452724729069377062116978039363055162285495051368639843051829997620884661695151856965099664693002055371291499401018089903220545111859830940528122947654335791415053178792878856484684928338885993727395242558685734676734677907078992838907757584653334175904621352436527543564068544373355591901577586225229008082181339829706525234080608470748777166455246863457224248562174343933295122624807831256734375432947258998772530082595141765507948623420111474583089951563589184921233869749184067730381733356826598540035014961983827289330300982253236447462091463851444552005560495807086350378672723853368389491285620839295901163973787298560420513975044740412330802628808803358027216911764084354849441300684723286283121824003934096952567463579010284590540771488619355281184337460984577469129161060116539666253035973348127175487809635343235372988039564330534223811399676381528330607683304658048356200763854248184434823361749424017044740828516582790054356390884511280604671602373477578512410539705117832252902150273686967235010682015934698595178822689160345523467365807636626714169203549416103437346179643370427374070574887122577829130292629151381182032674279639870486504057696739362215480040348441696449878049568603651651795844776124473562305140916874969292808465413081010716412998631506317404617175735176032716686463775503779625582211941546152440781263825498368968920538400874875727285924044478977662795242877977970198039315283557699570628796660220124069762832623293087295658420020812508260780106030615590554879602231757687053927799041862503117530643071876819015926527828345131287521967733964971912892541767500286798061212126591910403399309784733144926724699355167567652235744774182812120023555346231366862259522508943616588675462838094387031018761499601812233094638930645088201161443592459546976496240471428983952004976229699741267641272330184256645857517283323542615925189534158739580580222730466055955046290592396936084642703371611401376161226355799576670164537543172876213547257582061918154664183343604254446674476117461566386651793987530364734348563159714318187308126852153969549068211597867070305860408968995738850982424191934835944664604598882232865320319124391870026170066988881287638143618787908013832202896310755086515477230454048777943582904456605794577556917165025629862884388647856145268166012635107365766715862379955526437301031918016089120823600773183954548212697419136175993258622023687446975479916808006059080646674422052656559541942031266915400640939708242009126739641489540885018898177153591476773372161080893944947997922622194558905503249609893030894876121605099161519943148874876031743191382620612589154548140544206475390653286932224223214324783703094804124443315465502511923039642121805340261251101660814937917458252133799829499460159732421982001585488291598594492327664640914254473701344732976233385611194138571793650719929056762905046785391237962239919922086511322633701725811475394163724450270568183223675778999841095282975941580674115122874822412928417277402100050673595911433833754683933443183727673733543683074103675756363941355100110945414874114748830503442556747982847183588984342681882878463859469139366108730742123028148558472303120511998777878647400563876009087779284468358097454117129929601577456693578403173738518960201134677009348370649223960370822670644943665941401204821946578314124968386004102235016071268835428125383853948874216500881097451107115652632768606427535049273436360398507448675279934607338673742959993399043094822351951369268733915902150519899544532504478966988048019200733610343933656216438482227636716923658730532023046288232526073813905001852447845279376746390103261036407842007852963849613383911759653666807726646904744004934135217742799585558773234434515491082640401998111522758033875009358304989385974139370088994029850725587591307988262126153375085490759638154022497850731931171339689580999556460094739882915671559207989210447410650007282964094372635113146466034596932362542301113279210412230126692980300542845573808197558102272662312786428395110412616352383936597450213831337082960905951901340886866062191260683706137770214996371353543836949981889356722850393129899327692392938787442779954986674983933801424666732708548948477051584756554612230778988900676693500786738701366325893759500101467578399460063143634700017288714267713734419732586700556116703766922049298302325075106721234918526726419898747697484393350944198116594942469573892420528361266348347428928889848458311745482809390667429255657841491438430087246427708556455239615215462989778395599229962916630441772813499747368086169865441497464180258423035360920060516010301133088975784823721405644248881424682347032518292706131176610457376396574532743177406208587491095197585240133012061745788372296406343542458555535455406264452335053538520941664594520923245875500848026843020679730650949306484189061559102853810186529884953615900022295203876256967945389122481862760288780554039252795033096406707280051476591356828602860920035499944769148417570580127208060979975559643257090232542721941807532728969115562143014767807169073816005606013168534600291844854386753828748207514476341130488668911823821363726834809759967332600701775596201926095252274182747111828699682698239612548357003078429253797531128442687485570209918123293861607450680701513608774799179869619451180733816780394697450404525696560276444807339897175994078055252139502763569391178947763068423515143911076345134229927581547969572359096049516774794724953201698470540751343184893631607092502349754382798839931983687859765952589619180678474573745890949289868651190564873953353698227359125118462395810298541569109158617603659109203807298661832713998943239940551465022779235493828591887728194209699762025119465201240802901128990770169462040371531492915999708749781421274614108379669797043742397938301199900983579456203443022837256788718112998339880014285492441840770266103004072773764589273519605961581730967897627961036054187135984811730744570619311214696554917978745867126907901396340072786865074511557286763692447284421409603139680910360759258111299768280971669866819426454853928576778813213490503844891529027280926882077875944924066358346397144880771572612269296591359528372083562780360497954019562764012635874096022943576774236140324362813625714351118658806437186333052852672711030660370166079932665410859411357265480708821756735670392170115031045060598538217778515713835067708113282057102829813556874677635465961878103439367413170572599841090941569939050593203115839418741312128438857437155724997182526525767677116444847171524920831057341970072871176684911648952794169321392679062347903869438093379805248701229983597002713933204710939245321781107670036481712410014886022618028317706029958387943085443250719766670214647658848213868401366228669288022112200553867845124487613860396337657475173320271768530035829418502770126718546893002365007900103111500763858022534236024644705380966997578211643850683166261758501497655411501644447258850664853560947925442196095840368221701922674532503965899128424174400813619753932128781368402324313647166446800761245053642007306204300827438008630022621286621347169656347443725242863211414873269303991807505274344544559735207392484346197145954672520360705546838804653878521298382587953436942627136851679522304006723277325482608452589752660254739964622426222321124202291356525181803569422879883296680089017601383882600136238894865475386462512323888376368870125141009646840048607426749172226464783439820698177248152590060530181217942858602445210855458289015713550056183887358164053836576182961266374826532340521598712083661521207936699951493192576224683222675340641968801948647758114030966926436455055932271301243538364357014702113415384816825901384939160372020223712865401520640159035047706970889047609812115314664540295942179718094302954025046834036257069421311572532919031247566099060076887417828640724892355946190595925409334865508158561923824704105136498405651599647935011520367948415334958727616106669436626868753196679986044504781700293649454871756857367894795651974905939864964883195332490375259953655778957846491435116844393634827594556055296752679566071931099486635688814185973094390430342197257159908842348939864379925126916390424816544919442214170826914826900891001874211480472133063482807379196282286535212691320724765045473867931501575615947481245152113118768685201894300587969055459874511365289687128876814502351603886336402733104003386881403100498592980345731342136987493222327266252956693016233126399233644021937869360436581717381040324548264909911522922820741140978028570365157691998967747879152962236682771753888800721048799272214875796408906146762984579986113464351242978049998750878864648315179949230440420387939735543745266868073238312309789772681201724335225508616114503719877560596554600708755095289853579778400438280707015638746874783377515804146026287521986163456328948247575550632157838784253242704888561572058934788805343713287037801361366827936150867087114095826194255746905942859206733830180846643406301780081483362120248296224045633053985977658916256360469813633404832978159640919505588132844196746393957374920251607141007460533262943999171820536061606100054651336181168371101199777090359699780048765298375275671167778597399640463943776494295792044775131561929923764233330460241282725428976515432007912868781557123518897964300489274026460603422625604218904065948139942736671972042859279180458106768360897462917201295042710698015224150815440055683950796702544947347737183704011425553088525306647138855706334763574181868505714919355927730081014848254701595967339138111535153245959292497027816996319367074360273159026097142610450082591564867768290622866685602194134010010272168546859243442185751001579307597931652589390436713617405995530678034040454264973503003903109499233589546110352496084168448410700055537031144611995365935298115732055915268144839261548785407137406555194930839854165719556656897987472713028407910443848419323466189336608820187416348327263445448943452937267872210291322330573387336331970468193269321475927641335250084607534816205761657119772647789448808570845112945312728696101889475567678817144410150558469064145445836696429610960846196428852963542884318546167911886223743756311516606158714029155109468056490089726899630185942209270921809790427237438779182486591020932748576988943524451000394175925243829129462879594593353939277438374963374001817557038253754285412867660125774825938198720506793936499569402412755510754739367988548437050827100329826053529053931530482151431924795632590589984921947709592017555662618334729868697930110065296173090645815267582496930328715709082810925272156453297963856711028961679640281488214803601826294730912532772877061214706023154592569361827230129519616622554859449461535437407803209385302456996044176260323327355387416599438038955603229940181151464953504067416789546683300767169925578648130742464850759193012950596052764253804163985148576586420930605752365169341244610572403493671150382744178580081282167487223910921293651165756490072836098233020101170055467436146315744193333663470782327798040102683346858433538710420246976129799570569694673463950054074198046011137795704548568160315970236470438262586340444467383597737746068545747844388384682576264493675631683831194852423491934876436374690781423203021599680486291521460436609089841132581420746415342606243485906746112460518230155505902617465021373740080501465826566045582566938934082391868160964936636685286745141760394602844880715025286137843647306397410241540183159053779808260715836799761658903787869651043361853451328459564553086296354594917530312778968896235030215499522098978683299006228864500368591031015000436775189898203284078201851192775973679909879419426094454058047956831003306377856797455548140147034232652192776995849853220532422662500212853415802482949728819376090700058841719052061433358861476447121116014121185746128564487663039614303570301486211918254971145071391481690951600327362068210370698860459122303927467779785681172310191686909621051224919886007175482212523988418518511004770832224699778695246455994947325172360009459730384324132163867988777452323327092517310080603171941644416571805603102460591801138953622582619720843433876007404009100333336313660880254556939982748111980260147451179903063413267619750116236581967630357251074942538059011761966821006892958906717155446377417626930623017382798148926984478028490530707410763452275065506368762308061033661852681367563350613708937137561827370593176019267653313019947828188282354648066159935882392457533242953800607877523278134967883218522208135937698832101601589492979081679541289659513894108823241282747947101980751886701888239380263178492519060962986726105398284650338215199813777254822925474977595209222973635306987910402263528026061147612084494098772298606463697675275372718744463268128838014569330348971230270682885646436200983178832970208675235431253187541756774765512112678748173114336018396269743969027104862123351088235313606266998319880682253074186473517241351556761499347534842412406227120754833297026231880882155980814982630196914907495865614098621677452033658258474914966845173397765565847463827787458185516499287024493331931573193633628981554023511945876434057836999049492903799617841554024221487221358339715718910149716362515705914132873460793467592710802362913598895790972341614402347738044772743937443253623318116987270203591282781878814988350644689516110480686782499880088474136939088695368374435602803452336863600319222840397819202874827629369718674233967146353224371157003613940197522420464562219619212638787716417075691220533737239187467594582122971791099426667926387759755987648450979066862987941232196508614106702974345163050210651727616651675407135249270806381127504908636333650178951709887090971424937255555388776984628726500116614366444364238660584748535388457369564769245538678290019338209917240249230162763523862235388241855454244785564810001954029788567981825657402040094026616404482277892959526541026034714175894062406309342077069426387111884964685102775253655776653083695976728507177035551866699014861977723217420970437668552810273704758164041957905417164965078696460378785065478660055593138645297128705653790110145463199752326039129581170987825468317393864072276691986595642258795999358353798392202285159631332048371494263483785006363413326450575835360486942263351117537999696573789133502187604254994170380580935458495109456680658691273362341835496114459450759895398916685273479888963360286576375594306605132102107531479096299469547391675893264578899028816916413879593341658758660529608442331387553767719412664040691615297719989274152631527114167816992593507667113132378976053214624549765119632355780674328832880395704487302512506668839092137966307945189971860090850786409125969470409420706718719607710260705013793789344321469370821873423578650246106104126547227456137905967727181089797465001653861023157938127529152085627527275332427318238211644762173082493170320976871087539058147857623870919374904661281021076240590250789741269367578854704019074621414159885569686477230961090419364555746396978205031095087066599815137033443764689109879663283781429912925611142295401013063308854145721329814107772314761962230439857787543694985357935837384773256994152578979260904696251952122018888650390980184006301413505815521069552964675464759727953843663015591108574480077492007844387137331552424190946564382521501989848204118290435922625369164523348844739551369323672534332418054224855381410513911882027479844949761385310316999369283404015725270564819522871796852432192083877826955739464110704734258957907134314401970647379519285138830288362110358607918220001095347454523138073697659975746223143104585344719183283820849408139362878341497295785273205614816486627734581651799935859140235406592489477837271638429068667818991260621775071201855124015307664682399987536800228853316762876199763414037637570589837363896749397114593229749114410511511437967335650961012935678882094443885879442913899818078031396093728968694433394036911267901951335626241320721251658434465407244137571433429482534232543590835987664697625499385393433842374920764722508310557770173052408619100874846920389767612548462786733106909174557500002493555982419477002736188245983254714528000308918007596302923902803050424357439665161566095828615606725658690370690878377288847853407102192794121880918956689948253864923554474526344121507383151225814975277808563786747679657165849320131575260733585431464181674303388660933440082978086830586147483723158555687996630965744803314975397835296373408557206752828419427822629099817215317552501924550370248698824462392338549988008635038074588464819485374835644299126373882345075085641687152880573073972228318577674343678065376959524025242871879172701870918804250337320465936495033386964794749257171151275302827588339914059457295816548633285782842276632975297480949340188728188338548775982788948247360682318359342855665240870238881970155820637343530767887521872187458735355107764938139085704795100698521779311014670981815862304733544374525697252852157057330369282176194053809686270948761701731735764327455443966133484009803120015172885300991749830894648097954827586990512867037420680479360011059156038638887954420864700804855190224518807985992437262503059851563211409406827137411724033348184304452811252414590758428510330641410692636013226642968691581779626385834657979707312004522084594027346805701745806330497140021855789980067220511646974113624706191675381015172616967097000184954802438661273082594174158545794788979660116076323872980363042069396636451375168368584493998908677620540454784630688543700790307467188483888107571358343206469645411255353394391450754655471031521416428831939315412685291159254286059582292981593157040639415607151780146168814132799111660663067280949056451508643402594716159890108324573769450565236206622904619421479179173670106955366086805865039630973251658284696819743941915719829214757169353020726953230133037015467630671242887064590322511395182204017378368705813788410625674272808834593456386934176716202984111130439160855612500147637348217372897257594188209129384912268045716301808319040938916040672608036227411660628111023775858565536851642949367334384586856915702260502435964749007531882861456487247812109062292643555322161401480696320847053175960346935057798577186870963243747806545200815204179620431040738799780431448655289111694126887170242107150966431105524016466430138529253142586801580971533411501179605890240729315423032084722236482368811839587571632342055030455293717807129830332639288035157894790498601972884271524131284801503644967876234618054522468169431063916601490874817174291372387066454933844636781447009339327217247145234816723712199337055808778901730505499492211776353220682682455002989580361741349122886927060197408631071650517973710879177589339120690922498128029087523332169187998653213167502130647121981597316708600047448532481205820296272522367127685583766087881789877048852412618003096152303397694317639796105598900459657992445723718068663444538505079147695941470694753723105341132344110460372771490065574192666080816363991112052992434568350208463878732770813519099835632188198016294313245563978393123062575488182368824508789510655782991570565510561247304361043543301252927819475870554858510455913530480029989798520367848078912077808053592371953291894464008407240935011613052947732285812362325057432131199285937129697296135088128960676234617057267157101870530191636659244087486056438081178200167383477130337346258613226918322965029062204653261231497435085277374710317271619709395000864429318365950789360563395135282575364869338421396632208581270695433802907878808682937905683140131552543782151826569312467451432933935305551941516793720562609682024754834414149029363085741568280687516769561288247310495497683011318303137585786784276795445858897753585371470813316239028530762371798964920110244379642572690652699715668805930376031412487864764806157717304257293603075772276606662531022748410308269248518342248734454180612284658934530869028603353895726596854935810270614753265053347966007371434539312668724830087905975350308793475330647423586104739865314666913363833369030087370446264960994345628571242771790229871692134824859228141435461852360049222671919317475247840816617415134824660166319511701965370198605031533639545008132270180158387303985273189370611475780350174285862425603698423694434106235179981934025146659258097807079171051662911425841452241586084762560381911617929418791117780477986917297819758493286776011385189945853900373456468392005439582561931287065640853251885168720709007195629364516076734882678890800565140208653387685649858334498065652984996885769163112229047681653412635650394276675792986044315458406677741013528443160065180267115838689990107966984306759991502846029755901689001473549197136504093124870697700566349171505426599171234013473144633733005671764052029458624539176244829839951138504843909784430108235098964719077040229599075725758871543695636239346110120307170848618896387698926299887457473213406021505059502039039265172599108047075919816353174693230559928053264793183248505228899438746261069408220150450053541254116829527844515797766631888443187399418931699475035543799917940612310284364111771783128912489727692755039559722557352237036849720583602899797575071353065340248583043468013476131323365276106309731459476780298925878505672836365503298979498383475241690093650908643163862905113678542190938924205117059058116414538324481192858628630942159493219983570339755639716127111159664940064437333830543542200074023697469473537213877048540247262950883796304372519671396101852850231943520801986975422361282741104804141860423207516362797433405123236970455094289708141134967289703083075779758468053565861682151837546314165390213146948075849494449740174302487484557959969426338397987064110458533430863855451453600505547950550274715855785525517631258205833187083474492597200018777601735656839541294583625125011082263754635223027410201143179477489142262245656889889544904987734492075875558495465207242022468888329560769955628919401037332014252623330949185931726476442286086725683028684338847858188856159720249407159337886191617275559951362355775390939086232607814657819546400700295223929534740662525438499586791801560657055716516239844047600868274896160287366709913671274727990725005735933053623400943314675151065446695156313227250309230733822821359204722721146091095089992991447103309465277728964762185714490563706213891404169715148659051438673505888432246401353333005772072701144442794182814734778297177729610047930777390966594990779916369566763679949687866954884242393801837236389759896013394273338231861363204474387331728918521935984388083296882071037305350683823535444096485268497477280436635886006100096113698929851772691829302552754920765197556850355808819634998605708628415106884979189284863805221573060336797355249152294396885647272805271728868599146609001066166076063685258812297345575393054634723505240362273455200257694589282475583745188157518819690745244698356822297898304892589659773609982977353002136240040789230410098738899771571679125494993708968477242174526431434693792319398328442437982667082070526359872506535150526490749884969168011210187974591956385299540050799515088450420310558428130933881407454758713444168644101696863576409980077777576498061371863636643224136036198053188089391770436971603156967517992029226288690568363244050478484879002086677833620931270791654555394177668895969798103323144093910138801835905841822293406435644521529093301508486236275374952715512467811284999263674747758974870449606727773258337526043672051509451402995777990407285923094550599709678350168364297799611561313935416499172796237603978717781943779893792462400995283572112878041919022680626565983908667924769792379235642913466594584352838311358136734576990104697915908703495787778899476666041347560971592348741850053356822388195400848286975498175778543310617062030369625829322086951201500750424543197844167357676592454850898858498637325629813749644881151131619411918746206467889639520350731277973741122008750360461975138013669766185107759795570504025324697851197835612816633196498044622400294370395513057652140641690893289540124778390661871659108989643022204831833949418211345672763067623404835875682382474471123603540545652771753860848780974767100388950687235108526586628918954966089457973613883848300822632273450311916147882587606815734350111184236778208483246045038117323629223642930569099271458531719690406717475125528235582220723417550438230906635228403367811432307617404236772423082388625441798981973080558349831819606819943124161077028538897043802928243650799193062010147282854053375991362483471428099401385648717502673379485080074611277057971339513873830248268510793403853913054040524819693064236560597051272229207910473459901480466942483008329366910688403770096804900557813791865946473160093657983180127691354350916757619017933416362580754459443848647954067102771542122128087002598682207896530254700708136116782477994827227048468843511613603337623772707996058484730863710202239067715570406198665474288930028907485503078202887660763443115603938122019720301740048360008080751054986692796924759650252669442810382591603037278124783869219111827519794982971663189691572071202946567115758082955708390385995016964664532403661661684572846725000101648264666460407154255425672662103106998763157694833140906050916422818213294647860840269753358481247010732102325433229921039421965855786804665827554366202073998145371150902520436842199187197451293351292167496017578308680569597027134132953661182425462407426174354506015086641561761865094211221323784628032704200776723245453262636690229922657193171537137985713119539644182422154223307183009850304565486301390832936083730754032276025271039733399042038824248321192773877618304681857604326766181039286281577484490789696334002967340214504091907163679319731416308992521502300977312618778343407080505817253002817380104792073475413400189181789808799380487667830865543750882590338260527098225501543897647833442488879384484704943049066283917930192810078089888544168605545413927853044938489173007484602440699448928378972074179033481422459566260046910181335820982534911958304425449257954882768319438643916884873759755516135014238145610458595882062072468847523747771743786546171616939417359202862163762986028480483947654775158918634607305621979863750966255049240740931803991307298882173238448279899685012565893252534306264630716666919856553996016376561664942100350318229901868364063601691970732001692291488946365645068448838870965704431054617792126649523315624169699281293264410390542522356238526111357564213127494645368534406825867214251166283138914602600961280901284822640187537857906908640735122123592538237152543961090990443691578355297016084376581322085870408114485099881901222379454072934989987701660729228933205047595179129527494496545126279975776308532745437323376802797016737758215683708855071247207978913985307613283236398218255720778870216566048428188062739188989535287172597255963382484371973312959999988653069550395439694547159956168765752415036701837923390188052554695955845288322086175489085808003859520610977955650568244044349641348931749077752158512253933930849593923689611376322847818524041458055189534409780979720902549361733590873136953735660662066207803498714771632239364167471245825388732345704580411629551906814906407989347864788065219413555358340024734288968629071563617077009197320878082733522713521850801471930794651440677555760292385134446073120081513663173429907147926208013863675004660432164458274483691471154133830820517130067569319429162837294709694156585286578399403585847695187682050176157681247035773435502383652497535354278629892488050169421721435651914145487214860820011552807304793302913534197229848781789302062057814405336529358977206321239652876062572671372968076102039733957982015411463046490320063457688352094889878095070532572732350782481014645505445358150338544389636884409481566163430759451769991912041605588111115109318193424407442745541626036317794231220333343237541870732298377627505074845400986932637273625620271855187616909253875158479190015022739916482601019270354941853454301086636731976955130132520796444005467734230179454959912657593391775096845650359788610770046697797731081119464553127855674760458456691579094881524292429642736408583154436908962525794795893362143916191120791455241562032785008471967990506934822427674969057122963538979444527686185664824935998518394926213091069509654503382081796702987706261667204252734099115101726473846178683308192000162552175842116697428778859712730265305131132428768830821216864062001461026893388683925190433956501789392712853030187262463833086254042924077737214752912846455138170795397588772680746539789524122087992861771804865699683057272883630112699528259436020119398320626519648661115468827053378612520684786783259494684956620125187186291944090102708646134842005878008357121537042669203773298816606917086369817143439743849844384649517639843062187068312395863411371523480564501894246426694546572744861774242318481594438743466568800953328042164933656376938528976578977942628854745764348823144285080898865447398691800198577272195082333411247812856360951273607164399238693851783928459875950172560113237972531523579611354936745665578534984017119124750752940382324038910052056907222836588975183521582152510501346302620171450709397577635346804311400485268049138607851403449528604529374700056258227756314918459166529962351968248978907485458766698554599344537667644362921509811924917421603557586045262742520699122106546683527475838993041352569210557097682824046876008590622582150486043438019497564369038157194284554266926671374511845802079758184449000523016712633143206151432099592642878905330711902452599442134039362864354936923731456799282546066670080854134737053255380875760461473327173567960794484047833603034372089341883562190360068041488868832449460867277861230709160447974620168140287601118257172939414881350027297919070953976714247393837888890419182028116508930044368143740970929689395398240388967802799874081841652846069433265541590757162167584572757391463993851263346006792009124850057183323705702073712131892111060508810571223659841570995566907376381754758064390680809475929968682713882641214302718896307868619644432122627843920204973399742109996133528315731593559814017316352505227789390496072508729811763078074894360896297182775044941845590074251079318322722703601895558047340637181915129516247303128548671895722815680473331395344343910871050067779343544253370159380046334762787215078209590024210422282839466475117319527651865206390191936813711868894985471112298219068089495239611665303468526787657587482358074662954969425674806248164925819084132822719812064765485795715963066140268141764262580792972162627225598248631333707661504107616419451317208790640311621755889514402509898257838200249484985308585407526482316910363821733032114218043082755031330627881400165410390513343761220501197395544331760491314165564084381811450003928501284651016773969803284098169828816090179795815460534643204745966911485597542534995509941794942903997015563557593355153702192248169486085720254409743167673292091681636917598292197713363520999632685578646329463187558257920204526297572930188682092091427960957048248898631885361573873571590301766214718137016414843224622394562435609643868182982646582348696726771774609841217179979015051948142510143503017227664569665661562677836858187900627971343287022208581240858010778223797062544713998257836760667921853212509560103986355387650793879021721492486768385686818229438672018481689864244379748451669845374525628295025450895139748235217755466449354335847255403347328184817168409632675465361323153309439978283744295515171347826203997896202547395644549981850630380023856892167386399591321144345375558586834390291687475366851039756854413954702164705296681806123614998207513101897231161482977342721619503938119224988061849019463832620672675405179980450956941740164716141786672614439258388711888403795387117010297989134781049147600657102322014311071835842362184545225722471601385430229504007845780242973826882722288503845557434533754999727199430631898007824072727136361761971816575512555001108398295449720388001993323279847859912969965386821146953988699086089573728765723427408132101357448748381195221130686602295815817770100881167737141955493185901971824622500624391699349411661025760617606563937804886137943374479891598587679123218853431684081323692544265160911730216735074407218449604348727915860306407774957026523783842885056624559130730326405568468724644863423884393234621192275941575585393064896270411245165512394720286200049316826533489309793405440953143417772882986927032683758342879951359392544911444208612051566461610520930218788879434438217541703071639320389774363027280511725959460982280458359845160043871579134224580850218692613749814758964489014347742976307598251687276367549216406959837077950678540346619129479464166687378409923832104726580454528017322541262835764762023422334586722545748478217131797319239378339967230156047087844511207921097857227737063621121970244114710728072013149625347850627461303016890922125418449188497790588768963332919582381536524257599836444630011471438935536685187247355038214156007867879110034623196226483087304564205782004907761179540270276477357618859912306816959571992447163774311851271866390518574693605813455585552635864077688265208238063159906099514025284699314658626801966093282823126717938874598220538982498997346884553976941489984863049985937747181520857491101185184511261659449769211772546715581614233833190027271088278838859230996957538276779567903922289207319619828375442585142060265740591384650786950231422161205289178866325512265347821873515138009690840806582872187836034028196882961517845974600395580327608559750461408635940579815250834576098319790584713496922281866488004325716485011780561526262724246238337373355164194589139278571627534467393987094968588127874380454562812056607494343160541816049435792018117638303530575979988528000416999698525940605006765954927245709249151242432620634396107205360755360675108968433865975395901301780238473138610747293277381051598018807311863297214810521809951052286913595415976934438620818270253994363539186716983509875426020163243424237287559551396070478115728359097444497688571513841813717603407752764974711334812459241538442484941628898101336986426339079928667921151268645614995329171224099481074974343392685594897108745948995372478727834924676009520349921003517103124722531056514380944146843302850399409914159452494325789285737630129778082042281529267545909283867798350484797696313406944810369588990295390278874822195119038514105465697700144512604947668224077651944975283462451378281532628368777443541098941600781533330333383231570061391808004463170472738856982773560047116335583195608187029021579982613553183523573554724554250327355752602994227083636749126899989731371597409243541886434340597192931634960049722548429315684907132100322079132741833852426294137462137170683115388561251925234467981883013441133074639806786054039645224086889677917291947005228754630019389098853456568701362152374908605566622546863373198277115991230130027947975767734161846597188978848884206607405819850312016843471073929614221826774539039298774154751359601401577019356243637163569700023031935572041613346858204076173079477932304137543293976171145704522058326122837081562305938139474378785788404700486773901136838205307568080209407634055781242714928490338194118775479510115569545643988316977273566429232866881646971070984983700124349819410585169028948502874893797869351323101746399527182104535547265418635581192343451634514159321265176836001029558470722654513188144955461962156962900864189609079073382765054557817177828957094268461399653548825551446118777846550943721754096874299152304489013951854381148252635800850708637007068008694181151599301603510187858599352747418593800379310188734492697458501498549918606292775982363397138982643600297753762242876804930714947165898966219379582349951021138277034592258046430787672678459499340387218001084201576680644208090897587832833930683836393524172233816539116153465939896469464701670833047325364975070142790937937034091162718091784392374897685794143389873211899810201489575120708336529716878967736818704896369186758879322863680442736246747715574794976971878325861106928353769395744835965393415803907518409232993705395625061819242005648430038514066555475374271279998972559342852610742188067270834673056222949839405688252551101818368130179904662434937907603390589019857929711047029081891231185827908882532465304545157242168568827806832382634745665047626337502816764407517853490521794811216973731948198750592266209906142092918723885285103730791371519381234526936707027291033859801619828963715930272721446965613205758136328338761314765087352961164641346854860781506640362399900692809434143906288771445316089379906288684332908984981620901910096051543753810866059507724963774563101023609786900833244267117076475629438350346455049867848682798281095489638447993440047989328995898159014033289280048078776463611706909104880891950750544944393704294286655683475531218099628521597693325641929906485947875125423355423929794839698995493042084386086306316907570003716504887507973488578501372234714659703055619310818479655470138333020738900200058381801823218411418143207725560581560040003543562860116237671986962525661867910073362121329577629457952968052528655461907967918096544983396275897954311965447145572320521198194129293878835450742217608311701874859499251362737609244882738100582169536726187968373407266189066973197919823835733729837170838296176783238077616168792639574345398452427348235574046742713429605704920309157682498412176280196866173414240365762569996006058432957121882327702837315788383550638238005637719546763235897437255022642900573758970005288609003255005803414188180787788750737697961068829396908032253178484120864691649726342366012476353853921696546184821252061545451488798065694497720733411665706844646764443293060775071817855833436512043246957942750456651042635670346474089101465812667806491874273315787755142505029582966671776667864131967052973406852617426175016559423084466790699249910335618758539139502865609911057546712176500957993366268867908739787868937875673568262395233098130162351156242566654205439523896124737202642917177383202423663376061333081739716044515988970828294401263706838359102292319481157744002298735493330229965681661662611014645683331808855009327921952291660340094842017922271015456880521309082135731828728350412109987056269209976943792995793551293145630708184894633913753690970369247245871914574210382701598231224480677099949804319119831434291515625857638028790588680578318163030719703922637496436394741859280329972221524200029908565344519652276550756131866996950744787468933877290055360336157319434360451321111247430869661345276629934777922006208876185413784387723974993403309376291859580551135019395129023178677112100190353600856849007324501298663951389152789821700245089511824806225612762865407201327692199474432398553295181971089576700460490306509976278085412187417393129453434236324867687991355822045063182043942665142934187035503598811435309389140316173383890565769757663492857554391167242144860084158777728628198873613013194816853653899481800626857998863332760725111167644729817721455349772099776236191140902519130185464475984447363846378526081805093693317857335752528915953584280052674247794689650249021282130968916929201372005234233296822808760584874405660405766331442811328845123723547285148340863472652385971146060631201953751413805125251953722128142973795632738337497802737560320979484589354584107804558863675712197040771136653935700541470217028922248196235249814704733674084318850038268135854654000252211532780261022172094024467595884846914945449507285458986364882211589971747700281176706377448531898381770406168738866072794933394903110049114434095940325119982234392466265544739548084248983888572581420387513308823613722041435619074691656471038526941451676843554732330985675407110603107311576962712061811728783304362452732493408836549211664678132735105950693315676095608698952913034462604385027617582355344515347207527990203684504224551352739028330823534611402483552255235405129957386526248085971033432872734137125144950645328557884926181065222145035401255276188041758274092743199096801401773921229202586192222158724542627560226944087780102817823545711952440234908695748865038256753078520961658875885412466544225367404206909639216699407995840926895272696882564675225230805801166305033591123516714184671820032588824726785483882245391978077944362120959812729145919968755883537049272452861220232579901354053043480134715390529983729617155780693270879741989172855243807301947262514473477128871094948824211187567746211180729138453956448964245642659950697843486510003142990169071718315699575228614170255890094159299031849222881688865827688122177275003274487782510958174927369965268862241736947739737268937426794932565105819774524507660026596018658641594617309923780773900346774483096242758068210023283360949329446050509649290369343145403895492105628039612751555782100445942792570412824018337269701570326304562254614796599375062251618689207379327001669732140540451805576943046158081133478189896609132358213814467656208584958666027490700806764070884209920115873209399216202870412784996328135273190705158369090018027912706297357048335334992555007904431565991268335497148855734059437071055736450302317447912697210146010090794546193408120729688489224687004471387073338601587003355738401749020380302613293376612668420726525898375773695253631112386286765309004737940832414301780580017300883322053934521327429085722609834246533608367720647917065018742183952202860666414432969492094669121671202475370659490970300497324470767502006916351181352009326734542074013871489074443079247292963643232410580718434027102384077740827661225060034798337844539575039218737742190539457178995738130154977971973261234976192755009918757345938102626933872134660483147729398522266266229502770553351781889368324283340927637880901892370539484200206018671300887588910580809385506844131992548691237172388143934681446359659085770087261826530862624808192291687931528671982438680458487216120779193776827298943720244864191251186720899847653452868671146479567812832921718313504299497372682299103691805490061734624936977574007383376684009259017406201939551207362805881855909344424131515348111490004001092311850408075074561019312508200772111940342542041182867862533787534922634498508707495569313517307869352239096257780096968511445409608592161348605081709155348842739284641022802734667844547140004148364721570378280538102007311753639523946312677045258618407877393831620281024594666043815615699980555884704202978156087790264647093391883231085029417185358196568309790511737116538788239656828994062628121907525403948513428901461978974429246167212164698703770623841004546746809930339280663808861043466415529146915160243936644186098056641200102437746979099147123034029204745796625747391452031678880093999822662850274956727374220121789118916310447929687740787791124542361599780822101278264906981157487901301226059542352022287354416261320807691493688244114608804892015366896972842241643838439919287976218151773263427760870468550040389421435511194072837645362887256508907101768760104686920542312366863129738513200273297138125393331839250061922152923599309422742700461973802554722632684711397670319155459579832821431775829983972524884950628304997933807852951289482807655387413261270861331245854826266468866570135713212012197539004852390587688188418986132293940397715103672678385069151560025141460549304559836391425005684372657274761342713689855234322231368941623265195863920456787959711766216823374090416085029606313931814857724284250009572884365678951334016706976590881644381986522246406897922216796027477795720595084606151856284757525906238994993528556876846310428108757444626177503895988979675661359270479644135035769085685354593805832610223644957870426059887326086008749919267678821662598102309009848736630748466531762213120852072059092201584959510737251370327773563253715536075680812977349599823802965808285216347886649198239010957683047022267550361989683224439346269631979191213487975624548659251404573527027875531357677788896714908394209458098271185274256190337788558166046646142779382001793841139520334039098100021941050786506977406588782871779630446474151862304005356417400013815646954965143954106720956724956231373540556083300150302890888284980873195741413515265753729821549079828773146312700495506832033179973516702237748130806309981234119976037268914987567513542180673514441922586941405843794287594164487208926049559522170992823115481715389053840121191756443229933788540571839236884022762342625089925297679745674407539236269685416004543435565137107375582383919429621554748618415937831167804487339430391502178187945987706670717978264689180206301934830523815848869406480928860871466344645722588658914449995133053030783552181171821383930417564218668089893116463815200779136141437264686561318476594168764945293055906139051796008936715730992555690867396546382815741279090965945241831713751363452894371503155028660763068570840185313568951353538162212573032366514553214263852468670895451855897234900569881715348898060523073725990041739879949183662687560313689209836519401016894421686168800500445170912880888835206001351210687850758212956483833281830032161687770136735211170535603944201687337813353804516231026373520417416355347979748268596428341369219397259364177535801436732518207733578752172727873474645725481185045587436844715953547745983953757363478054322195255542410118336850505504876078625777861686962676765385793693464900688270524007811382993842737978094653276770762265191381299550511253784431755884902210899770476544814474084154725684640541060114140930203499383536178350339779774174687337102977724285952735943791108482371316188109648321340179976013441972051158449983695503636684874718202066675951143184789581655393235909843902335031520258654725029610095624861431454003092505048361683040125056235660364686164704597360448137170673381475220724196816017953132879061501947149098344186628881953653799734003898783742284309462187874938559398709430252302549396177535300838161647224334906976682970443554251681747363787721009405093410772375905448173947927571984384262031239443893536163327285207702567200295919454751595511185457661500961865234362684157386484190779076397054633471605265112565918343499618031910393091320370760489375848537693040178717151953142442343380027036944295669959354086199308683493734093293182383256738698492669524372931795838459094919665517117440322130297783848021342447932258901475143797169381313184126953875442157952938030693810578617093778360701357482367444911333869917316586072369413481443274043667304226813423040473543227598018134769799389870021746122661528111135276176797500708327342219588832849384211043777254764044087883991006945990259138432948624434766649971655410002690477297452044859256299353467315006308411219983994458665374953587399497258418634089361863894525456033405008942653327938912247766312174161803186665433436953992460574027703974580645740509264225713340192336394874616101734148196015485984933186950545495838667901645710523331628605751471321763782015937674028333939306897317074851294384076109103952999222385361856328305182422133037417842741838281858123572662606809937127256750593183322944028517709316786430389949219420912898480386948237139496295688526742262662405037697694213904932481870643044966358123161515053328196658700310642495675094597024202760377197136738109862250628147760155563233853771346527179375898324962595189661108897193292144774272012617186478161309785819515088243476827829448920108322894792047519812703581266010616800178872617140221385817686638594893660323111352316039924484560991466965433571611476199087964281599128406310885284729464315792476504390146656222597384618033323958389452831461994690979104601495961124211815441672320944447005571986842671957700581682518216846807713497312327641337054197647839117222045392793727448645641334398826734344258375261592961565838750875379351493848794105751106576938009508851813994991687681987775406805930324956990467875756280286757276489320466965385410193840832408360454901116025858476480241547902284442799460710422780634933039578070154178038100539140325572091195716787082157265432549549638777287474193557655355095359859787185610810650066018968777053598193139118386318072926140718483996264696939177368800373992991358946317074543924774566601599689580144396560950769210241914463137777613220335750610938474043522767819945052255976669380600009593114444714087570674728732842217951675979967746686024724867590614119052365826330154098206362938110735272287766371805345918156486596116194378186555920707475149030590334252601989300571036651374019886702911140896177166016292931078549123076136503531226082681834641966590342100989139837664364940605860493316221686468135120575070830130675568494541146459872004359739429627725110431863603204711145159915175447638995473700673031626326307366506428723859527024675232685503167104850668533463048602514527076479805446186974978111907937018211870376214078688053993771075513463728445137347176324168087140473044775924262573602414333354836817901725185500343118991263538551784969190107167625140744584668572180033852533995529631458626963439609467953813913874261419808894113954736022715062813712902401767089929907727127340829051291912828476314951757752641368521775431854455459047235996302070956958679518104720565126272785537634368628676052354903485056091999836154810645727722110015515687798450934083473825101817906063713257003995771770512841425811797800625585376582450823443148956881925820678608818009177185524829700472638708013578796958552504843069202069148674729205102248779707766697098202496616132945475870673528272309715784042519514774652389895082659250124762178399971643573874590398415624629916691840710553067820517194594458217173244718061854738913531988020635800079946944780830154539517562841802015906677382946646402458643396076310492117090407582804116304891867538740101689488075290857892126597722419650684299125824668407762360256104526335340058646522822843002620502635109416969125130422243197309825401023845606906129489617915175014975718929238820528335792255725152440117388154256908613812844010920837582182174564558159427391542550709486061346933934434940106031103602503628085744100077409014110772815595233734619240310197078355263369511983744680685375247797463001296948047607488883164356808393659798140147083166235137917017831437602268473601823724371770733057634663615577742778148953527556671869503297364982039154597557905150298567853627729077164362999461760983870220040270961379350205648336542724750114616094236719277223870811068959647923670673566449326168858353823075037318686658871984521337560640664301765834156410110703511206301961081549467307283270996347212008748820348076564064739432728873642031356099578685286782768528306395547004109533452442998849179992499392190701560510376204904931919985969450004710219075066336382201740434577248633218152167705708186185338148485919364397501746882778254278534480113855481637219317054792812022751244333586475034386173633811984399804878678596977465070787321557204374526458215989053200894508074697038621443267917790407885937615102986469602168412512236761420810189200343224516065016381262793008786734948031009730574084209793277053738832621155140729405007772570040643751622974387052117693205921451379541698550034359182611339586560994832236118974051600522902897598689880956710084021306784571180136862349812579015703171779439078565970686574117902275021759758862873279079437541980100519594098201636571578061759063026385400127868192281724236204151376198781774396275707048267299270172889192365567662125367235724890445053275562642799708841588045659189797151800928496293605870212663432275621837471960170367830277617371714506318689432381713273064963030435176599534236523866086741554367649215325976744433109493439428264961296199714666199223047128542877632001565053643259018249838112386402441290080163373892833256856173843995733376834079263156351696944510720072751214789274206476573505054772245224986775826984874152838120053258096206599141405394629856147713310442365337397615850394997241064424602146661032907879337973791811124016716757372454941433405372709901384412948365625306049013512516026851807957249305643010430562558576115850494482307608473159950497028560414674364548706431746108470925527265609072047651616186983013016520874481597098652862131555965921445629717765735225786060736950114626907085816691202596611061785871333382878331459091655223868782956642374538442577353558286979439193975082307549143615006604785352540408491655638615382590231205429586449821197083113679640003918797388783984849043487375262434744106060266324486347728239521009217487806222051915035793437108621626058666474033739421069726066804600179152529668896671019749758573433005170751597546493056620821229115864899086807723032158722242090026336751175943729332034672457079350599260069361737567999890101277588968744338600011580115981792107499418214162800904157120887407778210695570209278268890380140482644389424612596366977897735497869225654972751780950588980023163209106098153588745643835972295731423772299576470022772694312694910065362477525693576807425856183568592756928238908338264812593648125775528619573224877755925015452887194561499690487287112341454151377208026349190133118102401807081917762193950895138857613912172017571089016347555407287567587009051746927888912655044935548405318525200365802105716342956184336379822103156267126216164577213538385924546404944847362392560479860494067772119429667928312088938530933391254589775733819290400154428564503087369109452375831177452717577003993087848963510697184916494232386332136777893310556866848545557444584410428704170258267625120198308524057784047942078091046750417369103388911238616290795309719010995826801649053099597231974443392312125148193255696928602100133547559326141261742404186425937498271752412832428202709499106777686754959842869585288105223985048065512507171604431633057600239926032128564675532362071651311802535849221907952044537244461124982217220733458099577724883407715332025020546764809469780131144728559786653318760465124351850496816081583774499546417031205149548102281091008253588920171455205441511562369063287925984459458182270185220222462059155034609091309042992409919512331786965760244969886000942829465742327040130571793867883132733371942307799136304334999967571734037822070045856399761851373171407771809091140850927127338136601795788706647155320476121250971527603503516175939705692343102592250367876502388308647671729257873580140307494810157640121005409530160966061009106775910613968691474478381308968053253357007112538008142015415842546190165394595629342956208530992854260193326942500005506407061157522369002062054328933906350485656730553839462294422456340852593914403084532298595750264296472016274526145164254764147818704089348968234668338782231687842275127087460711358741380477768696486497437175120053761819268922105616122405577994915670940128386639781077188048325111658004473580562269080851216752929161366522764972067056542536560544101649887986272622278271287012787765940129644226903061368873410878443937589707528216801693064540859779843016749779274142132837315713560352856756662414921959123937686607255619097811061891581998701511308174432737592765696367284574773599231748338119025168650664681409938422536689042332406218457002529467565697581501476497030381027744083204266711159876198366024342866578377092897754094577541406169178304721705017684360731628124567510463809167943350454274947870283236976043314583642219280993949188311747332444907178794871912719335949682684248184652134916640426309548814198601472323218342666096997420192833034405269048061741615753273953620938800638441573732314012384499084663643063067481462932190166462143531773860873680962389279322657566053103728434836967126200774991050731972903570788388220763302271391436747474147506730239630366695163974918455977622237458644727432946533414725159047423190912362203662466070838439701117168771537844269558200101243885602869476882098104457308404835753898781078275498986431879271035708053235128774851717466507954489094540857195003203635436769419603337265027859514662118439957046121414821945601874748963146103093796445034796089870047325117068968787800226103837517425192104728258482799504501973224108870272660081369824154387817210539150316396897756874659053904387963030578973097553927752979424886085709913469213210503977440525069205290872037702936846714648835430491737240321149377666805967711710085362097690705664213162160040094194180073008313556105833383789767491784856282253076445436173458718163479610514065615420891849144807105829176697453712104049739633600403136503907783096463967105002004447020825111212557546152623543202372123498660219674706208104093308777258898369993344913295806074075142260518532239500440449822077429510220769379816758719370425871805656611400280287787674285225074833081620729425088470294414750673860392536681512352548263502726231835568815565005821345011265241383679306069017386026974161570799375664416313344975392689080384700678788908523837486579218645462343879775165714394730054236631851833471437291093028318470223781612508941739498901877234859311614769497350481756017032989916176690434985569625131535972713211398712960178026724225293566407945759428219574149798062383304549842346303367251087319802662973241586820990455382083018058124974983605493964074047844018308500997107532315532755412772001027012508759727907009387211046937265513286847466030102954106832600958233991219166773589072873262695084053631518301651244749247543175612792292240324409547808569143940512929239885507118130982217581479108436757508754539539091025276358241890953703521481942843795161566426326868958396963677449598436818502219346822013161375507234288315374235973050322808559481248700360228755963944573830022069888022840888449759783694822922017689957394393977192543380364832381865934367810386471776590690750798776114685753081396016660147645553247831466729987873320399980361862778319903519593388471173503755684742371481345214060575817114497296755090505051192331810240119204664148782884557713398514685296012142301992623180743326483147653410877861934397799017279927455863740746457998480435670993935206520172096176572230989588244686474725221893321847186682925471472894186034233849980695350437424747505956660150917680919326333406318079338028052831224347971335272967457208038919387795933798812213559924101764300647099606828346670664478398049357530588890332132941616036622153298746526226946500829244286115438859985111398059673430272756043807589110520115878900824775355979415870348217967994532518155452343719444852051111819447208204583704305871496820332344570354841620924746712449055753177522628015339136470139287461811875838636491615594038227830132596898974809038024518188460860398167684693265490394979874798080730093240144859549997842852859630047852359251448744635253731288008974576366671042362144783027046223952527118287524657064031634077026494693948066386809413659703177195610847359988079840259672787796954757162324112313405400199760686728378615013288319929260598557203614226613475123145989847127067561253867580147203845419401346088250038858945810149926568059272028792001612714829881197385115720425610974421274828977071246696172196346442278762479134973210613595014515769344257811114740543297542983695112138700444170939099532063992481242262170673096206222896071903217692736177732821312266684910963762621897511208720017917687572907372707912908172046624916590551890394269043785560188980356386552210528788328668312087654453152378398401604497893594363094359829047607526872987850708379728317618552750790678372447840244357335531563532271446835529108580642506579960006414202284078390555191420042307330614248002306181588646372985001752611904135817601953547656573886998421468143409829955866865104797768353723323624317499348381030738419486833943700312443729516640041474912793062731877570565867537790664756716261080873864028793551676513867041833854714185346798382687521485175584995281470480144589903406012894056572788964870051148821399516426826125015694161984528153282760741231004174308305364302891613768911862826539627631719554314110539188233468906471287693949106726307723712936315128798452356859321026762619828759042963207836158814298516277839977494475306424480519308297590140461884010129008490995334362664539186712094837342053291462225399904525712898638358078492407599844094430676224952583845475937483420574564715584833690778913469490844492824140641961846254774694130635729342628608930601723275040106816564514567506059049499555610668846970046422016700898243575451042926077833272892776778461275274391994213940229168497675751628055649646141129637452647981611899281600243718376888759722013134347356097173926790211677111906808714050772456905281387867941320957917495301224024836242307829319582580750510207830641503170301947067848248628019951846888609748206182337494996569855252891672885251414288572386973631729963936536650670169599531026394768037421977079694859974696156660551740508574582840104295337172776255180404805802288762248036452173319982757097671306565662544464574279897884109913244403624422343706987383279014750097524677070430086986108960464116328000930000494483271328912387350023625641674310438443688330915108772440260522156577363761971687915266415759208660231885890655488546751968122058960400364435561736142231443777988731707384509104273258678662527536538916749275290960919475538153112863365948129472284541232130665333873251716037072178492448130584997704027213141665195051449342298182112772029835589195003282461743677975592207134552639100851456919157078508334666918813496971192321708258821120102998432313560232644478673416874132840945948374745147706051719857974016638591693278130276027855214863313459937333416143495209161898184255535424810186535304759985295781040190674810452913337633680906186018461421862242432898778686811738420692130135300671054948958051070866246274704814746365262683954763969797479480578089200037843069196452446548279932516599697970969284597534479845381997330382132898672632189700050620039247831284446533982579165827157586581841426881376181811932242722383619382611566840737883582424124711304559037996881201955988218946268293667486987312927164349525636853919617587577434408734364735628777055630844302518242368246195903769778414578831150597420488751906384150095022198848300135868112259985600395915776943129090959208761322489176058917270403737773133487960067501992946478482832062573875715516664792075234331238124903980631559095791024040211296505306406026852152256826065779375300660203657273564305284887591143810327441032441208422252441622194300984634867806509607484724619186410942290341378726438047119941775652701566924076760585745066194612977697416116762508622250278235883879260902457041285467449617709857837071632640042359842275228346962525984109071436462232421943076007427332719017691863731295211920041663994928074895794715948057534943506190524887368672907182297093563142827247658109634005441910698109684271188967924451978407406964763425883702459253556536400189843592128640110666095060885635335007352260481764186680613641992801463174373345304647257223049041882343436859627942841861323873105551495463741950585404362113154125574818271924081515250419172070064637704756908894367320373061006241293525786760040119531933696291419276061456651047986076443115300354676590382602503968721109090861486991878625541088151965968560146182843732707647609255231113029605321689247360337572921236716818576883008981025403959251865481061644818235506867940219448864231361624701143614979838880664043022075835593565423501458923944663421287782269264925626147134013552101243652923674881010798892122541699197487585323738936893789495396233561373364555596050284365809506505231564955904402358707628844381005227076794999327643555939993638638477641793297410641310750851002499551473927591375513246564196359390069898152772609322270220278767042299892384218688993054632975045465773896147399073512201170395127921331704668160862852708072742902271019545006976178067305871382237994845330070046092864989132833968218782803687462319297087238431282942534995241204030517942955409831209463000201052360614833864922653994111512496720822095056579593931884006852897378409182058358787904914271137634254145861124385555558035978735922350475273443646078431929685060749440787745717639614250791004332346689066079327244218379156693830600744522322644062409594572397585357504556703594440462619599644683321298989044225178746517994918421768008660329756151874405617992746060710195151228503203115838206201993793323739708543789212751727832158656291561669539106508993346736079318595196602618924954872071330358572101122416549906751217884392114659329169112716525626458894970430765254736341293628027090113273994882398184111178819328663542957652950544578727137057226400750002565824575704633725103416938882797754552880103322368859839812557307932629913926305388377228614712190260603198115387688716990612166619558978447282115978186786618242085465761475986872778996503221240538850853175224922029880968673664469001628192905421689436345993138748349159234452821882201645938214466641364990810768360527500476326446166918827826883982222883776130345297885708677389634135054897637517942360088566504039674859596547281632045496050000784226059855888400656760788468413799603774495057817815554235344180203523198383952458758636187743392674112263647246041341029841710879606986987487518455607007620120147287756410232661013415349718413944342733642803157276689450276550803644107949727037620157486643980142380208229252004160893202044564883446751759834294892208538782337182839981563495398675193496685887451895837649480400155102533020293437168657257236050065066700618759635715035918000995099615890905361067405285323919545030960010469545709077940012638226239041389976947225548326017993779816740782578680987589733386183244161700620006385361553482157542423552799237788272375891737343538113798899094761365216797209552274050288602755956160812988584410451827210724892301654907512056791635502101245956111798030945937310180900689430868080657883372267774089593714402477501694402391508603477271412301032939790537419563842208473375495206445716675914234077078798063464989594816859225232352697320022872644133516236929663796730603316483356044940864520779872182181852355133007495754025407495304856043134874856797333317287198973017122076794849353638838951625068862438765683918473056736776579902723677258317572357616287561578688481089284207129065489665033573376112327374873772643555319362014649270940900838778459198107274168908401440288022274322197810080936498246871999302336909081375811234693169959826040178920927960893528067329747308151414565595134164029867111499508602507374951572721562973349792113341291641838430842655211859411332668293997341929091071169628922967078470438515497213452405956405546182858730579386701282904179690342913397390484337569170992245771013098956827142400903877813508624132379516725442288289933315121970689730743646690516284575160018698697051459941661849041284198259172074233434443978386582425210099687253555435534736653652420407364633370075607861220741014799814028342319294021086627217125196631025135139690227452114080726833007906091567683619598426775156905405760220449999793333232198061083967009536992833221730632685848538708671673882388843723009233616855877860134987802756228629228558107064905813651483769921420758445156355409198505438987148121269170374919034456942609633626670128626025161148626456858826597104635935800226380341307025485842048866426119332438486847418685590930001439879013709085691608694966557081975489062597131784590744322961795997768178885586200829314280021640731869987880514353720308458073048255886714483751890328210603559695271849195131875892185096055966596113000628357256999365217880420566584649077157981307756951305224536719521697502485557417777480124942763011171497614719861729965171305911448691016572481811162122211525290159878635915908213419352284957956491040877296125071135193016554383989021165727305071136092574923544169664999178897984830610054775619116087791038754029644730799662838932956729420810618534391682471269673270347318257462030969475195446893688264186116219464550383833478389376426760851397054380489903074349627215188863459130112424486104126538329481307758497086403736481009230132413830664742929852867900044373884124295217672958787416692143408351774795590885555464159595581540093091858186426448420134318592343227959673352586207572373448471333387827191209567848505991515290858996851839734144182906933177955379878361579271430490095254482740277008702687530907708752686694778663932002196078936124539892379408698098608801042352446873559826474791071766427185300389002365964305228317030936779631841059833224759984705023571289880725577050171953631400329370470668634832928616129063554193491743076956189008993878340331470532308304341838164149953500059969959950136759248300598122037706292006725334832683068705232892458781846376539481140212711008610856006791293040739593822673414399266475501367043216133889781187933622382962021351934364395193337269082951689288405610706598820978933443951143121376864085212575672100158182205214494084534227887539010594453258993185484505414369420256127617620416592119598261090987430792233648379580442542856956310955784799341269099826367097263779293161136086200741500365209022837855026338045053261080363896841052621538820752986824317738470759305283480380789391874893849232523614007050612446794673915029388655573675002222086325146571512955044298500763106815284938259260799229924802468357599704273698964562507262359649040226519850916429242004385656649684641370197328012583120693074937760101607853904944925631283578283861219628181806927159484941712753589648747892078731307739742614912569460776379336420866497407920483459104047057823379846832159907085343288495479635909693806671148508881211982168303223789104442711796999905570644709631939615855671758489463673210673674328342532026540556765697303414081184360196536070858081159473581381149580437174514876906216118116452713506760703146798551505852274704822670716220461425078686387419432775888419348399349364336047070190604680416346423480404971587270657420975193320615524038421275144146724973381033182426485951106187413909606711719743916723568978559248633161435615940828100809939755569837753930739335675042598943371557520223908338153007431663177870534822040204426750242361200033949510071991928953810222519832446042498676282586417082682049193904325095156510633521969939000755809494865763880673839696689832595293906070023408838137765404624044030453682611641578849775878411182971536843879662016835409852672984362366390712245183505225956261307260673355796510232074804674672156785755564278841966865538768387234395171833745985391595322895597124386617852618613493580935621130362634395021015114378821452468605791449268751160496993408194856686777802801761091217636189209122994980103174399104819745748078217218656134278064418155869061613244248079557106774471617325326624991944645086330431513503783469799475974255979474848775986786949622592494133362688101381262848700207117609787188438696636178778953256711929030261492233502883003315181258488523918373864607767220476145538385724414464836085635423438852637742758367828259734986731824526398388706624991543419370805937759460579059632160458996928930849228932143354690375647451678554123184512731808461386589647010216519212706215413889272194114007014210580784669188263884909651059734453638158340351130328530138950520836187177055793942052823290854056568989985675994600917965700810734140224776102564085214243368320434876121488127508352398541279361252007382807773942999742845578377418106999851573561763146350640328424093724757055390268435045484281324221501691753820883731764841495068830388714699634833920140856862808280546432229411511387463540532522851306569754516434623370850050571973755945913276181934783403989627968850105176661740677654272217694607451558336637597411533094007322144047263010638107024189751375793033801619766425395491612872590739588427774946844982539770422846138381091129309723011522255662252464904956212245451390945340368065005989514963429416607471520991660664294045744654609923451077045869107112900013881910871397696711897080898442221657499696760348220383542215621718530045834219129121075691848889326117576205160089969359285842328101648817863937729963957640044289052392243461865322289058473046762979345914192877987868915507019430741009204378474648663931479204831330367409560348931573271682549866462044849179507885571612656610255914866605077245582700677166570778869435677552512536741708969413447921520920806842560424741206393447003219750629966746771207663612831693252609595208503085755753054492274072028488622552582701571639650500873734663371472706630125855527336154204497127862587929242798270356337011817737387616707850831450795221163485839976862236955489437670316204187680364520683298879226202306363359526959076882271564376484985569467089550006503161491982034896873776546476338714884593366689488440453197477559149732842040378367702481571276419750653152237266012420048285250342062468056610741223208143866056005716787442687376651876396330059976132890135167106316123259651233322163155380605466343043340469974806572539056084237914924844976056094833839998665459977896709452509983964644714517085847593924956916119710010195692276526470282827548289233254462226107851603322176339807667794949081105160790866199328385253515266937806015809322723299639500586973511631906187345847083512984832760422299480159114102555500232770710932188365955552801221057627944271048758237670417141147651912819914722892248582713984298309314290575219919377062358764882070975717694165860983046593721965394749751718570180039163300127631851788503196881858774903366580851795434312214027922923861924097742738934923798716970547050051882250324641895777092459317882710323662035945191623859702023740040314204231284795470860067865073346366738309765794978916567469559555320377845479064308762616314699978615789998361101819902850268738866435774445656130048043101294284258333323404540614059943762506539532193989238092617507126615398926205190500641155875789173120876038899454655291529064832946694329665185445756406525036596207341604841555296051274747903178156240344571568079127213483501221492597031490776573288321822874698097255941904106852000600286819985821949262248739857825494378468907941413123814789502027352201736859248865394074451445358125756781355786668376387655838710329143447974413655985822798299304217219700413866973684370473432891618064868730209465242274806445593469995100104385027012036074170339012903583640529448297555932856772376392146409293937460690080193730365648486474577304906962538439572278903522876813576360859701279625795431259407182333090154571715626928424274786757354379749921591991720508000677971523654639755729441989129147186882632782088216999016285519160048531927555086349969350397088224923353793261017138223084361611205422850247545572375165780912855667041147680934911255051285812399217371868342179244334864095937887782459218310710076914358008081147720100110172505225662595881552352935392039331714434874454775085498570876035172352479599349218280720940827934211776614705372982760838972906882258393307071498503367499670781399966071533163523165851456922952929159129161981434881113937816565523817891069418225151216037793319554711205273094700836473471408296236682763518088139349349086411997181475461751247819609165941225419471379309927296929115584163681572318016159799828480171077389172229318162829482923495159656388793977294787394874702629049542443615159735364523250915163604689539522992646054040641098331133028847401415890140043534823082755192585675632731692760088518220187756242685026192832791917212149360782330171664918262357585082165714814785596217100849454272108615055416718765638151247763113554364815075550343963674957466334742773601692830294573384130170521442622855695229605436034723898699844182736846389551261880781641382477906857023500133605794599287392647896696009668184359016354953042319117652671821251988368813530717803887243376234258308340045710878864199486618647486154386338038048637805505505287882961990415441371795115219900122794635965564620357127579799299370432641528384040441854454877326928609446426115055486061649848688952395723013733478875305168491752687300972610793873099386384662411394715440907144128534868859752013547824436299196291481604347481386120147609748102738905967053709649293027893305570938197172244648015546778411275691596636149324130711536408828220648079477151607880837553867034605682652128100823210294026846885139741333749299580509491346109777727377693530741960367473678333711960345045041843030203047698183974825949207852063493073677384511905836157892415109239503308401373493528004812350463653955545934374197746478748911478270058169369214629607754950875563322704907242548295535781231231012738879034098328433090659454502024283931075644786467796634884570096435950388792148375835180000302962894741449396454277361033385744254792487190779648541263753151656559115411469987138852309579400879990150781813099035953149800193673616723616612492149387262537897146356482937133200921845327421666632660845962093666132315587998771465841762974247867822222380875126405465864996227712203061078446089251965615541740781465563222419126518363220075451773664675601856218022445941569416226341770666762014059085724177827078819416918324444914790913784502467386308637835384283511711611258315694189679185410465777426687244107527180557918706718949517416832238272352132156479919501758487374414841209905646608187646799902593774703488459247026888769368586223446867491129668799283215940299804018554842077132935239537049434842435967538149324443385282334715023929999197065986237548903429043574940438763914575082301572588174440300827564379648988463383735004794504916277903314085424072448923998879802990824217845930496318509761258161146999756055863416382440298963503047700700188309154416930447329026392213668522732374118435800230427282941389645018431047048181990197626668984597808308723411948579270229816877885611014337489065951436705820299600460356651265336440951408305037176518062554871065094582772404763422348446356532134822832599293111270353449440188308314799442725471799497463592540978078898769919252839795614034128230334773106211367391907402898272984496134507691599888671637593893859173224986669605653779040291737710140253831814027190703374740412721107938206000304065647392495877473640715366300435254085717700245486131687935320217929485874072386690556957242922863522543030881341993850326895294789121788778431249903196026529838222587638818724816126382138986107163905929647189484443859708288342298116167693135503261468311426554181912696673643212311166129221701078521029724704221433499668877586116714729052800287495660135968755612831106843497320674609900611309200088486604212283856694218583540958761498081267408747723863123024245855021580537336736459863458165766653258331978643350095896970771868393118938201568922899280452145997585872646853203741615392254666713542926172918992900070306055260008289924452170795287275615955649036806209672579812883497087534447961810494026619663088269361357586999192681929266413225001424657230882768544247724080173744039239942677422370899012856689490837337627109974048960613466045691739336527238600875376545735337632529235790224414116823710246095732134850807441407707241679450947059002992264066461260821734953381909376961846751084408043700882595344013325524557402205445747438204387376051383597857535335764629966232544403775140760461414892349372829916076175964631172493066807872895108431161395468228257785447657397337870982598636071425888754608208950631694819620173149017376085752802080921767489954967098642906899871506677313495067410245373437862870090569795218056406372748593949842342260650518172670462508231711981908064228735421998316479856918302804691355448368286966426929302859698990786584875660409563555015065608386955396371411910681353855640720132462905373198264155437044316829674116645982278486702724096550550710657519523415020542040312137969395961738647871325892139171742094003169197401334311319888835645263169071598878087080932176664456324661756101703194126081732855558512227455204538511504992289378818025839846580339487342421702513712044840740544696956013306024456824341277303375153052008730200294098286110467236478990744438220417950552748437286708322253646671676483506050644831718694646833799907665851978985500051115701944598615954750359192205303104711884365015962783808503967958862475762586873858139697178963025094260110810866837238608928119850411418442098223653754424935076207520156113486947988060855226441502126123945025880600397040681805194731408522210853579627602220015492139631818270132614837973176224497857900440057170823387874238179000263716023520193856923170847331324803002261208608232497494655514652508203659269412820248634080318347251873233512016050942064863929202921445355407792878200912415061099850820363986995351558639672388315895082999164980430116932687185364975601051529245248845856853073556945449604514399946023542884942734405078777003082653176722665335956479773667523500459469731091642374629257670232233806708932665255189379050919653137354677160969024963643632030232946580380242661176858206448697921684987496770208979983155637401573346946506945563339231995750253014843015200278315306308224428187892249128040693806926566590645598537147494626193963288065969121471170191730784078098254514503849402140452758837644297025989573978710047971632739904720193148630610473812978448168904218915470176326101779846522045233750832797616330875194999122929332376779420492401987781326717265346767306661327133311365101929716767989913079417713347414602201089595878716541052319561908533701079599502747051850256907050218482910437073617526785217118333119605837066518207128979261229178290431624309843962429322146885171017960681826773009324085650785670386524766386418256771266075941018895541737801078656167707522817275919980570533906365668268475771822486954225935507600928557834368732167244848246280744042456961947115463694910102168229615815857045958675866589463912584397209347376006211827454918246882106409222225574162917300353596222896513117852699856765456194612004269895116638939217214631147265763582235980284720667616841454531403145865734335732525044044978031420200274066751115139148999896803845537974244933708000737623805998954251572392260736984324869374688255616544742873271292180220376509184531317679530563070269136637159473763689086930740285755611957628162401387337614431423886037200289645260760398570831436736587893088277261321285146158696800170217520973150719513166280551841304286302308580866946833328921202658483653413727566428593489475255141031352132186493257196458338333748388364966502321244417684109475317762304972828995008631736107941454894411714813686694628332281136858550199249673788984722032267146814079076819582832446853859943422084373767427291666913375206342350877875444091588711433500157468179441830767703014395175063567293145495534236256899128027805574783387313513995015269185393741961739461956977372314166058587034407162897764567399711793209672586339422337099620058768065400323687983288535970093487569817148918936331098446680034102603232155100686257822574798296162698471925100714639148438115380913671570056815728157352059936155922158716175746342097016229982636246256288065072841584241245390285566013514985190217092580381579085216549516974249219577834614093276807571597666338661343227082546294894571432055540185766868652034179679989492106126270388682085970912244166318388864851613473354476713199806515253853461556061240545028390727043650115063886515509034824353616451526933740451845352695215011462582675207994297066256995067028086599403151303001611156821332834666533977365016652123447763832239540824986716105708722266700206705802705581539788410956774593250236168605691548616725234207300608657386226901642423972221769381692045103053724778205040737779443388335462478964792037060443598192324273801912497463286828836676192902013790889274801533481943979088858121982314554343732777078462124548936459636433187606964944184044701982182132216150214996736030394707487194261709567127894112572158281205764168030215471646131702875264025749454757822660359261035002366930735937547789486824140828082648004336694703690665266463676509750379130607809754226616038348247120670542602114974042402924428319145059629729379561333550219150123641040815350977020190518669188534421307251759727824608678189797631411844122338697593864875568891893366149928024212707335665835745439197856999423653685883427962635295385271851055993117801743007461650793283552509762160912684020258510395751306178950295466154468569424704154444532946055197852046084503507711076393693857833233636204893463454217318550269654289716872535411783612796195715213739195984731029462499606080068827266509197008540820535838432618397246408519472625639454630067305372270188358175425069440825945783070570617350072450911348517302513654608589775283964591208079190684000114094447536985213901010169683092680813913088078632863012623749271861351279546400395674011185292805757385665797735000517832503479367505635783530581189510263199965956552764703593167881063518003897862574992990787460622747127673600357494080860801805760786600134165737405635500305977163971999059553565549557143785497062321887910477603575926700720800334423459888171449887315253885770974961474249916553115865589714641862579805354440572177418980333687002444750895856551738487579771510472694173895913280112648528876118624753873620314385829700802465060622499051979635478517808757369843410018655911990441613614543632011561810273205038059641131538292148312687975612945009138388053607081692974897049097720365415640976204512393405762470047065601740097591386342966348771195851677584747440787466458680876348980964809663679470660900784879017147410061456202224493973569110410721790849590065456271216855560132778760627687619485018762244889217146796699181496624459692116958386060884616478890907045531554689861139119909707379129693773030269697944889324713063078886149706004463691380996055252888220167559254799570205201006012099846361977924018236002351675930192461121221702494124170357789349330157533461307765271982153967273103535378625758059345023632999193586000809666422641519409537105937147380450899400964180564698928893517164701303072331879070687191762318197240984568884055367921811735809054479294931837372867061392350066504858744351216759444886054644359750781772489991738732393663780297847444442670362615177400331157721048801188294457342895230144991147533667885826188945376367602402557653550708352435645408106476701550966389537103058276701903146551308357568534944722172136890140259059272383232516533472850707598656999309309750039721913705001356908914833847571076726409092247756806586136375498424253017793689686188925952694351227340481886848466134163509776517751989636508196120408991391538825363449329766626180330596493513297891534719074171310748541156808368372959985902217703133370220794311645246875754698521018396337391568040044790366828974679669713217566305507360384467777327093324925651460693998593991342524280615155382427372102641306372378309194165315456913300078601417274488208261033685510670017201515085307815106632187757789216818262830483444028533640292382509986710665964160713130499804190400548925523201944125320662647697522435522498325352675369109138667104062141983294616300716465912430207813079442448422038408576403123764410531866193934393522613971084085822927199284679471201218015451070246545722460897886050729594164454210756480258099609928829094271236881953939743843549436956355181657413908155535495822332195323053346071203128411697326933079885296521096773352107267539370274660311102208708177200935615272074642671168747801479488256962398486825125199936926032844233608626131110262893107573894312721151639910912021248931879054638896969883559723303621741885257264170267109033805649261464998713015675426051796278590378153943750688181109812286650968101044803102501747742167302287168664381848112316420519667025011747093227803211769230415800966202982175274225508451445837485959504267630697101422526487211313977814973726681856478917735576998398594506128325170747011654033222474905994809292203048763303016797407816451329471162260525852497167155809325555939384157499984227414561523291041120394033284020985339907086578162777561446755180045630970846211123835385893000342686821694956063177113979478365316246599719996906141889348134918116934779878409862114199758135773161931460393815960159571081347055200014181977547380556711240163940248110521070524798550052894976450341778750126660881583216915281419827064000960951858625190875933410016927404998182524577080408861788432536004781664959170992002616508382790795944872317671540839259093467065788686251663329006325725411869826541585407947349066273971341574203141284704199700993358154720520321032783205834550673529327034031773067747182138738744272632698439134677900557715473411366372907892419804366766623994264718768403143806078375897971158921728774775920118609135297747171057174107092857821070258446028492328113308899141305668581932434335573380009918599118152252300145306768448080938410989467389708427765180632870494248707989032144987585858625257191348243216223482663106720019522531748668190806659520271795347147850882736155259067857134761598838076996383497845228940736212595341238806399022336676422413578135635409267803714514153396670348090310532611891158851861070936833110993485794216764242368860830694067254572212304384385785314974201331959527052022287581780400404235804339722004464348784256988852195990810893801913470039958748338396344604672526797605066497421415559734635971488476458824347223106896310387370972376813606433690105485798340419318208003647391667780253781754133387655730781637639708232991137236925048934213329075190776970470862597533333553810097315050115200327181726840070551878981766328974763640149310644257335249917973962604940294043540444496208121876419335699664161501672708489244668252734339180566799085757778709827374515098784624872640407851360982078033252453810953725803333456701422338796886389501009823755615122993416741102877459210383392490550952254685161182040483904466341606490391740101955172323982211817255417723966520852121632913318355025586691720150767672565947845713969312262821964622400038573225230169965868662863186499453476072554124739260396088039915024870339378676966148589165589782330561504548562104409832585237803695351638116191151262621808179684309433295373324078635822379347147453116967107181083417273962864429236511146799405871631778090259002023617784915554835681523367972233584471916571386242122778219419993910392760689251604758254340343479395718740477803207957886601915512007578354990991701333443980581730642050637530210901054309244942398127263092319392402988004144057722590378197050709004418451345626150623655436027698041026760595688009542965074857265695404362355989603199078634006380653127904372348866615290867253927728967976898254188369980423230478109233347873863579435958865183075310524149978298209586550962613539862497091365212787393790282913052244161893331362369873613951786025810353861281864006405977437856151313440742417732383696756128923358315756759406096281296253217677842190342662679112069149889209147870674488418174014022915859853306833992226472629989301518501388566448348119514530880804920508757988525992019536977796234151415245613909366474458177360062316499033013841626676569942303897757173817172652374121119293386074314289114286245261325351188244967038293529999597325928303361087728431554134009479321155289114379633990961932058217190936859868871172690044812517553474204873962509024148509607096618941743256466294564238535082530637204849404829054572176206842994254857243324862286026014278879904470043866196244465497119462099242972041976725604654650538922548267540715646999845929670881234722792273441101576293342264113739919989767661422920948496254857658986148500484460515617805427043632816532987078269162358176909192274076846890061727146272521946405756407903806324323822417828270177205056695156139907186408176000314775082665094737154793676700352133247233942324007533078121435130105936653652264512048724229471168038527794723967147965062014392804241213503226184781371143570350602515106437291361386715066528496400351464027131189880592768510649718462138740744023142490892850425794740467301052086819122905685200404624749070901803830871784599286494465402969834634986396344266297361990316878228324396745514640426399400111239954720567507035970856074252416855684250804122914259231894513362227595433802157307678878244538885958902921841377385178556517460736508794973689513221258852035307212453158044114391728871262183172291285763872650357405336810868069921691863936886428030206380281442651108238471941255968858086771822363608235559993840142666887881147996176429049484277645220524474368461966897913086225408768598183731424215055657866331885998698063335073906285942089743131690704949253518804021680447690394742312308297949514352508685808503561745927464298733413388811585834390964075711836984376483899149239051305088871017092100946395627158968408330939568513237042193174432149550546251971201990120497051578421220688751925336057402900286231230051313839897313250951550025523353562987344702935056234935628857079522063392122263023843809592442220596950908898429941150900312127931108940824083515483433884909743657169522752390029901832948628762197347187551302193109624118231038418117238630275080642548719840940438702307735413979542000116081039680248465145495564353873729152865543969347510656481182404596598078505480556160408371533790638772395361893822257199451271440091647409555521404313505599699095696523739532709152224559650887990219832855378894053525256994586042070656405192357919492782516543109452320567479324732864079535700968643623252956726432325318839732529986547670564380197027847334149147232685537028745012705628354073665204456151581045446141558515900113104515196854893175045478874811215172950352128387256918935827760657403529572445675971088831324929293632987421505564735526847641827343310137244622125254690262522443623970867644617268851584645787003374804472374873195274953567361658338493386444970345081436531822192578987132639932678601290140172873627368365827599715446048916865357548357328522104302605688392374408317626328112709228127892300239797194619894587992904658712542015503911669325473393632701963621381305610661628487780667962354355204916390376515118355605357612251741467597849176267082919512066894948183028264191517258724467259205738393583088944146722829733309234634428489532766151822118298612522295299362796159218814711930404419787839729660699875177253415109715586198054976363967183961725088340232865378868133270108233803604115315425059881602348410821903708399831633700285418158397464680745430527528309654146826979358278381710001950204603495950886889636550152018684502580914665963379058119853734120694301845492995158549645842103939936988612417990145905974697922327254227445109176724448965269990999683866411827441069727032618969359499039034018587238714922598175176727915988078925831184890802952210449616388397053185161367344089973309607867021422716462018891364321949818770000562996519061755099376815599499164405305373845234064830317713473843117981943519488833741537150749240930035235562890695338660019704025609361097684406367883606872452633769458113485012485145426021095218025137031834888632285584159298615516324783359750969912344045462848103763240304762398897989180771148286056119638568198516001981324333914422063565673321723068429446672872725206404752878664487696408300141269636969560488850227179014738498211309267998113444569803086547435886262347667250573425900577298083454637362690015959011485589484921003866471128256195038797462898791019606993519385910862354136141679514564604768500027833349417283221432329853606084902413358872964955903802772343846444777726737168782811172077058401396714631279689769517355458148893502485932829735153624117232263786736286709565481331374685122839930411924434205565832147946945330377367183450836640346623301495027895111728996643425644275865858545910299541811006353217614450410921597549305195278564023582445510181836546385440363632908932045965211523639518460434576905600390667412683865027586477050944689119399937212477765211325384054861173208000262717006323888333196962776549833512202035513674837332825084929380204576782023707376616674917743481120952969855091997989010924584513612596011882223617251365062090304608509043016398026326041749938980273422781662084876964868058756634906114229059687255066501454256405041538991832855974656167515951170353815531508926544013450980569770583958239129926649589013738758869520491002127187364041839669323397768653720540206056568722130831798784062835469341101457533674365409135718266966095444987302371744018942650844876842295744072158178891911963349103823231854294968478592314270703872179747890294872534745001615539302314489582555733034960573223837714439070594444823041719729554770471250901052764299916346977858376451441083063814890236206235969153127137045435633537899772417144128744018231277930466561601891817838610503032451016363263319443561005374316575194474866367428999289289070337721064864346287659715166947684901614311869166231031916926348019754797593667337231177794255016354620128734563274751073564142600997972756064622742891122798889005087990808833425686391951719996543535145985789914107312425510321671972455124308336673027087154591952972678022407866477238375086932829617071671662300532536118811101851648202496364412064786615690923353943814646201105510386370588944595034988235559714663571276903202444481971724089840275150378352243816313226747151531478567341157927841159854476231710327829375987498350418182146941597466009593007911412805973947616402789814732864195654275798371959978529405587385127393939444963317703414730633434724181054624389221572653741653978224586163923876757022297249723466066512273280975278593166085985278614238025653562965232418324257328097925504220840157115896269413180727709987500263877370133264746611440589791893812768664653720007417138567753553465817323654072814277060761408367703029307048968246501705431093302889040933249525128106764682201659710379067958592053258918157911317375976239758049552129143744456143711065221882763105694074467821069444171650774932435948495237694083914572905991824931280733822115730266770143009068036320267744257849739458209889330087349224590411386371973040980184895697563406424746438623935416418551397775818048924540168106397675044072300696349592583091269749057072677258056972324448029186837797935007635141687555127044327703933524121176983082752422399625291900357353306010079037584776657942378935753463630098999803806815953637477599027888281547371880334498744358273919581376146283770755689088098352326645272033167569197217296707367575202393608937567511070173396033346457418805453985383305146166136118293858274536146707765382490525749807045208748483053451493993441546290317951723564853446191678421085163251514158029201485234902346844183139306640133082018191848950514910746501526324126753744898760452529837861558509859664849839887820509121841909332330598517803330413466783954644946347049199066388994065408361360682823993766912122589858866998925299571607163098577933098727365628905040518185945803707608936590603739663639996470037479348098870699109315020387268861734404938495176492209587871036166748127074532428074850234476932666512037747111686192780961823243967894791044952477093009736260407320461479714475682100422230811363830195342861279108290285331568000008694598045691742176862879279135411262049744108767673344485409281460291452881205271907663612342042150295446058494942878012870489542414654256367967829069067276533494237949986515131699118102102052776868223467629854157838698011473888838229455881390615491069102576384728334943091325803218013331929523310917123993813284901669406944281689025787929636111332553048925768629664877675778097842419102970255092515695703615141038500734261556232970208752333217243875860869607697075436289788473643798423407941696937797730830830789825528746779438902157358126680691997782055594294274308560923183191824466922048767458932573924239295457251361461000512414183571038086771009622770157027400247814622605486830030667740170610252324915704310369440514226314331668880480374601073124347363334209967015797978438400466066670827202108750453735368288799682181097939821220146111047433426690992883444036174033844185473972520098224438523992212760810862297447494102195201728820021426502399034716753715888097455489955226368698004101600614310362305598548158758608657511777483836121492554631559290799691212828178487305290609641395770067055795261708221318428582892068053030166359243676971246792245233523614301126229690884328810013906461558931930648208459675969014205893228375059365790448989674134368174530226319981825967511988818598143690144244498005927892803407518148696831724509392414031357236970530695718962129352124022918437059729740687779248535092133579635790978068059739028987093213966131420886247402522648448917537194077638044539140357812471159205575308279242555648464000509497728404366543272962836506140533386864125654901730430391112348742186533553190813898653302624440339103248684960029040355827674691239304647607177532962441085849968362967583826146718986424636967051039230949077292078976609638576091405069823442756653685474464126177465507440905553197634997119279210480210378443049880479170996878211975301816262647308853808449760989274153151721726284845548610107185863098886527940907954690577954712526756598701318967779530933569952465728905938228844364548202327529257654634122046141861566998900983939857753150054972350403620974396302585695011495299664560011270777463284065683219556105117940853500744138016031964196959882294514592413560015532786420439022695315977790826247422237954915219349380963921538675203482417798857963960362502801853913531823540081052871740155964883725894201536557566461202940203956727588324752963430015953650237226395862633118464824296980948237880152234382432000300122454090075074228329178791931278744941504294355675598071271670846340439767924980921038049659254459918187138110499271335633619415246001553683971663560392456647157946096330034527417875768983656545453178752127795784520158629659856118200127495957561086335748934956060048972754761958545194791126939526710960971326096212464861119343905358290676532807138615192661284336688717476938573520746085211385118681248793422159452305600331372683497200708728680106324786873718752808420793305395406257667453076631962535777966241231083793424698113616954587784694162935712815502954217927526729507982497669764421781605504579403336754794210331170569611605359482806488414770098557988137543648760786448067370166692577793996543904848080003448253402680557354014059782531560117570425249284732680510293040680261713702791577829790105563385511924567728752023989397457205944320437896667560757386891175054846601662404985302726387345548610678624921941545902044909714271264388384627985628762386293269453105797839430794281213897846296185019581370841893576966324604999520483711361335797257521676909175437101652180138131731830897459405364276954502963576048348687353669599604370899562349189219412234298776503140364075974520015231298453921210756287213301930658937132567101471255238089245261913073558052614602995009305703348526617025692383970673254023935173053297271106248787898591893879712522130875010652542013572350910252745147418904785094767708611142569673429241248780072000132048752556121187943077805685418618090358598293222547512872074448948562206120433877130135018637344518656808050243270404031997677402719333292160494777546325556080265570938302138210889312811143161670866008526516953280072633995510076441411572812397074426845354170224126517039305276251191186820132767792744435338796582729121411268125351968389338649061154631924156754750143689266116473533365804838935381964109056610894520974079956644269886508470678935720254519594673989336166808023478530271425946369199848652425454276273803584978629521855160086745338522058680017523007958334200308399231459209982405672968223665759739442134885269272172410548579645457221918232637731586685262880324104589655519234335394442252282884924650497070106325180344326444616789316620697552384702256357797114007311468482432371581839257558739857027658437457959366500843969440359989437268406427825171505404720816019962199435420101356289434039458960931892530321370337896628525063757523786389908614515818801165561912048920885377844427941601936384260332098429897927186604950645783693530316405956626838386888860076434519516630585414201858128901475781816238451371695972269810241681227119872416990826642644328251500902565448168740180781173130960245974024265620285084107719163381815754817138693303951528422975528773987548744771366717574980021398444664811461258653260017856480570704031020958433985972283835772030637141906895473553697522598454501738053921050727679506925978268800393779634351848628337069111375987701673347082354014935961612453339860982486487146623317026777585795614994713837225917096710852211890832284789531905956625589988045455658981392133666251266140108490270517353266077325060051210867830383104023216043964334492625362326121971051012526843560048184819953201385500447897506286340737768385041518517524835798126258976757403191195096024598677568961331403974556918837372509168565227401969106919254802100484694078657131551877682184053751363101216799494325436811234541952709315527248036036717614907188881693694800824634880305400106221841885566561657057651253849181116408898876937236418426611852933452326111800546716635843838216324687504103045779596143150532247727701382134275017829097431688882236576464582048404521901301226098065168472886932581550102667446941381542531179773211459410882540203444235264749086747217904157882300892230776873269560655836928180541047494608297149756028302860306279227827503081731823103878080382854026988726290836554025304620133050386134740350567871981630890899582046561323454213213492731064765620055069770107219020587559082065071110528380782332321380555132534322343722009546757280720353151547036530881133409531867033815337322179348944514572924375440208030649552010178741524559832798126934633216443837852334238917075136383137608358787302512881092247919826832562776035167526178653004892120723604724678305637300661309910077983573752632650799377188179850689653710238629271443978121647145856931063562137581006651380419112487461740898079903081979545629082616297715211282499297288556388738203361960295085504911286632390332306642586995313350759057915810503679368571360668004401109592890020429650017854920418224100303880880801347975764575292793483157958256016323785796747055426335159777301795052000656561137456171801603931667044877693049918660165621058902820747045017335123666724594204985403692266071265866093254915109520789462649563608347152012755007267469101081381116796426204662080497055856154342954807906974994115810548894823275055691722508787158802322076663651495556280205833665640602589515553501499189159327240427551225599230828280994796206220618838280117472968714253617402686540098960581379617307087431871758860121761338490545667445972501807624327140570126566972970654436965016692136586604098571346456623692958427555392646501336497956083177776885060317399648715200306636358755122883322637526777724976730648633709863579643060918999194784028023813083987484752943684178117839578298036826887731433412966793209237368407174571273719223890379301618894100982813741190200350883405421736508491643434686916010360340940181390908847380044534161756931399831668086090251007663481881030934992425397637454387366342434079452968614180960006719360900540348556913105579329366326608672137979128721878895554605716459655117283165851547556174823328907819761310623541944749776681888414536557750381320106061777231440949130615333602949832843806123761254695140699952418573784432992796335738168949869907602188958758860602470984817286193030593895761182336984671948621052667975216367952086545451938996087927137054312104669620006845834451607619518277194062102918123282278168465852243815669410740109451972874172590599203461747159211098127287021179389692874497452941712904949488093932898867263435228591186792536472865647029845624715139966317125285813889574508746806698768388055308347104379097503860935711451195398001184672339227775831902540190896168774765029374002627852780761852779931492258041632378408612008155489857827543831950142645072423559417639211813584942879790113609787400897449457974477344193490619588292889527185083897111832989910710610104750603322121602201102826827385342170779757398842596889741018397245400389629334651268338710528796044711459828319204334421839636010660017785497246615726752219215544963141251617271647686560410073237362645621009019993367687505327219521670380095421194342544715983630879998480634281885278367161529076198312618738362122878262244415898805908848886964109500470571153517266166340444929704449606876682088905313454409767223489324228460694616320978960346462414259447395467287906166324878812109447675580881088315902670603749157102930999907463839490238346494802919110427805961178653977386745918978427823357283803448707472106516273078268852435162334429454598633809097653422762592976739855406454041348351332417152418736786015324017972645239927871091765010792597855225089058970579870940049089923556068277265491044643395885560412333857787046516495613420194702554683692769092044240588468704222821745224369780643881163608103512928824425902902330165561552373943134003638807253883602210699998652169173925153504197904057447432198232313404560111630958022836660816989469231816139476865848972363924382177149360612205306404141247058066745013197160424647399939578324533978515990024895178312425932605696597291689786336965219995283102846872416331323053647461519031331862028043579470978205034424034272427206666018754907907382079228709494344446982039098245755545276870313498304611207038912592188318222194046144606173335147195860565585289920929661473363877237372466845642712688960168233063754775821252684755655759610519885639845808443516543111189899617578471594367049018574258144991809060415369462385685586123483821988242661348414286971383381983901703379457494689706670300412570146101323778359709717600509640673842658450063647928698301824219442849218069149473387659868713949030573204389221543336897846783874651426942240155564468356075953292521969761530914613578975329554993954027026005978182708687784135084214531623271612704038339316900229729283320546257384745023212443233988981463303397188174670860241713370468378835817702861716350182952287019445410522398660793077147037888493381561384525930058774407007214987785575863012873586390211137826814166885481676699969648912178994059582320966925499067935611752195797566047412540868107675763863504708360495717651187939208885213592482257396545555321346750843493653611155105602098152702615072076335667483228046712138369123111799218786979654299897903732852206194497812772505281120709023545959086263053397095013237017674934633303610228984067189206093823328264754837775722792362311606158057288794958149238367414430724607919192045280449649632300817928553129575997827604955269320589165785583561000573240717170940381513518308293945579749806672938044897849851407514448081768851379574337578044439681089953604039723394951570338802000795225705916754759323551130579413560103396769683933540675289510574360754172380735840779442148163171011579118700066413316108102457250005179890699700234352839207070835848613980727580985101942495700581183107199266203523249614838337126952679966987445508683551277601052860607566154442424346509559618148893034650933735718634040376752532254307921808576510810016437952830987865145180370623974328966113634535704264587763209218744278597633566869821904367008519948704963884205895128305826109543013240700352386177021229556113037163257786066892442288348830880325598913353247113892805145035685040673663679819902220672921902837645457145165283170183643200019587518020167483799037810487730024408732597465462429179115635935317644196904503591473684956027346247451989695938201229341409599889734472126153128246173888886018273056043847773689743173843455551503949340470248299980773777681711873643557927997647887885617252925809425947354015971416783357321908561568695477388806281249098377900652460992692831133876854828101620247432613179470616878362358788080071876486866949632762147452686536454306386430976628647719894351701577090145117602158133865762949129406865055068675106481620132947697878065323087305179706669988391382376686729031173438843103137575496930433673597597023942428012661741479382605583855830795739673533636701261199054370532659638327862136507647740019554377422958453520037026971402396548717090330643712542207936393286362634772955669609038864369782731312741786002022352861610550714841948616784104211735575338086553616755375899781278459573393094547715249326087031115956545808379890356955677942967041476324267502194075722540237053308282999292508780094067593236932118754599440427413776991687830249121402978203413453462666587577219114647910211876478111687025938272870062821525762439420581754449452110753702513089136204336339036321875674065254149528696896465579355857389886675853544029866972311931847951097533597310026278323265047828523229895542716005676660359541852785533742529507347414812286518831442478611276343070087236923211190880317073171075739070714133366185356700184184094574638881325394666186482834296056940036547085725724359036255870336286245706248100322791671534051336374468047166557664665087691463870351615883341827463728441325321360580975078771763705597295592402459577749946770880329297387975491624288459095946268944438768422391275726504130144209505815022695002837364896175144051469944288227349582131298184710406965491178935737787234661882117593914515240019820006948308409999915997285818956387157210866731476387498588489698531897194560328089513592083767182283365889480677448355261290286319000738801204267843499857334833935871598011854537700355569393905933541197129998387629596507683577027134581470237023517595236602823665506696486309266916817237048504779799825405905586325873984966492404760646192135834428400668449698728959220881617903284993586569787923959960687035047581510300832031345770284075334420525628253951841504461474003924326256765289283438072354747136805858077484047356039300086947092657831873155785671022457596034266098354262693758371074080530339284505169037923784995316604140869682541251001936760056698452595583321942952500063589387780432844121844420440528600750616096024204650026667511915725253688599911718732916938528250743081381726303883996407370491894032981312342039576122522159290683366681709762934691664395576882937371724839642668726200702077528897888395714045609374808828902649098351219772104145128515225899595012799188375247524105061368397500631525269476893126965549518689397444054965281986110089140230356458293536953970533975107241338084619669238624080078010949599277541514620066534428432868981888298685240964558560868611663496629663027685092467579465623765277563313505464932932637152119318611501904441473105793882910571273334845553557261345146384516048999091031574986824069428936872676559849868671696183438913653214128563722557730638440708051174508872193345940280498008977472187895762404666004518287522106636239375398304250485399193483942928430037359578294832348712315078060985633648677907127076496657187445276490412270246792336461382623086698887737583373506438212437570987382484391322445354706908000601239171844853164486247659962937169269154825065787624602631658673241937619481155586209555039306249579510474197988010726154554821054698444666926839610165899485595975056896198302443624201871934536749671706275876515711536542299007270687286051742692832976000155491413281989584423112325461469279951046438321061150865038231305082804604111505718834287152846902944165372929978458969761605493947332628293997164062217040796851058716506376227784291731956059837898944192477631970593332608457922138335975309830305818306462328900922955286782678007945207031941012937430929104692726187967249982056814950749312778371867813945321138655140900795412155638178238629573226815620505661802845891538735234766750205892036147147653311220016133398898809609029193698660451966828768965799387821338562328520635183132858452103974394285035397669942526070560736100758482916789612264965228776089751184726784077849241918557604886092825512382961101171365374602341224573279135315203060998765770316772514391729462042778500366583008897341170111859336345199055747772392818141200913081813050196258407339864372861198977894437630188916221429243883739712045891890032907716201943892491387360858583896712966536261558286189207628045426843948289698792828609830463169485218957933833933609424427428299262264140406169291884115146967770664850183319446508380929380582811303904417599128358900210936909995717823180944909984449919148537126491322084005011082120105821182169685852910994213526639343520036862787870455405707680205550612900636547937382840155571574745247087842343232606986923464661904714219650640777345596663938060572506429876980613119179488775996880272849475456697326447943864787124433845214250016547141630272028601865687238974926846542812861819236411665469995221855699958263024027286489382007709503609493331046530218183335944484172308087366556733794994161394896405504991379295164539316450783855377718275729298829863238354771852534560553322213626758211298952704089887900020633589272012524878110990379479811445639234739602006659409576499346198427492931171695184546922833664704678865538514572051306515017963781460965798752744052816337871001257401735728792556976846906990703084502309543823093016214665693478718974976654047848317200731701795068236421157191329660041402964015452589288462788530623561319814301962013231197389512112923655955157734074504049227958933500466377806557522030759598758844516260765422996532554666599316110334872868104603178584883287672914777304231423390707924085574057103759238917892166690747353675463036925501693358471184998095169950704908362966138971327564688221119590005404427864711190180126337315137522491188015831064508559872848970770969794087048232255165386850797122208520761097158229411360054581840461141578423520243451504630529908225815254097047193070412061817082189608681567635147523749994105606201077440786432372599317143371059267271255456386899770409222441246514333788930367047236022774833699741247536213438865480018462132986916073235303780343836291289939991137900115726563625054694645122264509515837517790526356126418989243456578813169528953009317035496289362529072995954944806347080576485118936527669486750539337992631028089304620198930848764554372791994531805292228890816535712387232173115862639731570749918779012617951045080485423090407037005546824706184104539401477717301622871748560119846992694151440420075568109285506740577970548433753507990672499862560317203275385008889051454363556394647512188935688929248211824348653572580748129046482301175768608029091792461197626419343173712664137265532332225274072106448640973741009891895673161374925522888010517255566873610952556615947952992016688361381256724581301338071099339430130053523274397198663071274915039664888309778884710226364125993039690178692971841484745555678995753897112216688206650990989681872514080236430203436344855729380485600501433743518651631451113005659621945441032068049454775950398814820974146050978919497635635410793138171470516388971427765962321753417979696929654531746327871319553579151991739763989332439639118163275984357791859400686722892864462656641800202040816628599749490979420052222001657400898479796786509149795752208645718525764788443239401092470337994841522149201891355744290710010192529649211169910332424984421908388602018680645767162665174069842255894102366886217701973167232530284950795012554622685671120219011482477459622719585827564721787197328524608959548625425190739777213811806467774061532066337932573073126619010839673737800350063529793035541671127064976074373394698413510890931986096230389895496502343487083226116466848092051735619913703412833324889879858989462416119781271189257763692074680209364405814668974949141713527298745945227275053667616986038034893239266525647959428171357066848446370407740806210988325112438708641651416397178094655378074071907943546124422396906419231135551125582251745789653745820282255494501764912904074229544055166336181460208639096044841093812340071485550259825807033228587451247181206212952181477755432343940828092393067399137276472197335431345450064042667262809540351759971989242987998364080246607929076066977970955004942425414499036808337614522727212448165769272471031597706524029140073035221349085412413279062913796577675306676125777828401965535885796462552657615156321802582854346021092287266587589789550078402933292981244816786670129416862538742511304611209180221856605279596296643193506830191010326199073799195229834079639529685352059632204973144816932223572089608092690741668010112402772138429075036914461352256760276035501276443676170434811377849584220512792710474162389277905109142117580562683489597653875778243865330183892540157483949821373881344552371149079559706152964000403741549463198975893695369004182251021474384820999247766001836453894055801090546345212837797358297065136591106723012824880496572601712730405714611198724581411060257301172585151821299880551740159006472267537601994299009226909562877266289967884647904252077799909402180840430911185036376120028740801324961635125208550869660808329537582805342675561607188676426321111965120190860402814874109415597721406511173766612550354174017322851119776630143212995054480708700724668838903662140116151179165092920566598536923304595521788561575560728638038285069304200240012885212637869950490177918376212333581967941221743487949596567658718288464085095486533629564116591085015800446989137219368084287656812779777423508990703812764821982010303478486829491672358857294513530405813489368410889704378199722527004115167881458324359548768562671835637386700368139747294104459646377312723747142336125153291093019630454231004041219403224676499083245169265236905658032301257299115609430038454349781203920012978343676372472181089613984051097763498871980942428669478686179175286993498217817539655032449780301617617310511623192941360524241116051281563115982334708928795460528241379526465329309175870076465188767713585474296223155883653620063569586542514988148362711140574249434566490692914148955883417866346914148182953699882105090537409497510285224165332227922006200083094726060745582246416055968045946280728037725715015170095065846572841366333897628834012393844526565761826035503164395130618860324916398283168685611601622723059023343616608683658939060436180383381749124897323982545903945081929478957945495846549500334163009802948234778738863100250232860372566043321486843106648155633694892924925217153006329296544810599343360607617820894623681424533644328509665523848769811766922045533639824499072162199429159489863152907231138527781598094181416828824831211995715172436328229006852906711954518654722743228987504340549543483049787640272848285014864256356191348669210363462947123583837815097645210690601602905739812693291761526033711000873283915418704401975036181142925149652162853687884332950302228081304508951978184432208629066740379832236790100183584617259657081840469753594785989009793930648528354426492676673237807400540386079591802757921372535786271769440720368091549759877045541291469329540624418269258273077988574828002325687725339422162373855943602326821249545763726558872759904935748255765682645484548111961922314522978533992982589737976735478394637750754268037317253016058467334376947382917063031507005001240359136611948796566934745922767731282803082349644178749183667815632576611664180793924003435193726239522495703911331553548969368579136455492360227951191006362622679667788451591544808004929686407593157528489640539099587021308984687119577449096429227316322287946578656481590797650239150114585723455597493495956075520002059150108276316302179444721055723517412190587841804876239425094269832960156871796119996480734152910218941110944676108532086549965636468426139578951971334320272934840536290823246160592603718269646112355326249610585346196460876285535550596445411628532659847326597949835836733491627972525352077673945500835466381158241671183809323441871806880286587637600547495132848438617124503111150871602243942398830083981931096601318201276110866001839291231405169180568035956474100313826947383016706736536000155153003656164344544177110631071469989007275456313413835251937180259722538637319148842920109559068830161942481411449113551840173462112538755793134028360362073545015140237923287120082425111185402724418190303826360516673822612941661431408150773025174728845591169335880213626119108986002624378916606255433715040900050720747853874169546860462114090845966246726810116276730188722173095899877643674430087525400684336127407273093208847338609394771021576061983478031729927043718514517694618224721771385852619649139884257794457448132456358350081523983089423531470525214297071152305321572628106391545303508175581736327769617510939157244926079708579594946846800726442039770313083490639886354317808719708402525698035929206804291235847135137756830120572037444954257299671222595572578571964238844902455099452593489661554910692167311093737051625033988990564251903816694387712662815084225873882127905106047682579969008576185040706847188211694177327295506708040312087118657124316968531183785809756192362828252504794727196556171889841727511311116883386022788871538368261743186947251390887697596405647769844661297438916970143428617025772073457851664179341076319074640714544871774911761172559085422103504755431492602062799568520938628293015394669122183655898967024447567740098256172576628635973638284713368511762425871376472917159711388662067236764030516676883517368908423176984095558101898828494202935651428835637816435618302656706318858400728835766923898537214317564106027235932748427577773744944610696295123693889624724725486275145908496496879040251265775985848774280495739313573159537106502323444298003477212981779751068841712414405889183441394245528388383368223444446422260276497621327998326141801091159911755370232384958773747565653366174393835860507758121578114409003827405391514787974379830249756482133869470406105529829740050752008910504251467137863706244507149247400038848316751079718214327766799433086311410586730273130017423229471841196353772714804290123524044486793992768235338729347118896500881918850689791385230682576797994037103537328862598707854236207635224082359795819031172528604789992617813545717918051861433545450656435833921533522904530021066025548758608569160294720728140211270155333863721054347297078653142534837058869455737698977857290541214075118598238546471628424901669806703720092050168166080427518948721029638539212423177855383829723150583663031937189785280092037535083573910522077800331751739759100497303165929903953076161368966381270727904050640554159857900621918037333363930111560973800728927400387894486913203583264547578151367289281441103890554211033588102745327201994484727637474663910474778336203554081646848558235610586989655583508479938418524470997222123267526121635695926722068075898558846630017217497318743938863733744809947865371923567707405407748988373624503866985148137257765843921145312727542415097424223318621828091849697960624220588911492131632207165933095580860797147341797102610544136503040061540084513374323175478933718213001379895228947331083813179078464527838749587067102816727245758825804913790061695965705657327021742677196206984472415300013524933438033998455419982661315828301199425399896651697785452094233527064126434717658724264882294205432032919499449856729895541510710692766570828397963868372717199957287906059312024574363385683020004215638282947134349380880861441002383099727107624844198863282725997911349070882131605382132717065271747452442326785416604756995716195046523260821936697053203558089302861321943548665481709800196124500099021759310020804269078557018844517698699973552155613795586154113791350377948150836823987269864142795922484566398116752491291776388564631831596283696735056262186045145842416776744734358766823175418840938140291704835449434477520932874885913942989033251045559667442039968180671605218326108108207420532225398188902352784982812480182361639959209998902560805992385370732769585397603258385946338779629466902857370837736225842486685656700846436828032254014429701015330634449106415388384212232011831202789176377294911473005005853739000437150779757194657379209993498610115843451429429391451417962807817918568684897252039570407202656887824663214926050489608318547497352917823611858790242874255017072817259007784271813010809579685636823501148656782489390953716871516401781212084290794955768011464157282108860753334538420698252573705324137198840476115984543149132932244783280463606465726760115846752435816082302314860326250574421331433223272085541390516507849289228483136445727355931508389955026004609224424826827371811644152907682635868758395736571822940223748878253053322551921749985158524692894649555601341635829334870784327447430715268787839214227680135365036061097489255886220965796959502874592983245284042476333894404690280776042746083598635175357807642358243324951561871801416057444897862895727166940937741303159401619134024950827302138365984112356217338183179081038947916430175890186846379727760574566147713690015194718265165222492563466464758698471592208972797092351478215170588259570069361146981213257448480252147228108282922808122294560779003635126027872597083711166400221437843456919869557561942221072444765978487072370913915982628657112216788222952114987348015790010231956855209975930578089938885182449682595269100981981745642514125903926988841135436079579746037499505056281279951696585622866368588034773767736429899244486206570219710885016535073294063580185396527230959803146544676735781132761299134013880228263007921852888631975059673125097668241048419285484352878806912099551409132704357689662952454413212015950521446002856608955868579684218113374269722346943634563063694118041398550289520883780363968599285100928132560667206932217874310546538501104547177665218431015661995083859408290905432238096399855220306775277236982032171282038841467941460418862741628364928571522123750560501210141034360630588531807489801436358174508376196237891695811341220990974270085399726974984686696373241776762068372694857110474936489255578454621621251681361300713721165500326764618037832603982530223423335656792040224979172935804188998724015732792076554914868229094804573365343725459645196554647547381875642109896705466947017925180917092094709622717422360386947177926290290932513889542222999547264137334571740376128193920350329418105234708784647681160098447462953857103014399686773165125951232759040754493240911251921642715744248020914549099600266599308604586093584187073646631388042292896512864266304824187146621978883586515320459323939166143925728591412499331102778075483476461817327611218963561164036309119913154545810793163428728922119663810939752419364918928345716920457384569734028716004824363261315659799975153951976023327481065451978920719289515607344530068424462434391139040467347710865002554539536451041367351443591616651066156519761040111602144957020874570197654292738018735691154010426288240339834780807709025879018726607509784792034738111284243233970377216513567702943073190373493669082822010018589904395775610492592250862111550154014312904590890969473086573448119071915427255497773966738380382257218282345546231197005549987108405634174588053935258788333301872939322438768799775934280710010942318506645440173434273203033864205127483382745433085855077550230516659573015684940779059370371500166107343020852074190892658368636829051359716898672808984522092511992883582693039098884068554848473944759043956392483965160393350496973813858186216980548024092428188060302840887109112048371384399582538390858756282978218483327044086259323061367942416921536116841586130530277436873829150937595262557368424673826525157077093220737601294239459413930725544982626982663766725880822032433993938606275217696208800306297874487241894796638398444384106820926848361137668116422118471787133851202904208110636986979657748533177706062251225803113710347345563121718118179433804600935946137874322483139671630253484844094859055919190773950105305091209817974923353558853116846331477323731656890393470439947319278944465515442473995684201852548143714847840589520148580407359465740875200187807323966710897915802752374796793172924271795913464094367957776255478843964924764327115282187509310252626330546695846621947316815978352289878478157704661921122303571996654152028754278646294906951961866917949059247927899210068255140132581494270497884549254591399439509933787492214244457500796882892965345891864631309113898213675708327694101949700970617091286077156999638071399689061909529582238051428610763418928570313409768557016663870870569705276911957344198178816529541352347149878278422483188358842232622736662491629985802857439695579286345216451330529980700585350823999373204718996904118177056782796705255328557585802988331664745291587014430284854418361911121549106927158514088101925970367464795383113983646159623930760294518653310670947960791224823805978849539622302175641262792871153220001924586384672743776871099428167227793924456707765167079963209480798121551024975291972785272357476865610056759218870998802256394943432384802613534141199263203740527201036270701271379122284416296226196621911065456845416607036414069245626267687941404610570540163001201241692278442192534316787168443577832959330398866233729854797498983834734336984915114943917880312633316450476989808823459710323168436185145942810907667189666719994323591067808203314397543163614209897655810810315831790162320164087447007045163046106398946123003596365846327083939389971211755595135441068304306804119029755513680339812770077518602917551116092313739773503984274618151702444780653087300887825612383800270868982225637512399275123597112897813813196363395411140300630845710397897202780917665435950087528239009962465085017877315661872225690011968032029764105136054777861344643897087426175647268401605292762253485302024227526722735932864762030358881513844761550611325713578946239119232010103325303916961701106472288841383789808021617994799184385798732741269500229534796927546408064124826972627745126121942614820676744977886988589306598953198901755723745192609906819313368160589373941343405337385595564078667606553051324834258635613474628958192079961726339462312461340151850032310360097534127877166996929842727300789367043087952739768864432019678681109112501373357318669616887547715034373269847086757613958252902227849534340374407319667227111499684313978739336066660479575398633830445451311916051626181251211666974588834902520277843693313971982043541733596947917576608020122257550016594022604583574405897695366572604583058552200084062158457922805667440900323875050098755841940176919534307699471662194746547108212735271162807648179872502869093104076028491703042255556782970571326988766702344238007969347490761914711866320518953573416917701204073797011475088405574527558012928294964743388587523540692908591615689080918624336981003026623080032867991592161808947886842041813595993186881817150515045545873035261439188463152416739502675962019326848854697790773624943019829093598469894217843250500524165259397689798442710594817389956315888894149551238178187538302305137857308115946689005338298846440881000629964408088147669940137973342342530684892969856303344630436096205841728046198553280954178157491409973305060893078192694730078589634450217519997050465222637782113877883933084143804006779227622811453504615603012064391767033885374491287338660346959314152082938655577853382853024808730426037147515399374913125744543987714809929129301053805245681274424069097152966812602226226898605604508026740755768486778958460519398568710161048842453912673593949428312222234751345629404104655355939465152829988356176240395653912884986052478851372238577278861198220093655057532442389273748798861116598355625909734758543679770067949137722965910628150083905211570640833940657959663829021709411538349422774169637546045591049247838916322206180317577060952436811949891713144427922630310850759765126984757878238003635174186921873527601575271348581373916317084748087994266960040972433599037908196739277616231192984929855806513050360581510303075592814240694447193353050759457032369553153124661772191464657196827417595767337460046348645833324102782339105262033018621685338348239049599922890264626157038908011139270800140569009408680560201199416034197253175821664191864830283203686487412332984612705631124752316598871616795316401331837344090542636833657161602948454175316569227557330005533068022343784870069309405594643379798326637220407416877477486250995400112447081553280760854909784490951427955505194505087627845716138171016572007137694224800121347365628556281764624054597901972613422793919978899968156302846264372493118510383516341277943148985130189451531316839160977111011188781947630341904372791021255239574238285365608334623518014162072874116728771032261844758161993300540327967232118473337127712201731885160112429943601217475636133320436565158933623491740211088825167827451532917390892666265359268423213891923379098442078943277572003628998077569962005701197455322056242713973610798575432841956270702091893658050670594219276915904786540235522610684536567630452735614550294838762558827362635346142720046783718786202703051880950100800328900732377927182423180293596820994004987970406346310414844509016442636875629761111022208310375414954221011010958855007362264937088264403184997396442055383411920998592086579181154023248129300302382259162679410198291091577994796350041279220828933192494441927260968960334370653610551595024587161406718114214582353297322045046488571835714674434256914454658059675018865732650791260569137881083102758274214635833134638340413296327479808878027794817457941579847547963745201086529733669356234403729700268748285313703119414727432089995084807799235119985821043566732164293734048460618944491477513167092851221145307878260286779952831971138737378397291200573925069794472633512812807665622227234723580373193229609911384077779595573610152657622183378873995071741904255681340832818745535033510024454392319898470934591501738778997295785697258333648551935702857395796113460528698487843662059762614546727342297214514209935690508001532581843074542340269538373311431716573529459449868676104940673342167607965110859303355814053570665089932655875937420131807362950582544492224716419112695297065266957794087323745776573737057226707571605302955546625698288591764515306464691421688970235866284257725249223281533939205226715063684722331982670572973811956747999079463080215150420269945193622386602545979507737631712481450323781845520891405772298789892489805753865132864498036285223308912450449162466333767608762150910633129033377097323353941501964196594159139370204523318855457347944875723670396874504073869732754396839105601968883276018036831444769247307079187056921451035883823934128132336043218472593137181871813461851202163240947073798999365950573449782225399283703319292226660326102743212270745591157590292932152446336926587651232437130504584274335942687520604899376019293461965366658292379818865259395450722579872216853651901858163631033507977594837938312355745759220767449159569030289168853686707599270806196462140121682652391387949535990533831150034034296677196617266945094523550377663414276876211833935098095290470453267217355827295658551065342865260261690108126817091438320366543487963756945050111827196922961386733596059162669422154995584895137632113711958277603220624649875909875603293514739134174792207220942990530802382629677290717946333223907742031054427133034853085195294123674940804744335224835089324428008314386916227277542052017222485353538274447898264448962357697293402642943547192249968870157328713466892189227612411338382430732575706449843566049244273226054320663329234181528857558077633073767139608403704700468214085536417581256251255134952773843199599839549720029652891950580606101582045636380146343161810862589303208251171809218436426434685804602302067863302833485545569246135866234469911801453419992385092610951517144038953876920623845613820698698198785134171495562674038927424976387063923815280417159893833876245737025411960921208906639996672412847140985365324671695540865449023708759983283271732056007434071022265846031976350389238987537753689274356656708855439862068114581527972794928151115898416547983697006303431001423783945661219403567544144412813265437235276516478728968671503512943761437782476153868451174991159630692092934170139964700432530308916907716931378047453262214147085811649716103157461256662642885690495738748853247996660494432303994513011685549412209663534253618759390143113059424529131044980862520685274656093605407334178100383287703855062909901774635183571270299017841469071054383666132381831707950832900911074456439559226814075272602603788641736088814638676610919585880575894537263107054746626112285517518324464333047369209832253702828871842723079152562621213338468540732734059216022202191279570734304955717696861871524703977708524684167875711427254291819467108768819634116527105838649392679926595100207488883574408963686917975828847669943801839618470351564205605799866228739244025331381524016790210056342401002962776949409677021822972397498248774655312722049556227835887262483400916877785419614128771452173525240190643843949518522393737212984847327861678440017879524277804655381422135122303613510538500606382192897039017115610364449496885086253803511495465709261964861121967228842538561993295006163292807017539054170146518485051359481679870769363411392337887882672838466925369402649404136335125535060310172144417663338600107885299657550255991628141194008172936424901481372192258453395524525564896092182179919005340352689219410108305634912380448764401818056412906578593082066655268772087770612923486433523144193935812627848464916405885105433539421112746329949948643150547912969094184470355456886241642520164661345304622024399304916362125805603676140838267931763016581029818477255738821089061445295856833745626793735083303556476440110485214301820226887944687003092762041844480018783141861566283754627637162535653025135024770428630452828706767385001390834922252797154362769768671826649173775091138341721810224388437855868003489857343195851781945163995459058742681021652831392871583511267946183036212161388466214426749228993470315340619757183704798858963618445898604817383239778512468924416570693840111773398360624485163415382600392114387142736950067075124797149207034188178126413551912990058598020264525790122363796227641190893504737234583485656686792342203142726018253704854268150816580569185085134768541549347557049641977006682499290400832742561157494414548324585611347488629554890694449154567156512270911332377142005988041035044213116839321581757534866593488431774776580643367821765060701406940706633012733351721739441553494280099065838350685861630580439159125161772075749278392893124823496059872767747302527398824767662755293235468559254702941465908124817859016851178730314067007539714673926242050535052514135339835711717322937909287170310553576463903210281681044679853227206860038660195154929272709430928857427125718979683434670001138590025451223557764501456646682569837185697586080520012827594930568860760977279838973160973375256970976331821698003285427524758612084419079568943200598246222517666725771341840065125087759313880704859132220898334208211276128834865179310887841070792615377568247210213878274277236199984957782166198969632588058203872299393265221602776944987349880691146191220384188758670807901797302013647839669407250394127623660912860322310713005380966804695659411288958325704869032218728941587895856207390179209758999813597222273389946762600367928881014810951689215928803046533081564868506412620521550119176917375597473372459168262967702067678822376823769226190491979252654038764513457084839550600458364572067769600674684779075670483751096266605107551025787633773695606667291848484739060463087248842238630271895908337141421308570496631879589992938193951072946018848900088579842516848228231770698338934258059183287459732727971024426976447326886823471561836594988898681387482858726273416953901196925288731392928639829907936828191641219753076909403347084207636471995004712040767763521249331405038552858209968404919421104801061472857590885529976132366035774792471585125805297776938216807780060834552520079432189627460055783516770084060945658256121224210304113831950986148303586200777900467005749772249525926304065821284778034529471152378967861155789028188317380134971546043450709895213453907575783581822269254902142574841545312292199123652983804816173080477869171003911859833504322713002202026758463297242230081935674599411845865025409336697216393100066213791258655540371005118858837629258279792543667918310433659190083151629732261343551203351796563696163807312902119302178707474561758843522647042266262457130304945400734396019202876758231090059308456465936849674052725871762973000991792042547402439005793783965106451519509545854617770733469338212701979170259040555582405392951676400449653429297993119378768287915501562754015920315042604890720233854694930918302147818240276780089989364203136722444254390761705332155983043667564021513820246699803523547177757569931117669577045419959054275097658508689502247880025960881466738432407768096027359146548961630466269507290238949127541764200059051739064330138993138633681166406534478554096186970595564258827470978572907135351233279623167108785076208132993014781386961957169166363978290199198235394727781510445367783008946188710572289316469249391253761246976072671711420156411083322744536691479187663198517575247957050075142501395180926158586397447561805868901250231758743389869741723285786158119750759613581825056043992901944064124181093397594209106426442386346846883034251281380957503165960617745555742169037616657227755981385753092771319931787918115474064337622854760177655470267130419169596486158617246590635330533513206218172145289756322960068752838902318533921821934466258578158042730664435128699108928704558182110038018751920735789833804211690878808884443680835686262130932332735817267979018732578587236050363904420872549953085986823166322686556408349310689601005509085480602324069100512008699777275513557696867655002433072589446397043909821866287931420735939833506275176280927420242766814642563752307530474720036337330708958466627477528855523137300398715661993835450479911965671630179397000351027318076639861153584708353137393233889668347841085642504034165987892326445185688692740774735055465954318727322063653514019518564393227345460936463587085486909926967204868087654552181290810386358564632697200369693577701953534579970050929260862186720379095128251466994302698766074351720764498102777031813348993424978439027589640878616288638265569421391487008148289740874390481880779145842533113882188789047838877258315321762668891551354739027193686701600089751829081039893826969433013865634158283263359994066767769983432223133036806721962546364473458011328130279725633723831145059694568734338744164017953105715780316840070673750884917320109298618780662392426900989752322609911421990371518793493918427191321673190501735486164501733028277689168902627248457982744064903322197825285901789272764681064987940816332450863466146154347179441558233440111208430527878562969180828175844442028000767526065256787567917472166223004879324276432951637939922595923134636418523208997538841387389086423102534181420440813305681765177942257126115382396884057158646860046277949423632904006338818272243135239234341905088180564752611828365690404596804457928977255360873999926598787948822150533200963687064910772340917543448258966948051306968885521780767827945111961058919685207143687358152569032855703137815289727324793572084099330716524667257070355741946451834970622509299858440029715330462261392682692249476444572202506421981842157082520308737870990742754126331039767293446715118131635189203079504061537962206118821322216331678511531622164401588078108346757225808441090895527194888858098616228933976254042865664305603094392879618497926851990564295718916119557974970250400143550959203614990054937971307051023622602236206271633669564573727269085197925222908151627857762740852796022715383596884189506410899602080711981838689804125315601265707334387328939024222805148006658827656945424566246395547561292398267116596687344098625038761551819048318975755639869613586648659839526623799778389682937829096397684652140739974566692297089335224462710244511659822992347695203345946591277339818298471389174222859742339981089166892142328028984975058943799307812168348629261399593982107021249933443468498655775948185721931050417043446078073407077587023058609499661360131389248441623240878593105635616874479563955259714823915601241620293918082244631455966329117056014833321765158483432122781955965656015620779429052575995887469779227993380906437815440129035032895628953753123093621427568937750825485145759010571801067598821889985408662138260652624569193871428239467719890083193111388338349060540259152903302672278178066731817114219203356835969278852355159108564465386931235243386666357110860773594863188675241155045073626469296499866462889778709383365710594316676533341563166346567377899391270062906879388121206459901285793881298048246503194770188717817226923740853176462774001642227803722572566077543361894173991272374449601969305297658869584161198056936364541124635510223218864891338847471632864120080472735109093293620419585788142268472329317789994721600038534635995737735289074013803638524622067716033514866069340588235907853007622750177760986867260527204323680200553323766970047571101625723234942419470689896773901746149758570767050672324053331312674809928588743659733914093184797154440628341876876715868808160738885546110190774574413908188835734414357819501098099819634790001376426383093206486244091321763835076164854478294080243997595769599772924140938052370898557350975875875919040083046399002416255568628730565792749316923550597641384895055339876122902832604979626316014402414211015772227831044853625604183306334446493926721310050929190599584730280821179215485362296409933843090098962934659741854705983197286451658353972535349067232261245804128706169781555519779203565093507995175069598359420686340750193667098572213655727636067325940528495443788436965419772728010155334276874784151669250779849480281460231253306816980075573630941616716865461487962139968748177772992548048887228659079975924613130176394504204824368779012020311403759491974356667362354152204643828426164444204953081739687089634283247469151929728213222050631117353143070865584607854511677411671702348670836514825792373264775505525574664738219791463143202107459470591420841574319435673505327983140465632972258075319767916071964995378691931324488606941205265494765233788399588945027407063957591295043601102598024147588322165288266733337012312072887064983481754644229015378270760423217502291385787636236591690299234051336603624628229003495109816500950498296442760138751804307542336454468074616932124766062348599920723467689668300983885782628982957192618842108076411865328600980923205302247801822966017764883799919617278797664543590708348016826832697341689126020888447717960848388321522473895093867338263917863977788836332553533859263994953052701893521439147218802977637224211648669532481177342613561336209771073478220500366866913297975909009899917956081733113063709572275736522941901970225250389844913252218358193907019481488663032248856565786790931873729133558027273171430736551164305121945767708395017067166014872504913622742116095036957974903078842959276824950617842339999383854941860081418397261788786989740687358331598639502557039725539758975670646411612890232497059325873531511481532249871004299505332038289087168316308341962574993200364682989219185198679764537110613634781456427722701415472681252497543961829503242194735623230628065818759634963661879600184201211371224088324327014920492124103705197852462297560252642764944250165829740855072053642946420047490901557602687744869295549506648032927926660619434324717371130705622504772377755579858255232561163655134449883745951601026802621236822580511417057738781174209345652208551025420913194912919755759033079197557552339828424076053258698581047982086685795366040873358382353747613138109602175522415214535445037754891580740696401257653102038735260953159542118273283148324308248397732678332582765567378228722886071840264350968215024254853183720525110804269191627041487579021025055261924267002346801232275844744247919318728526762886964679598633337533869191657458323971994072973254795159430481762925182664233802787843345715970098157228515193974950551221880001558443127617516676636131229501719911215055634663901897438812472919308957962843452504770835059266047863530134646028675159383588883465941549561051103631248925071004931721879366579776910488478794384708724163940298041030593401778064923285270190341035225897476303905353109919169026977441208159390076509062350009222251842980623301659337708933905360643500607898357383067175954559682349817477541777368507651729715565934833025599358585895921422946254357923350052147948731551125598910888817627573424437522299281735464647585759360977876080754038410310797240252698644281001193568499981793235160961393329068057770716479500010788281253658119711182717702535031612568071301461275502226658587269453592721681361051399609881568915963461270568053286564144986264841833289560823773447864692154448310971683738483612220298014993952457402731161587340106501672576831672350059003798048761896990937130852118430927438999447792118949079649658238185795447837465931595424435353280527275755251803769792824186289671397088167545377407593058992462771878498819148862580882735349639874804085856891550082560212347581759027831863828204866578108674302215887323115483508228775724379215487463751261661281656661537262046629295512573768254150359747857030005890416110876064285603007281106065228300334182375411412202881680143430226784156834922479526175650031208286506230956660727439624501464103049667936169153269230905959143847347922510630552690568515618761386275365367481510159176042726092915577390990178566147894330624931579470609686176671391942347238131793256947697230366122915404685614635816555974791768922265456324458966080021171531910094163932867041155465913623367027075617045657044483626108252986294065564639735876963570207683691621188290295712707353402733229373740576672287714719011066158417181492211997155938832261072184214309484474468731941152449405505621158176968752729483733881175281796303934232699816883362916875008597589523564003953929539234664703902339511333640563608028255597103033511824514638911694004954342957170348513492809468802450857010406097943937752314948694018540956382458476862642481652332882842843906272712179235289562422169999517637932076499097129929895947121759489700599767389218154084592035305624109411155117796302895856885131210471824385470600747998305824969484629069399146978372837352297147311723560560098301669006776853142709410759297744756151705389545074431790291826221806626009982439891115922766329576390169517978555403733965768000881516791282941756102341612033648955946058359169339038656864300058186703710974397488174487024448092019157851173557827244839425156086407207864682754947253160131886724251565740243423614078569368218555389027367732103528288003541417180437417109400238354071546084476883241570664823362212437058954961938984836411698533803797567327185463178696151813287543089180267454000063105246442464663048892827729630670666368774314828849562614274511223605251271569144735481261007570263133112239585270106426084656890368307663183658353049180842571991104575470814322087569074768738382731117074679453080882558845781086971384857502366487198646014125941167797252026269681535673555423050197202650602602314205315718668231215269228514379279100258250404937600543838257048408521614760651485084496521892646026434849344395236982968717907365076357603792996767244264723359465906932630838320621976874768890778797818218229716502404044235578243316056592583012274775597894263329298340804124717903678094321549682799644039826940763695948828683716643798179581956725261582725265310809626981474215854124766948114504533251932406068335390910782034088266302970605410690963602290771785836482941824946249025959627001789587006764135928325581985334797008180225735682321795474843122981655205652139479408645225493827473348885755858281814124973330942877126029676301587271626642030946481880237042509412476354637722304043076663588047098640069169330947518105828667391066554341927151836126668955871618563981172494512075380766296587122368621194318787570660984633286397015032505996781349474263970454089466856319127073460300687733526346091915772227168613900174128298395268353976054539945432033240833605656893183220553254908908448006282162570520716187364333889428419488623908172197995034394233423507590829006299701085455978348521798816963461818336102543213416470965157593934637760922203607517718810471248832246979933566958848668976951907366660688684089477164391331875996013533697543108434301405007662542284799660981505790639921388317381055896287739028250688527984087160723237358387070692057081044922964084410589044238451802487676319741331284088313778052568407386035226599987751667713838473327017143638733370855054697761024464436993075517264374322321591180034219933273046515655658114246761262133943907181739575755530570162290362386725536013120415247928607753966149213600639968823701555798826088420469358627297172644115624651123929319577594263399156166294898262153247453007831735951178769166612717817221271639026834100088963450459828475050899465774230316646719511740389419501640667638479480259077817252911697722913197931546487842482922765287655822595933412997980273315193012426523240283222094202633235334614289397787648832578379050375137970847888493925273850940275479127980550631551777909702594453475063851201536920881500484276835524673024164703987943468418021900674499593163628192981686333831751182903643062032427425068799187415997300961460403286387289517158575943490779878004568944913541458298215012625149350078923394820980153710234984552198153076388203000932665357106946572138838635923686334306024951336204082493631262395680155146777892816162294045314794152091248720039108896478824727222030880235196662214914630194726554042192842657003626055173867398783472311331112103499350107606591234379540573135951018961063570351483172039496764339082150355675175976943247024538050878830096097114037414179448723080358504779190958624609280292027449424290273183286417198437046617355245782778262254472183402190118443913944187638064297882594901330362747485799875136190798341027284932293320445650508452076700186017810437558631995052936809740619579116602524613569803486190047291758805567722921681186567623589492325757266532776278194509009049081869668094091380093189428339631147882699437155478109649030106871644485686107017194507493832985505530689492530886882849692059610379751800434261130810481830140451536484540333042536691782155381201746518302999812640536166734030533568655891156644313153155138931360637096011531007496188142123638270713733553090012908720863151066530281238059204969163069084889718614872950122636311150164575538170357318810627893203125233848022925250241579806413969798832526607528448481430288243423659642521676693300675596039456151349176431152413099159644018942285548036206226101113202384444427293927596153043562982238393648502912613444650845804684819185435417988136955961983651292977927449653114047415468488025863560705675431455908602823569647113190348841773833863289960125175442490324819021387916554020825395620028068973617678405512204988964121110687772018803380697815048307235527090882019490055375259607407139540599692120992971811904777136138715077096999112305783756968101089083262433973707903834772161771146827571469023668178643883364353626817741772200099017530880075551908618636094652679996974050682974363196923328049637521738011217348784510973825907741135245372848401017996711370070749599801352019352369390629866134045612993495982025636946713932594418679917764000924558247814982908408338998130907374565786603107645338721266830643718853145368569292008203164298675738775051780010739193212157786271112651011142642706383895748077397627857550709677001621013318078567152882550344560837201209950830517866726658398484955444159765192465641595503700064576323464804404882688521488971680891580941481846038593871398203619337208059183905887794525455908697486452032040427821514426030191694583014003862700720620841892126062954115520252973519064227586932860648913613748982265838059296406634166477445655963296081393031165138029672117962624456875988149381130065618509926840092337516810318805638570633305136597719210785646781829663051764222708210913272362392197433705966402637203115712501087698592765571509515984459419084136744317129237860498017779409890835693829083936199696761387330180987495897022743014869795176362378258750503488502220334394992755418328729178450959834727873000028568097756858263671255564598816388534830444902877851733298885174048232907152121419072065184260135934768176753538745613761681584888103043556146745280109504983452365669009273474070217928648112220386514881872018918497012521440129113071135898015884570810399698792535175208042557977467696967258977763663250422741439768890936019813893413683867094310273298115812919202123329831039137717248220318621651411446978719969697503090956897292782505071554043846840464301692929693713643516726034829401813164021748006037790954457742934023697806375129562030292346627731365863741546215504153693953492152174879203741852139483831647907682010988770143537432341262951126982415850436217348910466918955253103789842588916166725153436696432570728295081098711925668837286543489503096807347549139248949888630975680708003556292411491199095372558771134005034170009348035437455510011623707364904353543357503030444325079464589461997319715293071318152462423030922958337112978187619009374701915642528342521148929052926863146637116324752057571443150910965096177445270573724085032889284032145722503664659782198369279423276411376434574440275242082958383596287362273951260741762593202043991485844918560644717702208869057088862028845582396389830191718865885711988253177862980046661671641115056261284284746725007349445656015662835035899872109034304161485935126715306244060928292119378849523480475214095740219740401621265964016936742470302714953069584296077404964415316222663964562673337657236241913903880399008269005685514514409596723440499818117945928976168123799542988825211094051360851908664210922658411392305734603585452579602733726603306453451086725338646608349678927614044632069288480312242660156725122568345758047149544482943965629627485498183941401119293405636512618363187931125366887595720017775241741223923563377455846967686796254621112880673423645917720386531929823895470061329427609384320974732326844740966647172487875931611420861907417332740217523108849098651176460963911905738048579535136137561546130562383616608527041947106238877813503269356822504953255536335872514819780520819763072251488558524942125361830139769075438434336632316458962069491043187844400889330752420654184212848165356337287068967991780425460427636538508297807778259758666992746782788861516313621649586483988969723120891111912021322542056153450065656236879479865124236035314624613327418088996154059234839281393426596306131269295699678155581871620920566321424391230525092992365769081953444047524303078532583430262280327944575717068252964381300252981826304008950089074858692035481382350799205741558849919578606608344185570466659206875991877786259718303347752597095391470705135791715232585175403913000430061888387359304857225471639658422196439838442312243336279705341733802525252917698504375166251232607538905291702142844265216709710233974918789347823078814368205036958385854872844069213630860947914771296841586813436839535063578596467897465370666548702749234671760358110045381061179960653271780105335368422820139546686641545256000040476224396406386101154732441741548146010580251264159365544611589993782744759470979912694498768208414943434784644209903803119850728167363313103293642694235902677197309372867749693098384274787343381072730434571839326849026941473819624445151522363852049837107319901436114482374295759751675617037088096006602693899360959116766860558721953550833874820143833342103871470017613255538240133400686957544100665079729894820679957313541795209731834516888793205823571447548912142070400594495824855829309645263750038365410516840755199142665678442997892212774129762196792690519186298492849998265543050188393059101159343375726269900992838947527500357030508054893161481290496406740007584273256380810355130090204970870718051483438796736847470614605762749894160881420644658564342742879637158419004685816865264167344887174616812640524141661925292658963096411954045765116206083867094149833176215357830465106330725160393526872237673935729946578700534582642068220791781413261272954447979742147085200811337042894739347826016953687098959552615577006909348903211932937267657419370709307538384069137564166192778668041575874483153325735701034114331796158379299159614672161666223966258260900498891587238997933165683898433450504361688624706897262396307708089056866962201317869571968213975482414691284998737150159972839441985564185792845237295121160884708154942931887942713560927817115384232908777914285460616514247819393469846353795435554606853141386698039101861703626189848307252977432813042229812063018921223226488470197203329952616244844888476766704655429933697225231570694006440143614123115915929402276828021773905763931509926941160977157735691844544712381145996528393108567960010186799120319779823960788212581485583045624789870840008205566607171728714843869345786382312878293751368754043702639279093499533193386841412962967484643128118639102168016043866827337041408145490405592833269942890460131742975261329279243405730498440321704953792289004969968084135055808754939426139337386272539834137753896590493915413131485027241436748026303233379518752101565922448417613065765056135461812374427892424209132678211855541761946521775421867328771702084384238472003959969207257089945818118531531865789281354916389405086102700271884456328591436794074665354466395000127857461822168772861260298793911660227860354401856786771122211924345817986862397188454434317991083589103713677684757198621570607442337728606887523167996169183242659264448948505265864939340668671170241556939162062566832646798648897890177655321029000029501195224793339944478841418598975978083307728238488273277398880681504559555361780047791201299140951966121289760347440216321980302961226820781058112804723249702824368258996689740609386757762749093702616724750334370265094615395888324039529314756540236836019010379306498770117312488490515453140678918848726947438027673802038324749452837156705984641993260913296455626030785423228424861112756435643477925188841799756987274612852881435359052497831743801426584803890266131171076569706322404839130529055744054389954089341536020654797687548742270406139553922520075345929910463794074753831613616350119013710462117989006639743861275274002597076859169114496350094488309692695597386136216360391424158771249380256381439890635214065359567186183290042763503596337539799105957076801842744163354727266437675726200707304159597868098643862244786731215251520609286319770275701986360732271264767811142076048774159223445074812650719679943236206091520628375552123987948200485375606083484061333928973484156901187544745162619716013791322450224277410197246583805125822266881710494844707895105510134112671152637115303100893050276849055964127752873067195870699389900048681439609903555378899708958396299563356484155551793154408254614829173045847632999136667141286097986178248280253359228354332487035227527823985251786255366335344580383114130965406534560025481091649355925783379082038237341853845238704707987091734900057795137325349940004495190609817014742468646618976585409816849026807423210026218844734090374830212814298057257111887449536388156202141125503926427801714397270860614798554765185192541581480182845550670604027640071985998598261369374054873846415822619804846767215076516153959175570610883229690381624139074243815296695445286393778051577994653200434275356719180500655849214808865406166283130936166461307671728802830420241231709834682653633040433210638236229446000764861957739385645295282885810423092463888734064343292065666499442798809687994111230675773567974722266860620920247934807299019655349231142029364269922871469504266287589078954599664275995398242806901886483587047140940051783368774501859143259817901587746841252974916679463167045965083747985939270793415325984874878354263846673234177059834840406736780283396019222939296725711366190523442020247701556509009817445155092087401478154286002519909198498382497865956471853271252842129191379256571348396133215613675857892036031091926583724328860956331331142798707954254337915822310185328975993940720409425648280929624267230262536166160653000471647989473033354258941705505221648029498430557781117353408753855107222119354087029720731102296225009745598260060817162046508350584237814088462313121629771742182405931644283448420665324222304048279347877446436288831067238299195723803676537203670469001225308826616725901757167049352120934737695724410816376691000814474834534271386906934301051795163618448957806895252661798643697728830003421695916654217015521110732765803873769758441347993642256157145864924991846881868142431366931565062984604381875012283365989756132945031667599563298280268898916080112486765276184490826744265346022156868683392587743593925272500628525806132856605482757588127393430872726740212723482172841577038236067614386105254141115709924816714514074675421031691921161006204658316207428884811708343615197900566020597846364619779058665132619589149224824763001310047228299970324511977362237565974653556091583205700019351609320589464917883086245837479719307369094836077737801116327795916148469872977016747581886018722611454987208291803503802914846399456288301056395909630620052096729388230431341252555464485633436910178338530076133102807702321524024866584273607215729341899316822855854874351162682263347928804443223500472502567433664894588280133955100616239991424734593975347234560025535299942972914451040635285127950368925383374565697459119191613056899076313310846977853626465839239642106487960918903093212999742890334816991429642939450360602913544571251310239769527466998624035606107235554569729939854481642655936531599810196068147140495286825227173352568588338467126845171588421689866463063857860184238007456180761913600936615638255762524964125920524516693988697045847268938789226293523645490302238977977836323561122858801056754844445877531140094783673656534627978664167269186691311703787309335221057150858970338478352541176946822534431936064354417802802417059457185318912689654884525536995531639589457659519712334672748721935420209969115360242061514998645628162527548568860295640018987314071414123927205894125643687841774623761596084703150339218210245015437890224556381414797249618856157119027732812205717640347961356510466609026845207775538766717669317959334359602327023004584270443581830396283870651564669137348964809102789957819712158321327454087287414224945220809282782287277246496459746681905654984830898108752292921986307225809395980635001516417511279614793140785710009931526095491005734301772329135094924906665929847650212205072886901464057240591991031980128277868100514358821270148768503085058478137806153309189357464181398016586846555905862999521455129977054942607988128405320872184276008437028159676464273564550261656994863043096920122924288806448141656450006141299639100198300781712378123455983005153230534901476119674908422849998286570249495279773364974378665593667841391021031249865813251486657528410201252990705808287969316924811783432120464393308755286889527978235118772859645120628206392238947074628599206524260676138296550486048241305705064159658235766946350945549548700316953252603209918481637276919555608322612242211774464734445955536227256305077175892689420846638779046276187741849990151911871774895517837241453053207093079285934853308779379170725900332942532275540096561523412688491531483322701908182285324797996349824403479537061236614859224776206918111743483055614943233993025264930960467140672097927599780620841623886111018769890647970681832322992253944156899951587477734219732210596808525273843521157336187029910532327755659597894962442899164903437672626465456368206266776764345082120949718637653170388898103999835385131557772601504889997355107787057051389157834528914252224574782212249144840284098860564957202091938903346612757311453262806051364714552145767148258108224668925502945691259245103491518788283693712547795275024822151722511928200492207945748124635696999807863333311450099164676006170859632142460291237683305984289569107230616010080357076170217292980528689635142627713089014786946689929098241105152352251882051411117008003349612012143034106665000755086695177661196283461136166354070414942498577587263989512253196411268143478540107934263735373742084672722072953821517913656450525069715721076185830968347892585247626114396119399887106330324025034978637960464112184625872738106169644289627895429221880196379479216432717961986606614152480277423540125835745301238065404015383194154024519533120076816327093531558701658770483885460421517001488960569064700048009437314567760566115905452995319531899690479846615187056287330228516953209238739640739161539549505760829513986854791069091928667971368977959837492631273374711076720294353192731540141296037879706976358856173459039374158973755765713047394510490279246059709218131825010431077194157323163320663275768508596599686828231509025814897068953055526879850478113906148834631541398052511695167801770213183076910756920952313581933334720383249961275733682424700123453110131196277940929234475291466821021195820562257054347380630108077404256077026298275504565292782817693041310442829749191523885961431772772477337334368067196664089495192694241047596977461561307684895532064200418648845387497286166165295197203616764507379360895157553618939877601531138222463516103928497586217190951508584062568830631009565171941006055708410776478889673038512055811966751258404757570153813430184757449301239719890594553794664619020532917742293375036137100124606563595553076573097083724480561210088330498239537815995276399011880510185331667726590301241389116419061212265026653534553146930719263082098418813940802317549494316344285302852641596618222201104180037847175536737441757192765476758741761164114117556444202401880325418612280238851954139848879366332013123296274189025058501121752339309927397180280102759726688666909831835175550843870043548247079368041853280870758010270724429572339358142804444172065558852303116574317116245471631493253025320293936497433820790510705797397565507676926252114385258630992074672104592731587073823733084694320565882643133714850760746772847918538530687301211715345688322921713856460520091300619557460111593677068077385500905167837833616156700990736216411054548450504822759163016815479608936038433561306005918634515908394811625243886149280261190789008771181073218384669654040739401988422490999181812234657102789274546895005955378238998944380493739957976383858037068098630277795280249685905454223935697210587585488721816220150616624829344817535786831483687183728315917984149135757247002081562183805255143431105238531342147266166190838967557581718945237198147399294640015283535387167124951459043215411865163692984915759551771415909459298413846039221882313009697234047483912454154248670483135718213430194715578936520343086909152894978306809444054727850868238452203717813787020436822803594051257155164303841260804239195899560614508951616998338373539213706345660064218449646727653646349897197426805900602221183759618585954380182602271346106993979715554288539852408199632985253751173012966373369319340965236865927640768412693681369635801184655653202697578679983895227155717006753150055298404289209160616692130750927600329178311553768968743507773981235213870950385217182730438734785076455898772459594460073308982425343661984043167128978293708803228778822249468188873468528441059633839051338370506346711338911168726059424284863757121432089183073069777392104707517086679790323484388814721520212396771871771782987219001630890223516575816289119642838643019552946697839253339322832894063290782417113579860956444291722066171824984267994522630738415639313248041174070529506492168591475815187625898668743155438466778967338402593454627783965016657921458885981401612584379232359202588514486499714224095541816628209218898808049727384299669169008906903381200774541883115049169791952651936388799418880382171555731096405326700381100404176406057371281555048318900924607685456036928207051704076087089768359071483506267653401027378803471012804544141444871890557665086731175158131498689301011722038409962395793821600766905850473401506839964166887158761189407380137537300084532974153303675070340415458381458882363875456175591620415109466013825540109023935974544958944660039890052178446963297371805143206504299818927232130251498887211522308564199065041186926341075245552679019034862575129539347619795867448003056048663480676372918245722054952100400712743047873586187266655545032960959611696159036435401542167744869891650501231352173864420359077510026250659967881678749086983463941254952247604201148444647213779459647668835889417951540674737312309565371774063793083465486463005142057776902600429017563936349662241771758179364754744254224329044349034448954214133858188047533466405274272947581870151585739806774614499948607708026981171789120811529174776715787939231732228654860805687835079105411319267839194126694401306429608469662414813568657971623484413769551601009904474183684677445224513475470982392746974062790731751558214316939994355375889888800764073579389226355923085725516184209151460302955141584730843600979744080313763163243203358134947109941158600685778253540596278007169326131655380033827662159535805219283750970995099334492666273275881585938156421968266097796594557208984395812879224331473729068343163370284634889441019226138340405522064078728397035904706931349296955115909967579993118815191815487038394809311345706502590881838910890452036353143652368044265394618147827998687738421919623882390930162093103012233634964042595576279757367228908923191846354005245024508825079465321345763423276492207555354692090512203606176837195463968151007035462795809324004767236327865472970178606659691744863013322540141895615354818397778463584863747212075224599168102176161190621105419152427281939486855616918857845279720793434597280108782350720896314826765258283049321469043218789753196499017604115468937724274247619500961409393274815965689190635890705427749815623549932207053920417262884929398956983268925332889404691587800321959687711257016276630710031880743519565964368270534942702708602430292581831757732539321555609899402752999272584313374955611269045499041100129212777159103065439601063183940201236322428776056057088354785156621821359477614024667589605598801575149712801748344058512525810700895801803619546834550408910621791613522105676298889347887276294691516361907348147017757339901002312953501724430762133843471121240942307469712588987261024010128652379235644381959068050709204770556308455080809291702592268200418518236620952033077418586733319914749420568380400092119597564874746814909282943169213075763994038154791871440392919820388119191595960612932386193559537085428054914060142664042395022389143019810407252658355002116571388640344771275687575787524865781995852163447468309860709359032633701552031309926775356266328344450033014480106154414233331002540741543934356558745480608934826943200601677581719575917038695497774747917213650630983242231066876193081975638857946678273276470058080980153102785693447816851089594640225392784336524963815603345169631603605855203084972413431899814794004206014348117868433929234529835653564054624325587330578696445160547957264733908351095754751986791722103794391726685880993074778334839602981844563253369276188916066658988508884760713279174619426926571389185773819729565807201950278149393719894122164176190807181573522705172578672382322350061240815075381388777429426275700649656392676848157472446414186889916949415939653979135245248877648839442736918512742346635497147711523616918651052785016094771137054345615376114289779502258685326990047619194625301512053807780007156497056315113858646982105380275141936016548909286006865591680879655563844110861223346460209069408065561095465627468245939805412330206238733119299649245325296245820793716650436437268273725732472967527730356087524571476899447037805903789264301587299776314127465091468512105893371763145447959795525577379666162221400068572806499669246560081710200343538346524255405195217963156886733060523333960397601862387057715194711714207475245798869684039880999015402727083011974283279064337559054532092172666497407097816698474552602322469778496378755404637366285015947134849889262683700643253747426444716575953167032775121807671960949179644739408450555782076756838493935391430882838772309568610680359405504890108865663106950798673937136888239027244049042623457344318158678900738578318183741175541794779191013254441001874771767651116959055044054251097238856331508683651891080401383776585144519810695847239064785210232281968089461997456368144496475815591309523482798341397065191609804686138753155291226614351584063577323036016370282545610786358038916960508909544851891484812202786175681043267158232710257208386194072432113984438972117689541457709092352139203262111430644928509037667703446342740754480414825394580285299973937441893392142089934601398703883358766438328817267566754287320813085810183951374188426275357073754804713960891074291729476067117187928189235501631535863107801710240999220319455429103300079711655029083574622902797155757446823456004474976144601891421673487495987184423444438767402656206664838896863086561616661955304678285428540405004919926445772207459447150455530153058987365422212622174960014411338896917813327773701088122855142817570077422163014932164303417208685461407336613619495840298189945855065811487462488943412432728099911031551313636969528313346965480993713587650251230570097739927884879882232321804652216158512782431506081104722499868507364022303826077495805867410595483251988653089801121899025166158946173826510668647944771966743340378135755752423293186034151905066008108587884393099605235543967505807845525446179887075884379541525335785618913845973642627790691125054512046620614336730251841936486924257997969847317223249208124481595984794283198448220795619869585899072918506369853106251346845751580121290496263693931506454270364236133901722044536866286133043797963441390560967057133063810789807059075591290189771643486325990742012565023638369643042514382530045284023904891773414484837035039471563065571088649619486861922005052063858669601913108524663979623578990388829096783492479223199888472775016353991195215548104463473198319509117478386726129719519923617581145588942657116908760593902109385909561150370522099755405856852846950575194406577710883213408042155616214193948735849024852153913024662576114829326910450164371039947117077031659953772627248014160629702782674432080378001401861992544012431411861405213197858737503567716268853488662528903371826880886280389815439847749581975369586486465914753786305724562959087636730530995849191306125830930565627608807120220478336079683264335062966483226993853949155517108727079806380010599858744286288502569603884712043174468401984348822003137584566608909541994860984736110781375340561585918787719347415445896066721385096303065345905749153370223704846102363175810395510479138222762587833041253203960973312534833521748049741690537127794695784053954744479343948581328587635300417659676383721928179815631759463923012214785140803335256108242895934979914223590950644260929196239565883405521200390492947856595332034121735376583917629537041465313304334018977291482889318811390911291884842309799137254866387925508254799016097474357942394192171094740797029666810739998464998388996749388107233921759882389012041900003548852172250322211636939207746457304619655970644405524383297092170669554711756776687451495451588970048760539191749816956853310079935644494579810807204167110103038085767467142391429906375414676248505673316631321595249541523843889213652537927698998071152290679506418442360436516932205525213087347377443962399272102995670159066771120979833039073695350374411558840367342889059052261133045571890150553043889599083962850418210732215916216398675984625159606354084699671848013997600431388265275154509164261467637204763385054241289805270382962542116693887741855287069263244548483871035547514753390648412987822999559409483405437311403480653034207580788797602402169628131597509471832934341531668057647988603382752246183005101421864595016909806411752688796043070712018627840800211463544699262071910917356397884766121539072977841611846760040044725049678242984335589038650774416228944519650559191254519755661891733872677127098151762367939715680875792245440642629660753420048907707615284928411898612325907692008612593401017126441139762763664087055927496730753960266042416582255791779494295902085032951440124529983297999642206452822632818353629549159736148771503604866982381949149923732686853209628872698450456659673162736626348550695968692670283613333599677773949098434212481589926019245198450222227395591676884972851983937103852721580549042408455217162131761365166666179039153427526703307889633884751693973216486742622467663907235657339722329635261293952305483187439335036220365559445705137109899638639868777211867723336602062722125299891275638295532368368429500767847492261682276484243197949884005190839095881152735837166945507237478987847434510172471029537264616061242864798065631633395077807134032750224648512314908131196456488031574711711364525657980654400562188107929912562019174293195488443265384404480171677678983949580093979094889782098345061418843010908066330263217111629201640499568482401640499340766463622380901866535598289776609776831956092430179904513405824046042527262758208386550369718329878709159755411504347166290959896381133883479954269870308852215355505692352746350261536964069632626319696666039227731518971920956691779922264511698088605120217936748380898900047241725164656546474073222532417905754406107104096940633111633047361347763090433014868944867813926713311908730350660922499476594102666814893049366047537852942882430367770655597111769537761360161534837020715812953348217945688244248408403958179206315709654081231250540284475618788923764533828139930844830624015575802319450189803793805894029831614189077055185925060285897586429841007919949364310896844351405008793041358424038653372922046709089258731862365474834161424651925609302125220852436892104856940004116101381100833013077245197397766103317866896284526656573098399022391701649360858967991436192750454595070848201231207930419838566058969687218868784014306430353929933325421665977744805788292358095126477930578969941329498606226856139710313742776682817058562856434675164108648297529389439772211304068871512859784691300181536541231566713322938660693423677471794778936825666173262271477162845041731261620725808244287032948433898137761350589583326222083697461461293761039121672769329006661385766921351198191832461763002166714945447922616527426573689281006013686254182709453319404161655764709842139044941642552657634820976645999609653994862054630451946171843869676963742660568585365599963310900531400090305229110063504719706077348748585667220269015839996391354305230857054440044657602253496930786933993885442941820014198044515791324793841453666745992856645460363092427775688316812953272649128373591070991286694360394850987941306807013645183491329488974714292600278469740087615718423757070393949008795440474422663803517358945506732233631857223225619914341121866238021773641308007932021080375516478528955587100935216178464695432181069911914844801464983313544265801520243385737221030110505046826129657777806498252963884038134296862003082263964573191461104708586984031354080349483722964081807769536515993474107605232150043203987901984697965712194646259744533245228079772607939894484803575077339974994874515845571041880985545408642625258657729766653712965532029978514744193298305951955566160905921114872053417169051489261518799887362468412298825244385296388478533893992242071504404837939299564405492520062597801468072656943961608146314002954828097526200720889826014768346498895500175106076219818513126156876980099706884579981526979210252968517638430537409215625181242501472215583214685543308274107313431316244735184284968868059461902944780470213618511984460253845919249715738067629225598846888583872773210401187017696899192047580488134700525759228825650758513498141311163325621902906168866025689903629818701223069331886124208294264557017482213627990851864182516329663066659999351944204770095367709954571577244012128561043610044846935498367818964966871789575795733223003082959950248883433387003014335359781711718240635091271770926661570009774576321035505894796767631753707138919933131197683385852808094468417820872388052724347637139472669987872322597418186549763810342132736995575048181161769071632875603816492062979953371071231021550552083570988924744733511778546095347753032077017374418900832674026963679401342198802075887086034051867660481158317064379078718007077642509161502165478850501657882475735456378644650696304814038477479153795859346821717684860339424881715882289740946559984425852835630841393476818339282241803124752037359959028347315068108183685544373345279682852689960242341589217777419047197499279338001781812510111019032622681616727366972422071871758821262040851597073283140051514063767093629710098393954906130777501725648400048445301323619261375770591693586370445811870050355064636486490732181024629408184978571260538355793755517906715459906081150470086531030481532189457546592971505417795497402988766771080458604804351522887178974669913764619139583797289029901589295193500830570463211741244677990052433263762381256824913611953458898341641501886754285607934950753815770885263695278163630553872543505794225807049159158685395801990232714828005496340283316183299502334385885703524605964113787606177631900492332881028996504440355797904297211115274235984366559206243271334112248060291765232827366189624036879988828985491064197284524824572673117977277715874851121403284940746424869910412100454498845703908262027345732991145131736587337174091040090560796997644924048680642465045635015991847560955525388951860361425534182086001547931212768919765772141077327724835029177174082373001070365266622500005223748969259425364587468705023261468460704351387167988927588918886003900565878329816715971543129383392025546070606833027288582413763191482600572060613682400583491503686547577982638651788922710699430318430574033128123675041891840731248465022302759210877602070045006033524588714107863604563669635697395678893997249771111324034580123447078123294567012214800069407837353694906422036444607205682568298566367159115469364532298209584524664818041609473620412213326833625077734963589601691805764099571057963059107806169213469578691517938694176678819802631123072520134827496151381494293485476447219700256513696036082625624556478569423285325320657806545618566417843798677435640235050217308094789514870220360629426887906559213532177771443987799129186466875275886879783627175860466737570806729775548953198633472529896765601054139719700640954393683394416084348512900482067202951892945981920400612517161502127180595041271063212902454600885471662929273191853870515806560348980085667183414387608249416914302511911019449856944267675929735942176603176704350633720472293781829758632276664487537266486319428486964686359750790564807658938145078292169046814113663258424706523242334765585578346146710312692478968881612226286423205716974836553807517432189864909961452059750855261478399114770581757729810347258696184824136255330824881247211312257983786663756939114286555930742230380516318220606977177732505835523401956955976880098228366470966262347010596095692709484868548329242847594183976098198641216449592625102486910508884811013002154259128584903560854491968336262537736016769972251341111834014012902195261127310967366321865682801852150947528684385956536954299577260824671105388521703398508042618179883884326317428031717505299389656422960754710806005461076589252729476014404841432049328503197698508178551171878028977852748810563858461926462822780334329601316118600964848978862328296671183440976777012440684110239842974281123555185795152558220243031553323787172600325537610536679277958514237681616093711653881683039948933671062139963192428618051213923330463561678848582160137096595689495519007386709823704418510565305031911701518491453573528903564336572836927761585140714330158980285695374393124516707914631651527953604780214235749024029847808169261913265004114452416522218934233606619826175196932018156877441794942326475262608478021720852550143608147884745790016639027030495817212769274649208226698447275284147551976668418281456755739367548390305607594651574006183135751614805431297318111903246891434114551553496599559579545176588383414241105313930759712044120687858889936861000959494172156369151614457048252880971849263559152768462239102456714769846101504242286568618470729523074157362103115462030759884005320271985700434913780452254144530738195644296503180239981291886976944388360482429824277176072043747082898589149756706900165056743425089069875718978590953244937523994708649245604968790830477506836697138531347981250778305452236865000332895880459744065017205960537085915361035787102195612061432929826353813840044031149589887779084814161367127317918849892048413568126238626768182970241228336913352804315314405265383353341178443702499029135535908765891787739326157394416849742434196268782210687397554983244652060586863872610226363181068728576312025103084129847470703546058523112471948444114716715375962992295426485581950496788462990777434388311842273570151123172041173315022658522471266726928490980920124818795245030432516136428101928857184299674513998706699194200623560452928674638471357334909100971541605594019628253066766242175715918808476833529389860892348183128425562133346159586558314113318348910034971669956299114520630413671720879290694097710902425446658857350884512952765061547245041341574112344991657040801111011109927888925534004354935984357770182795763739298372942456262209530211157201019587270663663682851636890268585443883100426569924880540485270323439068286762690520052494362520252707028810847637153677592677174950739399373812627860428468727768505373591225891908973932631157503065545399039144954749860932514597742578746095163724980827744137949380247766252912688618784571636796053017687399199522052106418899908121479557293556474579117669510042812207709620175249800809305038812143340338273508748611061712972730259479038409971379682722353693786007112485234524358130721793901703160522385932932506936850984595549167965927325237123134349436727456478864415819577023106254636407721754848096333130249897386148459469520483001182909553300970076620578736051077915545549623965973122016215840802196823958260826713782574257233253945559255836352199769986356859662407411814371814208366181653051256861302069231932741177964763452023754461899430307092274950882215829831783186013025667262993703794555886134681735093595724361937078925200227839085654624804448223470159983774623525275737757917339717808642279340959778416835110995534518545869297121790346995494026685286262810297955335706594188659338073917027478190074734574603206951650595085291850425747572231065809985965372022124910987511764341710651458797532933641569674168720800187104339186443938746632700376731222237008042821328794737319535485569309659751892943098818562096687498186961991638063662212384353881869818432206671712695603396258003597729520206973154194233057785428670067300155541216120572955022320958017210694963876096535597359205797879734805308446530202500623246700374590065425942718864261538108819463358726190244117477530539583035174884165721152043194276223796994018104634868884560510887843307015878666510047293177162288215718851509007011108805376606751297201408440546819049982166173340218841527353441924301365368899314477699697947951724348563187825012811965698619468682887143749210813931893426304360921303022998845156636117155707370730176816586663980477461468855821491374578654850873327813823399945147183629876249038919309406171858950076528426279349026343518458933314832901166988441243763316743292050600887742809116483198307216140919727107681411880806682388496615293612865276885141503149836195007480291505985070921905440807849462839346280806291201608105793936904378784458612780473750971138381080049493503404566629255226919607768599996649254248110141513877823046624606759165793340297252657817036527235057928867954418732827472788889481969020147115698518685217117611950815652726145845319821480784110254286538266202023252642468514073880433279860950942725591546537715989239594945715168033751881099161632430756767287439862435480476524739611122744177147225096132574507882282699997455076330134551114248607378909265569234694039197665671329900071476917078778944466540646905905059822074562402055765902334822582975958643280061409046507190535636752155235840804461153106009503212412465281091394752352682663320141184736746145194928013187723493806442608875166699537533881126431790739375723052720662813869241506099505990271766240457598856199594119971754783912103318524705436798890078319116255102722216047432130722384857701925039071059881746335830592798788832758076295254928717176158901887482210988539084507754561582212381891777502116061315747303774186121773909200089261256830055282910392548267871274618163707195501937784567112191005814267046173335693501623664494718942435072447802479493149130664997429073948404678572605398972260950168359347246001567998293836404936433600742915275196550576724909178967998036551285584846470314139519592349764254284145967834328186738118237268588960926110307004529953695231949581733317955549832835262142436345810597359958664376506036862079647148402281821252351943389652831116663682994815209569879868762023208948898237139354297947349752777357972579336878086423402671547871766464522816964574257876552393511906968628722216544410433886034897938964022755606857959757230869680156762858361484979525940015468200038727930624860067861628643934864471455773961956523217482155728581190602613815536884172698447496490540750285460084507907455452915222384025601593687332079560241979727121297785006425580030826098229905515623828786092290052608445978014605482112438970734199038584712643867634632658482873620180506231868192519210124678861494147337111266809539342952575728950966417797702434645037733910791006741242298809668981715495086832924544651866086151636879216737565597239528124566274719838795190941809093601000408496381878353754099420728429315728213517976142710802925697979277735446153624783228814297008817154185918437797301302544840593749712193532719221093447001697081737463232234429056580934188123814743230159167996466598190316300447330529388005008393424114405411068951155362923971962007748973609725523280921063735686439600990623591913360191081031786582792393812875208297217222400167675773652954339559770344855968985078449468785845020721221128123312715387218845826138409856844081051438007383304440803077810663104641885240584936871799800046186889208912052947960965994236943723678500844082947562131470212908664141615499010667428479963377910725017106024613470619749212517431451343867598562214638058120632730730538682927479279322067397586845069540288501189351733706072609343462703828548872316233977951861380705692666769890530769105993182056745880667359430796955480590335183256955532031507856399358491928272334917653453565677692178695183667263410146478866011177867933519045514496838698314000703606054627553141473545432278122904072572775092860131854123144832694435270925029545367065561520323806937337546347159234927732073090739990032070295887198695649407738538402938115720236961580948953547282936813287252948477673444946907711980018444039973007189438429518641729407416582456214927380431499761346625399345682675089694878415934869165921425475442499423603749891220219922432867009861281052111204103833475340044004144807641001956577386299689772966799009011846956844672301209996767641066731672433529340350090257841246041420344431100768016755198626194245981207290476103717452187005370189277178051034719805752267900642215254300735589292648787531294966774028615004159504940055554311281013256395923651967488065694042893036717303970947815844452169421053131157198000474266529231980117081272954529304307115561171615817676987490023495939870694739271581105448795773030949187307615616381473512361249146056339833025604186757007185667940433064973037644961265343644398711753255439787585464425403066046906919332749813344965093140795581295458430827188900431154155633197573357942329171051195766083914458596686380454291578695768001945152469662349612108223085850588951584731905253838873537473835283069313625745333327477623360756431278557151128188420722400318785687596400884941433399462143401388405599645846379709587819180797688658249556167966600920469309238033615096891352583888053722530473742424240762877739997436267441052189375053738785382436817165189000596206994258072797184780050255269716814020713643118355414757956498399487614472723286606285106893756076771913320221775781071592383355502743873039134093331293658495419003870317291301225123693426858099547543587616253249309862662390842184929867387327393854932326947694378553229596656039049016586011251769722435465953416948535216034953828956654290516508315548996221269438593659977818204437262697979958151738989974223786678882982539080099093916770969463362612328663492073699760056203479281928782729195157002425480166847669808908688131675496056823337526947601746289569545746965760747024202458838142974608720070611352891101202926994555583251614779836515748945183484487617943850106411142336373211770898269222184070382461590456764965346582625030542408381401071900565497780438543987638359512682501842774578149478633997516871412402884445324909323458719017266252189378698597681287741076478399340733764471021030810989872937897363274357426680722689394900703611870166380891161330792722538658854116639813839973104161487834734354121780849672824993464824742456788819809602425916995979759592061257376605930682666071224249220945805303660164096106537515643083153799337641606448787007676797521238675046640949313807851215481385102904494553948527329271727251036937192014277657082624318381378227361029056244820738075733153525165775368574716661239543298890125591486979712459410522993485098156578696152652111882587481685014341015476564859203055666794457968788374590801624392287871404661828039009594406353960401101727365766782458109865045984226361636761721958835725015523620539764479064477662961856070968654529971234822684878488975249302892712278766704938980003104128869909112179527819783147052522662199885675043587114670494669336999818985329154297530682396131866092891115421573729909381075295406499781364119367880040091320846385150024430234253233453557206934779544793355020996196770244568908569539921833940428712408731389519439438674412664077621198255607185342991241996759653551880074186183581269366553969801764494414137464165320551689388499296987083055637196662623008480888089140878002407059004854550188432563377955970433136203667343024521229149983934098600186670983362166670211236111312049253290393833054892288251578022696086874223675712503175355690129870451390398386755789922278833867626670822149990596489231791531960213501230580612575455489587692334178673114752588695546114733324759706709820011015439905543844477242560954326559978973389021294533037345592983475384402037112480391859480987064777650600405905086677068167752805484545480191624228119322278071046879079247713930199558259967287751109066197320073907610840322674857348949840665405395525043751491551118430733723981126308149109240227333013760258773376139456918778066662632316582891813268325171676223174928394303971152779455732197482202823042589727329694464821137761841524598775699706297458864467516793006756344543975121353277686667619417266420136578902509638613977854288346897737339415190789091008204741542713241454740256770232155511320872126863054886833889865431559921293225136640770539753816856498312507387738544463269284669741377062559894501633459544819610858230609592860803283758129253340915534520868863838664526614902820307187102460227462210726665482076605445705000444954991712131585421269498320144177280732557935621706258618035172716965132955542279325453118886594956009571356451714553360448736753420493851970519567087832508855450536194839260359891926714003067017930787711754672053820214285404272163319652128595792342617273375262297119869149577571161291274719673883815653240391464995590037442505330504648042560672835522741302437627282694810441263645649310411368842595249779070150038441276240237315130601724280010266091802757721506655506789055401394250276655132928571360807763474430583690910381732572972939688266726340985089561918266655276274384509694638115383407438912087026596312563745116646266875313195339002569782658247856238353672208149013131525669357368291085744961068729120745778880135331234074789073890679423750303010034085560049220693129053568890023877691283904046736935700036519643509121148659527048811776434200297299263048825804568731000733975921419461135429286790908204587988057402505899770201287128559948515920407805274422358348011653416694797293721323821735833408392394518101476046219858859124028076277555990310559623040794380032928089965729240604206829010984629058364367081370601697407181975025739926324261160007917699112281406442655416114095847083772764393305400178547788408366460477092174470940293108193661175338683418278024902258698745291551081144850161712729633748812451141408343680497898436667876250936860283216304380385343416141679710409085493531304606486672073756193290911193860997819616754897792879039360025786267343509574368991999591584098243033108178465595175333807986773607917670511150322958259611538143013258177155636626398564390693270804569158068185298808824025802799233078312139639877090551697126946011185530031304107777043296359269551883076646107278722159719169632755068365932893979738082028179567145402846334958065438145502092778175033474260799435785335849531609965326207431723661642813026982176955355803998057397978363272509177441205752257086319817608222146669018707770522218737542651256109110986589184594983663646011557276919440234330827835982612158811948534240036721245496306244655026240209771028308889243182890905825483584265158528003118759027702850385651822961554901653980241990310468513830656913085846954921459388371184450107956180818180562809587266228310506913125785954253646318345386432996051573143310568009818283974888762965812592112391266875910739902498577052350746601960471662878925209135855548941480618280343882738569377717672261013439168592404981567943450752630238050029355318448590310744702227538503876063395233940827810863422563745186035273307817993769170430846894686879237190787233786183022010478584582466592334842825530707222719069519309561320990992184541480887988930942456276439639995986725063010242757826207065984345302687081990011395694836338041547168383487188754050677674893238077240827816843615268196482170678342951932481396347382096817748240682082471516160167711183580365915270445081445966007672183545963881461109922388900669473446670196358117844670173584837035114438699031635417798531577187158100141943362426291638882430663408615809118701671927140097221768784212367279982766925237293293311476630581997348950400896154806092445925880807156079317534254475121060377493827963690238321395123484655768176682705900088753790124001120396610797713200440192631236773100465488334806008845485879207640060433359717344950630340260813042249883891394470533120866755267478270375771093455161303749877198642617796258222339194909665616332140151653591314195480170168995575252805812782529272974740187152448073129822714451342190713206727904116951570073117450240602295159662018084793814414271292768969592190033544497814663065626065727980343272297601823870747757444780486803747451188291372563110484728979659213292585396124068464257914068329775582709977358378872656085133576629910697349696558230749011047131822027506670283409245541823475947838128363595330535955801564603687106743025534289569011871639937171894637475925350980461184518327327080782670265657073250706218117872739598432535257359563908141297616334247125456274547784827963646178524201949820737258382830269947779572511948287614830299901345461785046487743877258229811177927576089703333348013480834121763634455452759548125210946103006905635856855465390714558369654301698210950729002155487131811143469446067317712588154395053134907793699943136796279410865306986421585895787072605387145638149946414271422927159517174063389125238176816842471281946823948829669088275953500477191618517810741856270198263962371475403814014982194706035578997258598659729420050377239157878391555057698297669043894957747287075785817838043559241329916672653096505315922554078146351622431797178672210270098106244658150751257481697910622797131092371511216808530007650373902420588114879940862433950729232706407520102898195184937343858670881267354566309969733750909923167029920745081166477416751774595299663364238725697738696125272884435084097074469363068387471413762763528619207442999860348219876303621305211500053809938302250292667079727945994055893855824804776353416553964791536857229542243796744638560845854884419484988990939041895586578092340847915459982993390637846847942658894825727727937459021944977738414178577808029496205298842929687571093387208492612310746100647458717125597147233284754802416178920109279116065434875526858369105781074264323084492852295922855667336712186937155154936540294760028119793075130188089253439373295784292854556192783410741706439104241933990255559899777428710073177549842232088294435207632325897548500638454233393459782667792041664964938775276883756771634671258706508470509085441042910158696405438914707529693971673541546321969399952403406061138584895300498567055576807790057742003696412891305060991222310458773261116007096972637373010563420227668129954637839873931548032058915818387583785039461919023678262905667407356405159631627047061134751104506606104849456860266415369279517192240268967863243570131542229131289787725843701569543053415036806738759865350434345704187061206004924990963499088222003113765047705518397618893989210930080758759505042145399863450151294014181433564232588170209027792147854443948938514497582047844627749328704527952090435651830099730680881556023157066985612033573384001017403013154385867271136362392017850039895504182128065698870372650019425813097647951354658014265092074217595871988313869357499448102074858141824693679398262570480600852988674612231212687067255359017560698277545869130676272850754466530073397134578911254063377603360349225360099361569114502871992048935659215830729752545016601840946190395982314804928204261100675308435163678812866474608471368733057583265663376702001030485438955085990135684189270173817622086175760805677969655654796493663901051113417262564841626989191943590761370541794739246218934589790851574209816144895065315547719852864409084125299412943926271932577375046868625649938924784338906906036888547263606994880435128733378445383682603621598601189776357896104916924615383500782724336726963335251576200866945415667520970214954030316250837366261988368955716227814266350449820039498021241857840640428049313218479600845296804512584908758969947573004475163026558513432694428332930023858704522853882337900777689884634575921865426709756041802177045336800705230964597513121357950425545803660554347924792198225095411812877968349222166235325613293420772156039413524466446891739599237216894115485876023649727729158750362260936340448052616860987085824324635166154268653405471012725430609336466231861520704632163405152262815766790106060944527501109566667512648414314192242494278572261148334999294028786393907556653167997051629859735466265413068250829996834094619164016122406114389359941136239450757337891721991185181637745025274865864418226723172871842871012454603956015847579027700072816583624372953486591939379700670421728576608067689070848884476380289548211946788992493905144920022570993872899213373718358784325396677067718418002155234827824809352647152441219843533603723716685005184275441830124219803829942670581786812060680566873177107067688990821926291404068537477827062313822185608823044991206102966706717118030007349737463832887045577059899913441343558587618690227911832231036937217346017341798607270583791856586746828724862147558329569136360991574493524436786061987423793872865406039698901155239114566692583504344266224572309030976592496669005651972229983531908862388576614089784118805341281779958110254120999618141856692230574947560466421243108075428889871208247801023150857342810433946544142786423675843092021289753450004531839724489461663192054604980844251322534689033944859478694999338588184671219400562129473581625744399507944422220078256600480652851174338260996423596793769897507063334131007466518723241957254398562490670779588569243886873324906095481768903026436637332933829070845257304945564770750196007933864348929994485269666458351723196532004657970594722116795987874026994133396403535657304602764979591755702228610131442486138972391793242068244163862268995477418028340940668735941122955454971161613785791405605667379125801858767079384315871932076036405147119571258099884037122754050365964195158577400418204226599875331113544312174548922254221631457851574750770192642605785824145728115140812918459230667935653203539406301023392721164176106837349291461569225415708952244313817554964770153738854506499824540052698786534157727165435811922753621838943146441765497246077651262016681012497528598190938605208020447435291925668590216519706303318548970069237441686890093490551809512388694841354708131955108409589883057806477482444011251306154608995029296975649732219785750693310059517977482953103401913797642204856517255479808755588406329780653703843557751105472932454839750248521513421641092223951967018317936617741326872393396356119753299457947510474710344218752308933700830366445300939569322088179344831223319742131784299191953758376173831140655157638635731038802367742926577015693058946874444868438988256164568213046160198410792975588229984320940796303989396716430109819156458438913611549631486453558769291852926471041969597859476089682402922063968112277658843612339059908486236882559131215517307287337502079684371721845052019502006082675373819055763974146817599610002771705275194369737988590094492716666866877626798481971848492656663310376285598622282038767425414558924327784123818809585427342819415125955171363320510271953913676452000667795895988885875964788026648814805289136487049369420605950544986844649982999082783212370992404048566311892072572644311974193889618644515381506594057690274842226010995107353573411892024610529237970180675184326172116206140867842540583654632941533130824424705715099607158652752261780666370249140463169193698664035293643194629613147168436156931159481531355458893879933350185245608544361066975276287186453536316297857520458835513712097828585378044224242886942364451804174314040732838464218332595699210973305411422662450091849761005240645390029989262496195347603148001219000127927149713450605488879568851369107896563711469752747209268472462655472261532682102216781230799069844891443384211367717203393072270994012470899250676422378615990914611048724894906573539508770498778062142623666219145949046205482186943604492306818057215744401356013269675340542891640208271987291893385834172674602848819250189105713258499554149289027041640932747127077216581595155441283499958093333482779638278881581794346210779143949684099129432229837682378709882271464478307280829865766560544336433617209532053778273143266001528005912778066571568304249529867954731991884487626544687704494451318354522300565211717094409215475492671697561005834477517574829705416298116689393019404902946755356819962905281683713354702181832317281341654635846630232217245161639554447878604888855310883104089572053755077015460861943106871457548589238165971335811006823210315688116346284352526472481678160059424050975372369372053959282482516950138031738307875552675508743017012637553192940212090255867770785414493753319408649456188651910291897203049398194580092193033982312082071687508628921585455697406842943845264025010244394199523960026440034782123734807574581078681542269245003408632357396212719551886413028642277916281868732205972692405435845521509921518593623947394594948584842514935912005380582510218172806471759602246122812577308121064313423119693305534450595882117676260676624261812001927056962810340203637078565634959749023645552001440318174561569209038764755505156544018298182147974995951253258610112968073966681755811748191526858773513297352766456427015119915900197300440582756605470877948243752794206834741326202659020442179353531541350988558902561483832321145407463483515726273576942292019366400794543919515743279190871296514637778276913975308070466603920070142634351172195452255080892682975482557133477221614621755316674677297570237729652440576404458727528353379528419901376831300539902240677913538162582226581097900293973365077243463533575183141862513657619607981731869911123762852750151168059526328817965808923789595034793839373190776701924192496116600296515547147593433581149955408882266852375679374626249835439476626622816311179681000867795751611265397593665502994379294663095006840612636720515581379994322593881274391106274341956621434417572759192668927587720478995603719568234779895337151035388125776467814772751616998215573870284633298534694674541029824334088934294996123821789053944842943580188342719825125806716519568646746086165430894834572641791545104724314810345809657106929664213280661211253663337372288747455396546203271811467293922810612274848833843239253866746350902204610804193263864152997876326447998570897490859442498695866279885714423837947924625222705693523180194415876935113279482269415750486294929304242354494143968432015538013667645942807859575702435917459178798904723276274462358890890882676716903626276951179730834826258360892909606594026214637992377823929015558080584383893118559940719464611756693562719931922648990835908331276656271990316969413864816793238766120530798403605841424664971320872218815901128609175479552821449482835421100803146018466844018885837904095333500442097649880090571389506553095161413776791431379796808291612205338965811582331897341434503510588404831209854509764520868812632540413576315597912669507052982442177287457157379595834292391324981830247866020262675925125061159173956346424992042996324517286094434438295779656881577803977208761972261018074553399884336507429507789124624879767853087360684056163365654356355634750104046951097124116559731149556950472016532412777095148761003093054011532658994271408757779052773938271817773644194070644981360836201392624049247988294232614422519395137210657367170789015446097394502285003796363958523042542779298469668939035631570927368116156207581958159177750874792410092304162275623311172620151248085447288515719987076290318652915723402167338869180838428409096359196869966076564745515572839844941975675040335405884602412018374075710347496538529597687813793915684914712009498465625504638947298485413475190434673638137612936704339977175912364700854363165973709702869410393990114772681662568283336187990027802080948174279449935433544868209508037285263420042733100338916714992224884641129944925481761559517493842480809626640643887587939460937451246023736349503988978134780613079256206880742177376598488065758222973052576703999959518747331640136032758534288467801922169191740903746672511445711540010222120370839517955228478576212271362603598549138037178086710977207288317435246553340220081941608887312935965519585704477343735681342776615687257280515964111756369263367541581554889059190141441562805163191548761953098856934818513495207404030446146302542082928135792805138495885365277060350181901553366608694654305492913566609166630742177020602302654112159186157114580610225387692097278435843074869592283130460670892045160130829147502151426389935185317646121200787391275526743521438702790938514574971377007644444407462610482148076064003876899791449159962876284199863204030010287853157810621620230493743223038262273195541646717538733796444870474155181868253560739179393822121618090865995862866972955471368963975975563395830562013951279000605915314478551162642347442775962681173966007766007575637781962065576525789045528886412701158741092121290916316198109373768390258457606031791489952815440206238050213509685755514567377080237735581106902902292741186902466461313019002817211465035591061420075792273424689872262201692178306534716352434538618846026594468851687810796038884654581302247180836750289073765583113742185803210140068624473159893527322774287280782029959012152914347041659125241780212462511932856301036570520799942410542447947188843284812194312304638220421664278761924698877273871616299549567556315524054831555062651288859066004664302672999725109093773532242143328988331941266577947560404731146388207603206601758272218631591566521002877447342780787027048268774254517466818064290888632327205799780937507491517919962206965087349937176545984019436087195644804279674820158298023706673683501018294118556853240220175831900559593413748768639493848777580086717742627038957589068796795422648917782497426765200213673210148501613835976712670907036680288972664341221869166269666136434954608249041810093382212028255653444962323656655695464066822899419945771130244822715485118179606694185725122788789715395120921702118925135811443563470371312997283655533367935531276730156453206142998328687744258179094909315874673516376127644154184932213296181831408324478852387358475449724314872940922324465581996940497681026546772260109917461265551498367846306395360364159110349436968017384925667197524927279675424382753580965200864764533876761170401188295685805560405379553148495204185223441972678869520671581885553442568070560761341478929907044169442286349298576031733243640458217587860416368506488590907995943164360316641482243555257496598803710647746217963870886283055653556818064302960347307808703369017039591236587104940600610365844043979054115948231905247973617698355151453224388618417425343301817680871908063709182163274693115968857773440496273654031587799877719134547244856471035081909158543388745836060610782299846079814128266617397738167917351517113969171331218140690768942342233693073754925342957486175359759923819978821015962283222879783474673454246086768426919317812161470283739537891528538332047319707370245275414630683187152134046342939646768003638098880858800337112562001299357492899439085195259866300230122778798902921783662631892570099907617274504466149237577474506181203130084777596810929109974245929365882336340104934547734039611148373898182336282228872661902381013454195727919026933633825761356523095079020102265985872078494646277968963513263774970251576637770921394156100926706334322550589217254769390274157181789661137328741142072965146838933827977605727379299525225378411774837447614914106128323808377736583412130950118371747706915984954190540851649910038035172573885424361335064585057483208832623181999427204470743882318287325297244572327779339895697156318422371840777855451140432577721523872558359091871768984663204536236017025240182335188211967286160501920889588665546154446317414326316090949024430326791832224560192788804509632242485525963760820762243338565108187446257640732167554033388210396603818625597072671492289039964189909424439250377804385395450033525163769740365034261879234088946479466925298276129021762458284567639113487853184166460042038234312124025114034478831068971289146592626392597048124637041939896031727276109214011177405913905334402451748678984752191147816469336796149175898918199618932438828165854070798823111253861410956134475717393955347967097776782961847150240319514318096727614630076048618319682191544283272865759456978374379336200197330397947387426355768945022711303481153355089747844923288272091603610879461561499032876237333192665007307531659928861339512219550810011968410789932661805032334431597791828603439429030392340827386635319851208496152201677727036537130648416717552182526737327100887507266147203866860339064817738343124739377906794131475456759203999083623087777845420589143415416503073551831737060640203089757908439345394836801947701327309161430307672901503019555167078080536741240843093604371592160967791497784263272853921043031649714761861891330194579755547818384228607180211648463513468097405444031524011314678746649074779165152708727750709632854924807538941617582182755377577554777309821633640100496438006712719431775946422212808634168164813105839811676439302256942848447832533234933966063323263165355252883381311983952073993141691187271753725047505197244150488602200445691576530418437661480540245523946034085248771262065886391013404736573117454718329110932024671632406425498727263982994276615684867631347533185787097091355111697215882303413004226610292430454148315112786895101913289905609308751364269929262154748858366149525242839562727305305337915063816993066869660122839984524405442847881916137649428305541849831164807604543623781034007587199776949174691315665479842556065228121441952333550776842219290881328661439927833776645197661263815794632137622057577617275349993197901234230518191616053577510633270058428423906203496495660349580533533909764552344653837622432075887836015156475786202383665924339289097424249652213775030482351833228656884026323428251524260221908671471250790025960367616132243117776300463477706835947213041387793827053459344808621387080752443917175410676270732408832380357562524693122852483384744636330923442136535669737788526601735111766432938232240131764925819456013803627207013914452965961599786360607100450728184363637608738110091685952654151078400986172581869482811311599808325685485214958505462703515913741456722420276279831911551038833914774841764830492521557711474605456372526616254989805924690895554354260443570735188193795401476793838197015434903045305685911991623444345779480646677588213188463898945167783634224848895534183964195245460107688513415700789591555100710443366016024323905006061700346549290721450617688589599694077164369655249354713226001332400749926482507048219757311150914420875854761121182183020973478009897852286382136379561598528442642903739759503252037667825899589737781315884376616136872129649387809415594859974753537817654915227261672266883257867691227104778973422269743295358446514064817699649742943664658251420013790186141966379894370098215147883492302070529331659340020256345440306264578188558296470871058858748705881859656729338041587584169705401419528606755874282562863136636058888097667466593818501924565908511906177438013893777041887197192708827927283460199202252561329821407700331341079601837028440080728386406462481362604237252718173088161897011170023520891407160960580073681553789481365935036651748554770900635108050543174091668492617546413841948743728220242364576608516870251098157944058551269033813057330222032486376688431964083587803157792030568814641522057236685113205215072029773903327427276311334021388554365221396156543583188538563730060980606478299157176160306769118925850414605338922752801820458700358639651977124227178717077707041065369701561867599692645349987910395771579710751398214527466959216574880194888034252669193129085215707580783958159656306572373054432688189087459637136731895120452677775667275084258158213429691315267861171038835956521928036144208521972672760093506720422899973539927121294147801115553960351953138015054479036829404370361618448557944224105916211846179080405441476487907865406307439834824801906509851517778162607262337496524671669404287976742527487930370180681395956281964551367782326895606397235296016206865506928791526815879187780073885934716847311732179831694782372496490047797059230058245896871148975243246551501302665390187229280444008947632194701257048371243875573310060998044655056794191786535101767149915004554866095489941797397056748828434304431207819683691332233299436046027607849463885505058619405160418021196141772781085130910451774900682512472252253538677102319814273079079158642299858616211482498324561024907817295302834337367533643444973840869306130917402044433676123725138273721688437282863851628451942328772476189956456809135190481548854291008722371527197378011039917452675500808011113766804007987546872384020189122181594009649366102059312213482312929948691382789131526751874627046372642185551869142573130210340044806469016430934137296869571706159602740903990068710353020228611860187815987243985766520344060022341270677820559328616514069033027303431235093841317405375085832795275979195453113441553532912459366636574823708178318943326418309966662334492030819004608471373701530726967024543561308495319424472765435802483034824037303534863592719946753854525675977203122663215795885397266952090514255858798996450342438355486945515474803954014277649388300225735276087388561288859773513352728055593782374275711393233166184527525069978279888316994132976365918081178380242417843557103358572921095675446360733199779788973754309471469470776480494620475158575728036347710139669910788629715725284760278874248561744658619196843219611482631381746411079977410367172626407381866211615091427279859095012021520584714376194729961022815830138860894564556444415053706186999173994451367986484941263300060157488737969606500434527035187335678984886212029697059190129466104473333359424801061345843539951603611467073896193647468194112096223183627567796675064638875559019935399446815614473783541163846162983931975256375935976444080738305275196899488065028548888278502335773370080517998768013229835267293189648151929543274126306862306211239297781990102325364161518301752558259267524468763460319267873190819545965829720354100978933778260437846945346709495213700898863009291065268663274282146988244933104571486533925698604205579819512227558808345298459108650556071512195834630356675295716843917258791080932811714253746490264463417662005973157335844640050503006372763937986182551954047322639777511701794129553498498478201923768608952012527187483460364304708547529128560082920469821678729519925951518908842324089030568407563052856058694494060113563298698148041269481759033130067343415662160600893309705678817550165198022718364672214334908862281898775687029461770673049455276976966963289275016948419411091562643951490849230761451800467735486905032999742168899683778669018619069890107182785841429887662615097911379888218048963141702611137064482515538553165817483776854470612737762365398325324699910103210926270198547338976407508647247554744474364840662189630687087901978997066323952263439739154465082417089223469109598035805909120298587874805109947432361564666946199629866073484239437361715342616387075804291892476675122283290266242942628133851341455946095088911923224481965021882718512628992689585581087740096001531318984585156098394898395074230638291198710024377157773624024968597524056141763691471448176605991520862358083295992742486292648272121992057404636740507604571719593108259890626533931102086483082455562273355623110541667576455446878954436184281733363740328260434525086726077499782453209259245677713342536168438803522333304684270962390339026709423351271532618353234215252838837145554858802794836712351548480601551122301298767225895318387745998068410996294096172965401595001670212535149056353003081226001024978840809904236484409897054388597988813473213398316331792107277955959271596676015843891717741839392856820866656898349017411770845532427862417646616524252886138499675616883582432077269058572799618513867411870290168045071705856728362262277760472623616141235569177390551143455033918297806316677701554522440088652076685458959050885379488184318098121469295135935232164111801559895554135633504468638066514724903964393115856013513569248458099774566439414328270341823580051880392237150996849852595485559596724951058782046045755600879038008138937311140221083742358893137958414369264804207419455633637345346063118307313054873795054354486154482150145821290598350409502708681125517002274926611608834706130886615179530392000355441326380778433541819268100444190627185342669068971553593198621827219508079825330106456852671804093273603087965206672428245867303094709127444410874812519807575487746360581383554428688023269711399000226509382348298542639880392355679973195504532684560876924370350462957648686461463041818959102564497158537651571238563130725793190410352912343649989361435969632407020198538830589108648677972369895838744728577518335682768625611551709959976045439021241892503172045155160415314069082063275340418227798641585395635065074973194427125453877023974875442286701050719361031545082399493222118773544314875800677412969355347896960823807001952990688029730951202763522522729901390080801893623463169533286016242525187620075852518434945501512341650071186792572679335166359226141926054958675727241834502058024069888606417187759080401785037215117218350172525727605053774211653250934307005145358501906923901399409120840633252011584932441958961449897687832337648365103722166295472704120587735997738834466648366921319541725594571606467657251411223508833046428910521288703632591967089877542319293330163916830018448869286372029705326296109918882840136845460266537743685256515139202249550308489439370233823266665739442585149696520829618960793745332635689742510007355205576352050870181990335533210955957930367643231425764326028031281670318043661478995755818096221110699510091630110715117578385196958387218492225656449382539454665400525461257919860947060576081361206818417059875940551964121325461516573172438668651057157666841893594317700639543065098812780493378327734038968661313056747011903484087549566063491442719089175918718813683468256648342300464688886046804170873656385138069813880860731078309551106046994328360707134527006885707860690833051303064249109272279204536305655680041093669498736155094511963044272661948630540468278885843755382512797855591136201959741001268189329507938553959367708295823493237888076710034488701690571784407249326293794571428470216341265266511397546925079229553796840353191496878598360407772787785158485812130172900375357100455540785253186698383372694657668446004258929725702260403049436016135535887544734819446212461562609007604522782642840540245433338973678020952174572272651146732676009966081834376408796701027418008467143050314209954184956244700438179081721146132811985145337062794099109445690038574757203912865273190828370621466174944185717589289824087924071047750578562147106622782597965928016215556181183711390039996842598201283065193410764890449148120431034588390445970239790923738564149334270416628989408587394950016873163809226627790027072068508196211856803476105519887163021524239236957478039960533491492136438198676655147609046545656799960287570043269552315150366079391100572405024485193211161054118148651152556156257590520310857380381573307509640589236140963760408765794456733508246654913450015371884246406749288901561812488121768388568221199430606428098026239501062175331302338147255512251196128688507727659162855113513370334128196090922599865372140324326747069712733479780449664874708342404634498615843553838156835802280578767830302804877444508685452776475719982867802996259761386337374875369422346636747916443793894077518549491471324983202228622049439476737961574026345221373377972040169970246524321305694825603967472262242693157611029026223061718692727228201184001214391009424703304881699920744339719935403707258340375500374294497026418337043854345079482959767568494219275455598508037940193891714308992014920986737979733861799685844466093885914250200666203836842100666963577353590560580403858754988201368007862126356642341098589768707049437764846941119314599237772059978003624930473752206201703155056238356642768057633445987408842461043661541405940334504964228107412925400851395917396205588172545086317274997340462553458194319526779782876526891412862787596373879279205178044445085601562291442985595629053491386731616223934407324734771344373645036751928336441478452727950666301367956487403675765879699469440935941694365726103934767718656491971283509034728134239556207921530990212683524471182175103039411598389485864879258818814603789231999440692182049086475814983139477258183721077071246784471764161221779917822269850088123505930693497148715816133178853584514544485824957827537061065514207678471447738497288195496799653388111128008192440145332010470723611621786115791257923378083829083156425100397172370615649971114449042435184374920200625786922678731777085032238368126510072897657457881020825041827898795812543318038405396487810294069813872526836597796345531619670475362207071304982574113231463401683849122543077096155070556469953348480435136487514202639932090908466092472649006626264393759467082976164814981355971602469173898131067759248140724932632813379667327383412079924690079679111597729613159363244508603251707559100803017947926634183589658963782097039921662585844028276650970486316730661184477255397932025155708293338832553249069386145236516758428221766318641628691371593765927532073983091152417003787423426547744457163453139702687868306559541944985327065700972352542997355203998658910045053076961630168950300061536266963694875006878140226023263750618377763768956616900203990958711564490884779123328023913412755658904168789192074731165482027286614487655395212057903384625509764568146310546709068011911752973283730975085756380528610110896084699414046538211447521963508898859967559851361359485969119114427623319445726148078761930122083477498326850609838694327272823123234911311854162890398005563410755774321945659036776331626554211243830528437784158397779059126389776535761185235586801693349055413732300497350864751159442989545567313125851341466413652957167166561701502422701996713341246699960267515117439107776153879602527715121431641976435464664798694691158505885528811503715599516820904603767020939968344169823981208299191134737181582791145925458149015498853071280873064588794488568348061316885621787709625666786985098757423602948615640898237163015240058403043874237315216059519699846510067846731754320739730680377301001743578435475615889551444844970866190608562039553827292085604532367735507522385767672823682062842058395044599970538790828996588326388434808893430710651711549458044598136813226173881652912225903504054424292850505147489389819992548383193305090482756847515475250719921459024106945714053885535146056632308544076949809142134967565203441052228266723279174574613563653520871670070172880742396100508964232779499367945465114189133772380571927950935283026816640237731203298539223701002110449760754717652795917000776423357388463740418317550687628867155490357273122651597216323421029354402628594952450966294356327863638286007845530927173245736043587433248451715815282044096494285941181039030800630418513378739548894089306472197270188301211292717695740525854316231233509486531726990320709440389218010806391832288696086878621250549437392012574826581804321839396102899734500180885862459481110592882336110398497674689209668153411352277582862288447567828431015999869724425325721585655326797000904328969447580431252924035202745706058476990775820471512806880236491926145466059672132347225542224215520810160898979698275223592406378902160590590786047384814594073761327867475857708949060426034275047781280851679836805122755299291618652421400739054246128864045223906988282176496052934205024161624595805542007842128550345394511755961138876168705291021997426393911003767408953913297212497664482311912043733219775532060955719803187060497382870204487252102120432360061952640508485987173208792987765059647932489182261391276668248934630282839147569598452704033458796235114356156428749688690429755380631451732501369481095429846519268213545654963227938592233366105287446228715747319988995688714171893338234331925140186514926553224204853925948127771492613075127033603028245930922671742333843427803321869373261730516426966207433251589761041066959763582186025850317531914825085213128669552123213682223052696394458902959091813593857697078001041860642746042575741508656716829608574841295601603477298404698570604928461978490129991144973531614205082665312095106547460359203180905181502987377712053060301007833897049935948645472467220232355529911403411638440585778798576162865806364558446827546946952249065197900604467138296899142120582849970513156334088905582107398530573533979624167236331687980531468111961826011133042632912094727037848489666797879652890941706146085310006323318792523887380546621489891247980199425048684133620829366416070660054384091571637532785542207941285021615253140753105420199895078308071335932654250045751259255477078988764718437811712175002397597440559081659130795698372640710262539973649243441079070024128551633895103572220015915277643677062153576829645105919075096072824732205920658915884645049716788022384258543158458236711963884222325348476405742463761750936243166920987483864622928991575232465759234336695456118988611642114778426294267662115062279032658173530702536524215511188566820039997661391484279300671629501354269723329643552039661171806644480741258294910882945650340750282532289766113709966094455373243439601741454685762479368284165878173254072006542545219638191206016627974940362921179319655325676462765563872996263267711818111503910143852598807334164474368183035191083067347593367238855738343888688743683380730372068669957607389390006078853220392942558102336497936674937275008246960757419593634296045071588428852108812361840769039032196883427956502034618151166991505785814388820911837589424505763282074422073357342703031225648535575331275390191548331753958392336278661697455929061472319806854418880663856207163313078912836301491572540393239233541948304983541038647903924756199000356756471443647310926201058291168692747765157109076406431665015242084304992898455372438134001493486006644597003993761726431154129250890866152087683970546116299417842932093150753014495550306783021461410723518153644602968778973642418514527911108986751956845597932857906326792901489845744122400274718342068348830768078044594319483282011127593807013935579227627951499821791043701268516124999478980896680382293704630828492873870995054367067159368699282219900235035928740891261140947868343641970611847271454150874101451447750676058039432606031955176326773378401832646108041783446442911818735543097508628977816268664476555138769276527277253327658363289164970460086782301279747297897370333420928722952941852160847248186070055558052663204798973029298557222456396747442478345486682187799479255628874491795487054992667708110079779843794813936444065770993026856331378759360312092740386256708536424196043036839292578739832265298452875115072623301414501698711143228287518057449013378728446701198484587795502221587837289273176760020699344675987203991037088130759030280336631204209135091467664308739403322020800972365544772333745871185221330438411893540434335167430094153254859534318931334493931950379531047339885930452589747817894806939447473772836246274789244467167431386133485900502430452195317221286265894640842663229730798643958152624948270535258583696718477227171661944337700539431862174596544648068630834663453627131304220607492828648947810294633553062259836405312851316130624358156826672112372460885484310369551568964212051810013886665112283914984096842688247138683099052946884723452277939740117469117307306972625418733080969230121432497715539728096496838362454646984749945788288989741092312080647263695146316164697339813238785665521210966866635078132614371017677060106854868477044270987958383992295299609525067185730002827108377236497498031432980236271046874815164809195114917850745784809066312770122829142207294897970222073827163104229424699329031312147418513794669586356818895699199619100069855833299540345404881932698091554534924901549739045815667498748454367186380113944602556531212975481200366136750664729157950791006822657531302406704564601675395231019697127112855415012410882920648907855959620279089496149178370357187347493467559240916931545813785062981647810709131611322892032160322181649657060471647069136684815834851286401541689482574480371391841024711963574897519250719306907861640178088610396029638104750880956836621742074632755572604843779664366120442120980252009777864220446964081079912673009721256595953110623195896349128745876945515024723124324529681755890235578950661540037720720161237362839386620697111544075312233760280277034724657377874935855809591580617520786876947279680415498670619077307116752342487334445361855092426089037671435362316819998757382077499513772929157323333969385988903466968761386259368400799869923348295766000410131246815392012331463848692603239111049912666108011986338276021680268716605380368146100829664516823156869321922003599044672565656823298323559791701645249517726058044647891901199053102269105581337127956189708899388746452324645788064334750143116809593690460123067373126055674448561871546834271536304620690297595995414719886070214348483343445776303270654163076066711860322343870488996939120135764878037964276868630100298467003554388401173139282443246157002264425730394849395631935782914125848353510139598543595353638229981071699596198305614535924025294045701253229274682035178509105060132185474659385748589472824552261649925516743398449311574689156913324662406792654022419334391995751820413345490886183235416349075245043105716054897134854315524917015370277551128324634662507289641137948255317130810454772408355485198115962500096049439139790105568374066723343040395552341915980107433405799702460020766535537719496888748032537257922695684994975208248476197013364666578808163612131825381844990675308909258548565348667072637441715382048537485135453155537496357017777311889141478883876688622357232227637956595716398970531555965424763733725084453291582904028814643924195053983119308773666926110333416452132507289730716118297850013795572112502035946164296096614584640959910844546617428802133643613518353952686457839694913664651322905233217800594463054381589962403194855476233056585198832636952593267162422191409170737336601956765257899882716495932263054707838944296541249782970064314127388809157398725403903570168589833322103230926892155530491414334053362163113357553822818845248743809414848490642276460492234778597592625258494013297858064605104693807252600797613757606366139480502462699003045561410238028631986627467005884939930298024730448295685589933067973502512685659503722153495577056266149939660885728593589495098314731929142912926067606667362315807917959074803681347546308098334070944155984725508932419510037390904716438554012146290119932929113989156665589702733534447868670965098529052051245458655170101544053853643807993258340869833338521295043871989336365634262724464638095899795720932542940519044710705143484644039573370241428357331140342419548432863228283489998450621666988114896025020360785021056720738807194590578883741372275253319800061371348944562169206649299299920616592973696667690099006137985913382919792074428474408299110936367480462165237632854545209953869774072505545900812490067870014238869897211221567655710848399127248523377380507070827930404266947037362000243961629573439671584504118331536569407190249802057817590306943535194495920443908812115227265137767867606431180702287693579145898999389669670640484060374066612836232881726110803758524105824843692787867108289902469116922147591208060937889153299612975652724432137776904534348001829667304187935957124863304320806868962493044791506662857842680294060016135278329050234203604019004100277923014135312412837536662170141300106692613016834021124442764159502664132583793560255040138269638623096311768765136026857556389491080333215373082005237747018124816322722566194941556139030547099998325796694937249099287934528544436540584357092474958252409482614567125125396083802684582863428293445281400117854521361482616754646266668208080667026015605076641388614958169383477734218580659838010076315901082925253749295528496391201596826234899902594968958311972310515203764780707758310726835768364872787579275816308495610789495271420439758299603307140216373983795056661571679194023147374222109583970876619162361988651284413891035646012644607148682229104924889179861008062777806575175681181439047387540646968803198681858160282697533485463432150488366171844662745839154818804174574222378845593173726213067676185264200088900335044438342270247628079210130931124178886774369627075345370927909686866113179747759769494416985406868905737705394077125854160861842957087819415058767044906860757384993100276701563072458287102607609578171816923928239047266524070743398468097083330964409907822771308998502844106558791565714322657220853545284412877619713354688724399339830284080560225255033173010139547018820516545209437459856490054437974409238777527291881287607473436768959141933378235685758098316694570005004684386317010304151680737007894959597318163997371268562471595806336478888315429314301737122641444651304010174003392806997470391224578244702078797434445372541813575127002028379179661187042341649022385938251902379839137410920533515154122993427091373652166770218051401842978945554940490084410970329680304704927667923465628395254857106486115148776724045021566363723214248997916480393982522517948272246849087140111273714898966755222904972749151375676678082579586830679788147759348534438366632769861117943484164119927484392651947582620154069347301737372081730114295601144818732892611302823477245812557126664351140116158591629534179486858971055433999863068482034707112025472422981864843812105523896462132367612135950818648470383006718286804723661243444527195848325167431831117552332459512876791136255829191864066018810688883436661056952201473071725098732394982183487679853721647768719109154716951017432798820915472512162217687551968698495134530401646975169004325349162118633009939985752548324824780496170189487818179142538687242989435682277218752395696299147355999297413635613929143260817713129740526968478634513208814855171863261530154204933662546949516195290737118315370832120852713982248281463900959287797298354601529623586227626376308905909971505422753603232473002846295379252833396139485515467159174128972915178921997533856077938039513943554946067557202520944353923049983059599337830058817337565077708327292653331826212780699575606780339800478606611614390534151464116767409477199433240155106250265655458150654311683849768078216918437185268139501621050755678745875686897456869331275186215238507003788695632663731348183045564869944994425814497175328610259341071291410489900519577204907550286703684183317791912375046198372529342372836013255541439868848920150295644067558081195429868780014834268395664439750776838429961603957416733237079583689064295567758131387618499395493465296322478810316122821862188640606857603202639598958484214199781105946937344458916447335140066654197097565671394564314007108350744618827272023263413449064842333044468876294499660572356502790697945981285198841797290885230604911531038064195403789602226966691694815830532582223418646808051188536186419887304683910242379049873829327823448617607520221522290786972541756153149525931604770614506044425479255743031572608049853014799135371402545133319316140317047994983789914744681422226748403748433672430873182235905366042984551996614510833909915164163691184174172953127371844327874447828726607444407176522071563891629789749956809830227068352233049488539484467419839494262416857229150283239635385516356339781339838180463349465967369503882354956279765925287904050985155308822316202726393974420905517452154809290981368781339701771663632297487636015159760235006774382048795576098586500741444371183185663111801248297312125665184300351321738177650750901091273038977342795678955174877775939185029331391268760151058947546142717198970517852947940443577855359356175554985980232738103171633587172394908285808614398565541076568492155509673085871892675367835040847586656530274015960429670708869297551608071708459045842582541553751718977086700265289443229634344914580210557773409101826225106163127869666291413737079748908949025539464268811317139119726586375181592454642814279271881218036229959271826206272520425603663261725613426567543307011524160476680218813521304110869621853654874653498925717674538408296732243830652694486334794209980255996013381052703525060642499221347134388026649189070733792478771172524462009039592300502534597813528628404535696994941659063388026715273245404094776140110346994040278340243536317769231093936207402669979456244673434749944242821535695269240414640988807412269456254125433642808751712783980262523006950996209396059080575666227558029547656016065610486369832559622358911491565130306206667860199162293417808896824673509789033649097181434286753181343915936165306900020030039518134842384127559796260929793875459961534941923601339274232654547560512919942044535189858982263230519373705732862482523512486369715364762164585882232101510335743017617226010428404263984891747182867474956343318190154225442080316107823208161180629320603655828933212351278573865888722186721345493575766452144632982665550345857305039269481999206400451754152000786766179869329464736185772790364388244254361136255834921171871819485852844265092379120177833744583942148292870295303850763069316140240648110092276553568859417620636168028863945904830918960147745896674276648414181926201818673428871645440708276375840097360476226668687428468093499710007437077257341735909511170391085783693257765370832140700585121993792893835902617031367474994764711433052992767544932634650757327356641606198150896076191790185130424483058543376037599886861581604387334390740758321576146748851902917354023828105558430043187995726515112538701283406601000517450126936295775896154618083781033469381649803039254092414723967297554333490362685504756920503752112974329065829814944809733807794547301172124196466066826418804390360243708878409859837512071649639088617462599000673662279821688748505914122045072407412322518045637172379329691213395950203789485276995986025756463820603904781319728533987130465438135906047433076205600036018138139494432420599684812835999338669084757176635613481336063239780922975066909339949186396352844408478551156021974774515542542622306430894418187613085930603486176512041094518175832424547205210672625964538547956080815726611134731945638551290666549043070670849060607678103940270982889052817108229241498327671023681658253954429996434089183480789549393677218695165969297533099824085986394856539020935788667466263647100706472223065508383980646180910270552564416525466047641482482238100858517692093657095644982919343451902950458182395299806859951986063381139831309119338046882373341093955123506832294011783441663215235217983429964974861079828753865279228227795904291082763243832498863074513506695963691811972609500098401964770773442808218250197525806210173420200171376852834925018385885972330843389959570219114766917051505508127969321960800334874552267173932118990644828832782911277368224416016867417145565759510915520987914803117494851844867586636173098298585466295183429278185951132149577518846289105629072888736454259499796909154925054747962006812952048507203863953022266376725066184106968625419752805365067400863369866493776449422491801573462891165008191443546760898110829545583679312146389249255878506321516897273370659698616454882654493480828461850560464160327188072902793904799692357930333765264365571255066587287682079576899752891592470135049409146615285657184770692941461658300869109733394690780967336654042878395498402839943264480253764603750831838397799280502892911798186743691715609713205351513019925239184332307515598268188351136256123348354439505505728598374220605312555667319228732080125538173630987176661836574686219229694601577346373896335185143379879751148582397321102527361320581902663099001660993657922150245205368050622229379170856537552236283202361008761588289798957731079043807895050470474938894887241227897443845325358524500956144331604025597538790322347986126442101203234176649681019485353008036637774724217898155916070400596438198527572331602092072601476548718285095156766874979767630081632867050356106726938160811457049594184777083939950310349566873948030838875096244437402147164267144758316771203601860690109857485157833415657171199781606907353269403490778938564037562231038842698993412611976017687673058896205725342095912383611326741108191436874780948939564330732449474298522204091945508851723205370205778062529916809592851534752293375452576068317818065662198568797648506311944742152821909414397705169286646446219481363439960835792320187639328786809194246322775424825423443418185294148055938304432534889441800537046572381536456469368692396202053652536884223129745249179130216344134681959282243652122289543730287016358399341275130340240585761561648029929817426072304747656555447286065934183166817312073192916278347997931948763729452379917575527250978452357220577129899264805775092414124879088829811624096409565218556579510269188263839058024415708111814506574781911210462037961671717677737485510052050393243210952895027179574785570678417364736788546666034436108672224266349192403437262390863121005743523158979127076322506672065639680296931393171704555061510567218784624520890508617594845556225791689414261832423115870283127247031093339461646336272973962397317550390614414665423518382380180276002369814701267379130934716299793464398933780191500971211013477224845191473829149497113484710213722282506710051122203889834689468781735979037345400940420363056721351959217656228591642420639353182774320395195657656071675135328741702890132371136523455820880345625472044390921890804345831016779533773587266584241625898820908256021330951631062341681175867035421095130510694116731978376452030908762099598531273211428312128909834087500573788730601580465757391360794354708279116365262755297398597951875093406749515455575933579409016319770279182419409692025294466324105741636734602554689506812447002209307137345548911083463344154937407872468996452006837284904060795715200938905822905425454132412318847222581546304906266814848884187600543756076416278599299912040472930868824549466281489536257579231488911780891348293827363063144698052163073113708790237111340599408584465852571398379043158835911965330898292910382879509332215405365638041211005673367673341302509252875187415794312772290871158378317091281049976139005743924918883857512091583283152590594619512037821356322412438386235872321153665560271754903999497908323950502965619008551437497497600111759837575555066945639495709914611110131379095960341571786408618366345262379650974049627205882715842951196354734398528737364306507212449009761388447661261021581268189067129319562354840018595989553376103482866987531961877129523192382562767656458185268150893641173606641685731738906535773880571171125989240454423562966235716413794813175456497950508994427366346882020578513691700536742653031667059289817303009109239279265634544642145105952525576657935290104233026080264472242791292311017592349768660717283271258051446779107676477577653065368071765795553756891039438055628844902714909179743749602340760973988119865232418704001606110892788651765956871585673344886416425417372926059180975590879277609541279939847632713577224373456053868356329246440446377410919396097246963117373986676470081494166797026438068537029336835742977076542258840244791657743333565548626458009368200525869538419796744276768537504174558127639755392908784296070150427418939536602989781076725360146654219028716025126175496329746344467694137223269829046594632713575529819949499137938809690801420847561123333489310965620971970476374446543287018645457403368074640718277966907949303615686848770807980342796681796834791921586957442344159952633765532670729715278003531310151618348770354554058821067075099488036523194821425097726243889755920352826798313754385299064986091462104824480027771450863100036238721317826786888039269731506957254021086122500402651357936488737618420751798580967354101647449533420836522939274226568384277132420128272214205615643528071360367252831292515128178399743970945513517837345331144697758492630922842567309312753961711068931555748670655338051891961071770765368777247441794692123272816665659890973692273200225117301606056582802930625607054142495498995336866578063600862132784845619046294197299220510085072865203158686013270924165937583580245047011407029346399468725959709499141683624308557449137170821452584345560165178544189435826582141717098779396167545529928849122154916148108648224741173046723854420854089539115497026912597555530958801843755012817155933994030677837895329528337054356985096968914744087500759279431079904201864539265809136969747897979869408472028538952623707025847335271915912753386713777151444670950954750623853671375914087049275616867919085608138305220626367925604089649393462315551319701170583675545915810996051125875860440184637061310755650919031796787688740359225015480009730028371845921184722872514629623289444968331006944242923389954521736160497335720395123820233002466104614835119039683321562287247049267793925783367938360541741937824285920169546670132798561923216327393530101392205522674514245006312227723319944706558975904682464220621009744876516018427293975451580929681100700161806299284675605146332022282281252114956296266724582165753421370644400677665486530420931379933452970054742907944624379680664198482073050507008982682465158111202149477879125472192218228588539951978249283408164645451392720359467034443565214258979845142430981632450807774097554117361055844806725405794385912919305010260095289200425055144816183652017993987819700827722113853572310965357570333164995148104899515739695335404320225853104003207759002480332510038678474662932478044434595612083268564687307571254475478766291983776271845445460191399100612491062777255365106928068067221222770846457671590462302277642520013073305846629671414356841177256667981524222305959109396167758965562844263517953256013131678823802778515266557952181395624006602940709704829061904164781723713268968329239305822148314856290294187117340250883121070016402230996209615936825032720408918487425345515114427772088595915170181670386465708583438638180819325283364942695576019148546581617651034304144494941964874544545772440393318562759722300012708254208781353896006152830218714579981071494070572534008100903024832062137407866270676841104893009549303396464801445615931010253374405539145927656239127248195835005129191911804844662498633211841475968214449221990394666524351517053740801306610024926599277529073803689081554640675016395301750905528346849925026075712042716920751560504895055630087864998885374032149167834348827859778068131349885509998811464777288589701787694192216666916813828197138796485915575910781178299821796159756538550048989092305599082198366986207583940429441144539948422940300404588045362685339493391837872717089031578738987652857864811842709612705298344980437086898083374510837274830495125193761623207936938086382576631015877134771244961552239300881055342147225995613213280790738124709471365271485727914748305554339559192313570718038168455228469450844788110152640730903950640148544518917190050166311199082325521211803470932265527461755454553849143773554282971559420826964502245250488683760491992736092967655319165189574361478336485764552897159493999920289013949312172228065504500599371442824201456647089314276932560269377803049952039742377929808562392397796442701756670585950615080708891790487328564108787856194607337492616929415128523149670755270864541136817921703242125261876945681928897914025024297078520400050445781203098201428735866736217719772629668490684841171419996440243311737112857648582419587933688098168564337324022553837610278644115937454003604087447652298782835872060072175179859521550970179144974896942541971191079240849834956478016962497733415750809519424561032537494816899138075879319377006618755968762266463946337553734075758831119312948730162844042007152772758863887913150173319937718744454971465230507037411039680058006753267941805974695813112468954276098023058632158481955288886220646953368615923746429310922134045429399146229631518159252453949752682439399772094229215120900726485365277172828147970490123037373977500783532464254520456096196705265992632301720376417035390853047581284555648277851738847704317234139357976310708180144481814762684825423373625465119848409336310090541356887841131340745856293431845636845888464202373525649223143461996566563333630733644015934911645845539303237395813901695589852476295655064837775039264657141704249257185753086287936466472063591968884505358610982482164385171331324770266192695077502600144464737240922173599339169034941066059226658987065709211929477602804894212621238181596728610849121228777376015180327488914799631340421893639512938479590835587224980000199392910752943658892722207600288958618827691882786161526336651861839720397192410493608545892858226721326497580506828732029133685058251943397246281562965706727282385593225854110466144144398067469796906530584908228323045068052839999224332317142974168695042469620281805614177073465262234220045340178115823691162991095995574643032986498663955415430659951339121892853430749297509110680052796969557233045729175511163378368894374908525504585831375527915802970565839999306825975621791612782285116655644788331950463085109934236027085272627510955170220706796535207434602204994620233918344136236138163573437454284605749142862122121478733318484981760938875246898330796090909351745501556104515559959501758750108135085184016213752735627152319760098566631310393301894438312979170469643434176252280974318880767483191781002400326598584753998442917021676296938461410943525197300936479585387308636305289764481340120289795035686450644308961166749893817531315940046619963403940633433972960342210472208323202721135051143969889303681681119142145061319252829608881845929708068313357544296684477205054243220151936850498206389331340108924891550592400815823312034578891167560719686642892485037729113160912960049938514236781444702427301915025989227802053536724312970111956949251898424620342650622063984594284520717151947390582427192584896970600235150938845676114536572863283765777374610793856603084670500422930259910792536391090525579145573231858888323111956048392923976946042300318225522200600365015417219927769436413173386037228082708076953882244812588888472465037277907866944437433107273623070903946912791983260228306070356727399541129553866438984763033360058837438557180473197024558898925320227653573767828014416755588249556371919016208639852811384554654875033860611520222657443816584653457513189717121198711404412834968490150295404125930502408473189257829458813012191726215795246175527786681433471699329657326804942683713846016008464314580090028229684854822107829148603629822286829285263949390771157775834252465187759391449429427918144987404882838882943229559863580711412029286050244251751854648432711817109442234242297088864579732190596873419980827704728826745930016849685232879175705230267545778086494345124505897608985652828546750437722565587026971274119723615716242700516545597948237853445055765398823345401240837503963857723824088601835243276130164231784190725013723186729984782083077162520745550140751347949406586549084845542254472716323583959369390583774364517667153276417991009538423964334742952943510924005074996027976522043292450831422778540228205014589772924562460436945933157476380429643549770061461052300978200412340982398937851038775576553774990644363740236182957013122172140113724950559781863058664156957537154319197001455869625781771049289618973661327273617803820909356214537738023629030405152015106615406126624423028575364791170447924643925941308040204107242289468845701898277489819983982641374088051879263100873141019342129693703255989002815284921108930611909288741035581978426026187793940049220904518547377735845544091178818833596094364287569183125065125190529461628862077012466106381396530692166175396445541449552431591731954043275605197050081934328966742504282809339197200304121527761545670425818800460303525867656751123647932106799128279388729637525260259347756356010750820139017258417585546688462708660268086750100255167050930561599570888642559743803048957309744228884247767376879659724356375828746746297052845224677379478525149434193285946138775331387624522285623414887530330428120476793448302542207496401975551147442037290000422326645128228523846339876559866625554755823934209079794275230541631655045146830165698413217369447643247836872883250307444300514721195969986390815311827620070259227000569267552536486540518548410022665515625527515946542173344016177381966486775833028140147423664860398808539923190272540074188710377393143466437169782959608801036569887761480298675712361512518221649706845339468652475431132107019620414962985436891931754692574854801941577963207163802390132608366729769043892447372482841363672029307539459411330090993247015891000823276693320606369271253891151964052227189450220740404940753219134292153351459847491802781239804337575236186236244829145712291434534813549817732159145254320092597594503905077752310838310944084119168273072357755222612959865022934183852980871225495642629480427432586752091990009284297390949727156578643231806343371466378210518413132805131671126491775570710797424725306337248908052599427163998336632420418398941903400160231529826807732552879663495391413671293105911606511265883475406767561972028001051196957391102957341535251805978067690123238717014229712661602311037251559355155847869313686882954209280212796565748504171728430640721769806742346230380359840520989251781918431675036837344335917897605525503385677062142075789750603159928298145785402401940853732833786737349083390578890446071122084031341963414308605926604539905479742331968426292932327246479901594362654783927753427849134055578973824279125179183678202066879687366938001589152468428967145997132119346104960780626163383255324770682222629236463596471161247459961991012410731721359570403539118724972035166334888839501049927146433661178635726912650431024732902517088047093525652015375884088771638734771559498189659845766096251594237170024650317513336307219121771797867012014831447672543449455456530997672485614058266283198800792710748204741768813483730522112796814526252594573223567939339676830932457915272454241629366478776947402127000260429898086360705419751381030636359398543885088087394157545407303996161305139755692508022972505222363569628456329485444524139245997710146689183348389476195089445354088683055023431519922798031114419895029332788194803083077564693266617576919323949543464148059322481483762467529092281556861490668353185169485740475611262148278924712671497822269577661350229448307977778171808969146754685178549400528672333477239999047264720468056685566513780012898527548009918065903979590282822198406844949693122894408658879876559896687694010619434052604378612115465966578727831562826919907984917026482008903435699795207817546062993692189344985205116189026930931366112416947224628103351023284707600982271473096859761920465478883488708289454806067404790769241839860850837648449504598701880953843625932517982371365809361639544553959291410338222852340002048285732986386477164866004560261626105779729790801397558060895434430333451202536524292673506248734339154992870025321317815347200117186717161920935699464275091030212858694394334512020496073332621148860276496261439422606697367011108983832549362765219971602954504384625516969332919037320615469765710740944706353347490772016028891191096291288670277996137330335129247729918384617288090886026297569797454856440231215982913886077416302454711344942486573336478339224163552967639191247435136509188848637256096371860034836901915481301609339450430290391646039814548690161598116541314600716312306563081097310861954070334003781191847336941063146721781079456859609905417215791514003331763589946448954113414440175978509320091063887951874065230753837089592750414047752671498490922734255595297099589988180136838748626537535868225840396737946347888845436314389577171327879458786229069329939148148349265206320373538233059099364735186783879276791909360321049855761341424110717595571275130058636416511155288628792785217082287550150931690010043621105635489426784682024052011280437857139561762885732909037622118439569030732791030222423369910153131262055187466304578780637709924814593234187659171361259547879048873812944415407352926348156769663791184731144219121775094566407529972514686170480113063527190242006507004752251382018691810798541747417562920471380057471855910976576946099890304533239833309540417538120989192331891833154923354526006561143299140637610527395862419327370971087742469349102637460867690738494927783972407204488275164737426969538892609425540084367812970938032290097531987083345201383076390963108287983332332013630248316218750110896576735402185792252548759140797557095111975587293271899336392994925447964813479234816387671593208329327580152056050308935435340648062433543220850437833025543648545536332013936439989290323275977706235392838808286967758179500837453691737926014764382281493123256048632099428184085723856338404400672623881146198665563423061374878106436235520895880779129657195144790793603677842051048417699630443020694401206929295829741060166474599925634113557044138323870829045175623006463595873114431685086087037399214653408073568860238271299187561782736779509110967352663213917608220398624117846718217482842718541335296220057187914704218415017697876169443607903937775136062140780426983093344271475445574892909311042908643407831061353298569085649440665698997206088604618376402422854991542788615533592535581533138760029761513866861650083192337438735478842925591292009432908638475278864481077483247214364044046706526814980561500753024572350963321710164965412620848956814258307880383317578034565744389611722930650230764948262349947520610767045280646871790737301290431663488925228065731420749214511835990307452883060654522256098454378833512868322478276101528371553606720705931797862438109235985851878385857612687938221377295410007010170061139569803312545286313422596796941354575122765549275848959257278078718844756580040343076849785272997311151727037097925634933214902734927071665608664275495661975388300458065658193060231709096365701212288307232929792499712022273809830524421203194293200870688577194265036638903785514290298319478529166573453380504083166224636894187339575758351748566608949139128272512129799380925225612628933703559875416399015593050543886679992350168217091564470222060388814005711321025356792188315773543437295469163379592573552395985880853427048170544759464447786841663553806899583654605689587629153428260567422016253700539044870133690049636396534228998666128857009831425181620389229436256506381803943971641906772122958990781430217431897946198758295422562092114544689920808660151008329828267062167823837966712374100783520763817385737912686859734786931345573658053726520943478778086707820799197063990695805120393482583986636231501548074434617770501254688241359002186606278369890080840417350774962293231285238533482980513231222958925615519641629324923868551635834348962610757009426999586883248854429793785588453664427541317047126090121795235515616652802818790595790971969909084079202605366685823848067343396162810911226209169795314448583182224890497931454460261395410951240984015327788704565883118368749605180512924595943164078914154414197583561338864208962859624023778633223800421292770853662052561143520554784266948664244257739813478393843414359053580316020833630541587033862244167376451141677549541760273306120550125034354072552037557586087797429512764575970116418541849154391506257711310321771878191629669984827568032305605967869614050730131478221618711164512473030108254793907411053085977791314735234180179257662337006621371884405719080408056211436492076484845043792288012623176741493157492881946912588458726421572690810130125765956538449176949095382153900542255055370823710726491771090532008403634955152239956706852985745299589710519650854119893866402602660675781244828992080044803559400671315709794736100177594018361170185966454783391641417398355473425888578472841086619127410572071811746392897597455376986305502006896744016792064606414024879167185662094073779034102927200429692694861777945721622155890361931160354224372954738474602123261753991651851953808306989613354355560784581756670772723447213510854365924780216775568126567845009295329754538359439659985743977137805011269864399967163494188543988307351893358001680417612765745079898825234965868335040999005614118784066917185648915986542817455145395407609361310970849835482514034700285308267596046060318514736804847790652803326542245298947519521842753437273731711211002227194193799008309297286092150993189618074034380094910933904334194184442902050056016688005264925384144974247076917753167522876657147258855833722223666429414208264069721715516797338820891765629366831313548688061050287073323405001322765264724576746013029321172425121612852817236034645358774710425048184324284642539417259703904247316925005562742009368001626157099127716720889509102600606204203364045102246063327015884590791817627254313599563741629691873535537890278069634301629579929139721995097763077607074076673960886785687276579726699144079203293132797690083073360817027700258096791647828137245146176479490916643324282354756742564766719649730451222006139338109458923311827033607635345703093670818468727475440476235040522798942696075694222229044240167686794654396013970497960262278669214919422834148976880374226185653494064734488126028314500049681770780517675822246536339747636910605650305772743966861530528707141772109405358198969873932656343880977787350529607608845909622234672160398246208832376834198396091484647577730256182590083505010235092361987507481454232503177675514297360734173029112334273479428547635314366813744055885323562920236001162756611886453482340110676550228101198634379377393669748689082975311671075418307187265049765848279784808255727817112076256196986642596283893035517271626393056882741524719721672638058964430435530779904957336474032988288276583970357605564810818165172369485481525940050478968393623443400770105629027205127694961117323395556544831156646041423397758883118049124047706472565803312633977407684268325076636308641640836944363284762260357905569710977704519499626712753636786606714670070487333010898710524240166183539784415933635677850424403895569244755189520128719950291244152526674683987550696490213484543146938926852341490466827078690637460297168321508269944044975240684638064739281393309024018341670133559317397365678690686309743336893360685392531261800629586327841540251859824572251151844207588601961053220326051080080345548002229797677165912961491389883310220858394592205414541757545587250039900043075686723838319176204073163106116420836676813868301111031415147532503734935892822051390512611034030189143037778322032535096037283025358459330625109624500201317690954122101347734931853217491959651253708711771405436172818353310257064222373233121221145758429634460455464949751371472175507200278236275854896555770024684507071856667116831310251694085049220513957468592086142081421509318894702414638469501875203495960142752164146976442370819414372839069121176713697120140674386135868976068574270948259166386986866528373826706097380881594464110690294437306802005071575342387295216855260869468520938358014137534582511886068881075766836428833420640601454698902833217354529070396002388798938063258031734061502606780844152019545900161530025564449275901958714814317629712011786018646186949014198937008831275700187300808258245913083183609054712018546105471506246620657519969845169767337498663959735902089564639748131559824394969134408004838328428839097921860798370537394049100230773101242080971378915142069946371189598408475112763515819713576492275820385707000025920961016254920520360197402304624699072224209227419767042276543738051897921296021216984343792071846218225105538586793149014888698413335131725234484910778737307049296333330384681121727417061096123525878043001770054641674784806111437016323847628660323810705124827049028877184180890533434871815550660868731238356170399536133197953512108167960084374826953220168668498962929104947697715183509268295341406332400614998383717471092603038802982847837766794453643193053710416113932120243153187814039827161728515335067392581282853680315365760573532125071484477752510038869597762071690492939332674347466386840554720966649893802489100714489983146550978798401140620164060571730638623292596840375659743690070800959541618490863763930169026492979997633015632420317186533959678309053448592403328698004175642855030628759212468921136625182363258064202075138751009243712769066846900543907342862136164789608760276863641827666142628925384677026398571758360185700282911304313881799548102082967488618062160274580604573946927767923487098992601966111994248265997394942408585603237317142655157359810988900992836078307298678225950297736637417598398507809861906342174996195232401940138039673316438204627017031017581260234955365226489918395757867327046018293866027377599897739099572600584166605302064340405660676963198563932066899524828198537269450527679893176579870249134012107855491691113465092915247891235773482823361403581175395232765352299156619256754606675175841666757542586229828663861868493567077442629129217770757160559595988190822659592990055768359711616026304707462035283250078337149085549218082237640746108070762679985305078711224523253593031167873446621761575577358469593754925142545581257717834844205510884572343379811467079865765564817343086054748478582325808972803578717724233179050681174330308488969022844175842073611110694679261329613969497173392194545282988784090599381581758580932976995526718006080184953737474665969988209541761938372841949533236799311221778203503150977164638034602517198139636406133301227598599131030795722143444116239279195304677344048977012931734616597520842435855931740623625606278205348139081196953258776717276675883694379277101112452604765992264114434724036730505913086621446777839373097431194900397724014197565205456251848617267190716546167025337093219837762469291847939839945092370626489171440548212940768144979855527464688883114305160518884138264176428124703336526014078966992344331689861511402166437103281370529145351116183146635308096747576891504690953776343450108405837486279398184279224610439828289173005280503801808645943071899619318149068650543958059105968583229281394514707290571206083964527238145175675244087604947255862225439890525368696545357054903627323927911166818142748871910636667820084408106944098576608619872869647413048616395917792206204278334774238467185760305653180649213890758681940547673682860617644891298710772952381668617998960462831016305597181357606473932522531427815495553178864692788380720167216867568501105280536170982868419882388891940777476337095164964048929100825794970355997758848284415027704665651444548332910374515609626393224790317116624713532719835625773670048977015207849626953215331826222728406703195024065089564614354566142569410369955233450595582084308924968829138003718279274780842625949549810344881475087777466675386911108256153346920205131259201718094464776578172296690080351811354079991349839186023582285218005898185307825939982682637438542255481021145448975560212991153419164852739697892537940647069267715255678257198439415534114385655858170563809077033739635556840164573299357737053961281720322046375415219457991603177412223748292241062001019795302583731603204824589914607662862245059268016538162863099019355268884876491488949823452005454010690529207836629799507991394090298417482417596636548186993350628849816099984250278961361015420001499969638913048728044249491801019344189962000963043344393023778358763189327198998466683696210032293560783172504041983601823022828427713232368822376808979833498940890128579976263317270302529054241623998304324612134166536680541262966409723760313005724508307224287403899159108795009369378866807218036781396228111766711314924645775123136061087194204724499369489021557409097746226406318349171361048662944186048439506283319610262563707190760093170148216621519026736022444075926500475457178019845198721232427734526495466941124368172039484779809199291797734985582814217638028776207076491634225530287625765920952956113324913263200559505643654620708139279708091375989074348725818560988290190032794864630644182237292387821661064334908261331417252709303877427159806152208795579154983175613322199967270810424433989056078705430714074762359582326451053539146087304773815896038606883596328337213972101304201384017326340092057970679434000151001274848593662345224800250601268985782554924956302498830433466076407883493579796352921937472454404785090500246790001284536625374858767144988406134182725906749978101481929722575978266656580937487782244434781231260949945040132780280157141986662055449228733131934367936793472351686892216229070515918362681916652718590983062435817739760527241431965510240072716145583806929673606299752694606279876708096912805854038284814046401428647911457453439474314539529822328258014707552773441430249063624463567379605480072259432718021026036746227268128075566411804061702487443528351451913638457936160986664210808453315064158490657651464780728656060657662753214559114270800983568309477615424184081081139939097259681200191608228901106063739697716393354167618654962590508833047415045603464466250195063202739586145554608067410931868962428874784745725905950874630234766483898551424933735367355593936103269333540053818728154484749738176672574291522919259312165821587436683323254217477968595542365043327250665619019902159622495517426258322793204758439639733038666615263980939280020647104817533025724188388520736475619186970187201210156510092321144837021473083310730140434561010102363603978186166371831403759774476728807417583410356088316702197880559339992312959021952432215332216947844442618813099303626019276257839536823886801179353236738162820982344918769799427877684328196352185877100209591927871563768073205993870091046422562213402589073281637602980764562591092794014772994270502210668687286211429854348634244127005710590188633168457164757806443446351168432611087971937747787541510491409580492103229247699222173102501162513559796915000643445654376342040395614525706855694369329403744446626639003443880238691882871083801075494888620963716562201831129184917642016396111932017332371155710760051554705577663666613547347469709348433771053834565864732526750951628674705818056250055018106473228477558877136118877743664691378720478163204216914953350397691121069635423521108261023631103837937746307815520920541474640734747619454584890574372681304632643837643242165776086996853171540430290246902899005124294161189305341022461328709683156621106462679208764622031569166068506692688961550767370690291158632510875719777591312604814066963418582198975090200629717316633722696944534447589588046361623886081829054637756704403401010952554662278117411523772759587368218877374063038721101466366916904998963892255619090170718977232832962309410959037121590991213026447913344307297820974980214824398341229215936149147952661130094660758088501879902303859299381308401391125056078515225460347005979411813424874508172650893688958395251156302169299742717557371114338310448706986054692562071246435871615420216046523197354208732627511683076573065055242706640871325594197705205073356839477325446861242548771486322583465564108335683677620803103949006663551064544842091062848161539498522315713270109681202115227637438718085612785221041839699416398998215642295233855476387610991211157068504689729344174454638903826734297476787349932476448354409954533519299640020299089657533479638623979941970016756769686082805227670502803446188313999158029450298002090174536424825933020035247808397205660975290552946009321195016536940151339521990827421565259312462776839877507598783035459806639357173203638888844473890043335746417310448392237149682256725040408988882671602127991936371865740524163312952536408424473619086969222885640516141504858010618987697788874472804943242848019826649738583583236064887348290517120019193226809808300770020480644680012434619911602405128949528520504909382272707733576332746846031718987188439317107498973219032872575712632247427597394178775951063413978485515383927238448933724434336047698431402671407781931044700348637924833676137478265657969770553724626988112492785942761169890277222583173623864606870458819871076612832320008927771853661965553300389534479033159853895470128054885373533405370360131209318621108533620800596324440695735902844910625004887888030686584094721795641363692653776580083469949315292908688316148707979949085292130690499465606368688887862782316607835378486199303799370556817798144129915170123756745890128488957757075014406893244704344341239320032193492426288136792827147588491982215433889392553954346623318760214592057932907060088358697789224781742614189011153381345741966837344420504885226334376962809300720598777858547610405971914292824961582579648415467426029423889838995717865528733275155477692963174334337019020722369969010622057211026964170723085829945980654156099992926181128251759924529030633678035986650053941605196515289047030641320140197819878325447966193779532841757343768090164246546789710962347623984773409859165352719863129153433885644889262989005312824201089195855068455915830962381825945983225608290495908443405099051126050191359853499427401410272536611508488363251470806333509294112522200014868171843607396689350812852604896276543586431843085226138329731329977604761340910863039856722154080441694800590352975987839044354510866852177707228828138572964419778193205843955238534627348489970318086115906066365447430564287186144063298883330042139462488026283550294579586844068225257321364315916424064796204271108154047423342646792271021181568917044214966169970363234357717007959163790057355249224443075769238466623559046448748458572801947218493368617184201115303682330300594953054080948825427440403650236384853505784990884086534422295250282808488235611444570400698325754990672268203915543934673496081474080306368605955548762307185809784917230241949060392462018203505649632508356886487350227418363587917528030542548805410024278402265126618481989681501628653546757357581594066503183663015468492442761817816854667959716996303083237390539453966385867129941856880432768851546871302086490277407839939211292404974195860892163464178017286506414596203556307855526198435719355013732488400559456490518207553194779361251209740587264450281541839276105301923406564690619572370176490004928608147782012861817649305052156483778010246182629645865199104731120621459304461470732232916208058806795689108407304892993483700613667836393395036303361016567083669772139740149961302976231418233542220387282926713595994875472186361473895984208483304800101690599734960533324650089681685960545994604044956857658822022865620046705765299674221847322612019508096902338371339159428258590188444544377809884760989930125088056240678436058265094956514540268803139744937115229851237254656839512309526269123188788787700671362283182538207314384281387885522445278766112564031830325256721914523284667755887525980827553525843257953039079339875795380655012010679663399980648532038490804126613489214292090036828697046385084398093988481886889855019933410144561416731022987304576081103627892092987134612008754314350146940206846981195976204379700654993366348544826877704984144204990612771035758017525759980979812938849105290543222174257693347004727063183262670883589795838643281636699976189339955397502993050716374258648433087790983364009976858045455434926423581929114377111787432877419757149046623632840417106856907191435624167955323745044206049456727863425024063876070605122732785826830557254637336020389776543019928657770183898110583407136762146975095713538995318914648131991371866963950856709306833156162837646870671522627279758897972085211884157567045713520691868295204488803899684303010652313631246780335907584352799457444166229935717416406973472903993001748920948569538249311935090327401798043295251095377601831255603164971141294247189820396438616158652601088411920760093834705605366701491558169081486225409478221981701042557824074681145434477851296885266660157051851793395682650177980701027787304041600536094632312502403603853167201733670322016769218355026218859885910538621839093394095640934731093606745778771949757101230855580894088182835974870622741014260684430200350844106414631548189982152702386681458267481753796773112139308612940426588527276983924985904469231587116842138091517534512827503617146413835053240435177886392786864410477899774760439309485713399413283000315423987860104618152602041324514706049982735655101991330951929269364901717785455805973080982994493082143440649399271013862749230574203890406570758092523472847425849842199976115630132778470039896452267034169889851099746977466476130905886838778392509732971624533340201730672490785491880763009813448199246252179251039742818171320410495360246438523179327765285099895264393890113054527677430236015604230935010520881011232934811705541144825039522509553015739573738031899754926733587258548784609755371598269363043175819589579078896483677734569521824412326479181767182752067591046685114827977972577211054835825295308980528504055384553621604660314572475087986730638798663887829083387251822408304481340828332485576037820939867788900298330194141431799715379407911847331971763191329074085035794025279433207974455198263645804938564284948318423885596549535917702333742925718234890460505965429961333711731794043465694536421736308797948678647950751111061682771639407981740389449632885828266204706821065151559578238130456058888295439189207770043226069436511145175649581480529288420053088761042468956235247072319956151011149895694971219813308634836438424136824863939615453750002921281771283695313903535409178451527362888557551060414288189429770189590682862519052202894361656398945467651934491717755980597550913896687564310371843208471109861160131690368431515060838526682589932119912315401257970536508065654489741048846124983799610142147512638060905544912335961457651322208168336569920367089872529793001641680227256142093036900790143018010561478250851586008747919422435681049804222426011602891417254725792984267154909958628002438767970890210021922310006529161325625826273865786951647887782774377637299652362113251511248170668247634840213701127697033314814993858585456192471223729278620993350032095960482828285662331703460466394868378073577188601926942460573603036738420407346456465883956378932164696100745771556884644698574770718368031469770548402541455493845906207515091714053045615832340743921509653854119060987348437645261987649330594610167214619470557685571642441109792951457151512474098912856391470359943195266408590539109257474506018315221536754213546665155674048533594150156371186320445255428620770764985661863196295780971021324722876081830098152575307775646528518292372795332399743515806309126089347685765985372286263471002175166162399683993295458016379546796998087807447338737439728312634861367478704028463953960262095376658615860783664555618370653390175121809005125937522133632339704067792191944446656002512554511095339486463089328180887749848858829946132619547532997086651572844451288943205575700065994678601004209371803935867074761248543207016398567764404801296737042580200119170561319966163250043002278448035877699524009404706661367800727404747673203356217109755112355307720143031811087780793688601930030269936714461021264817506275699141519402370421770687650942054250508541215215659141567825084544553744753331711160886732767466014583245634839226524707165430619436294017668058506496125674306481605076865914128815844495909549866569466221030953154776548636302744785319251359939315936131251525793775010301062449030522737645724173579362158362588707326270764483487761115491798948881998527907407792909481346768329603375689784437039458426078753231238771152474595435281564770748380943187412207679488400830856353607609716178079803936966428693535748007576092319782085519251619219456871954829565871952460758915264491517537284736130555628305600038042501417568323555819125584887277158348059929827703017444771070534888852490580943944121267883446512496536688667418603605941066987012108811973718692111061674520296752639329915709890705020454974871169134030277230796176652735904859585578216591526906151933630069228434795045165571036657101068222261835398202227038690242463656599964208106634611918447661818176286244815419329273996606662569405605988349415287151533019612158939299391662230089404644705898701703724056674340627561268028695849327717902159543949638402728674515827068800383981099847971076306498691585607626866946893968411901241197402464430602916950630968280461827373141454455101120462856785741216792658724271842815226695903787037822945201863581729689185862872978868251937033998535164807651468562017115602756216200512923025209833025158573712797509568426208657562320827851005014545149491689146216241587029312958676701254882998536832629942946124711711205886599760166652085328605253960264387972018860434857814254248796192007147020712041837933091209191462939123478430798579990063593414162021112342116962918273201999085506772390196055704931177273265912889553587072485914633038246362805148200908003946951271822256236878448612768681650473758827805705748133380650378185457224383097617830341958490697008303206752992759439799909580142105163812117693181029119863635666069666200386646906626841402234921156964993607482982069461502256363071025491314705243756811274120585026033084666004947501655975050324164515746764288371183849060529253313290853136238520488449683696278107687574238989695236513960736729576636222824654696287244614479053886030968737851551360787662378664309466367253329937961489587825232689076039429327941314104096483462408558007774465106461991664280453282408353464430143654818242533674823485230073335200156928530528782444089587060372336504587491840330391582308605196982429067298643093728939371157602431183982031239857560634015570250485760201195074899753887254204395214889916808970584490396328592187366590577873079393064344043795944317238399384493765295718276058429539206734830474898700662585687366903892429661010261118347795941201558859241734382599545702020412201496925010120562856760422697949817439708811323431798346420565069744979729507394626963899330564798325444943914947808605345198299867935941230735874505644694574624498249213796274637010062588595651775019114616915387372145762439629154113093580672118089833151392599783483627503719024795701264730651571619566121137708343944864133005924640201199128560347814564589853337540804370419017147285939817479895125236480676000503843194848710994623078378478882647393075849653670019683770557710419696284340355148998330264459693111263169889587125049468090614836595982596493696600935383451055791320467092589290523237954651974672898878405637064648954770560157263745538543818239581882626101308226247153454442614798741894793393143377422544088053584430022480347396804245324136090003810581367193123213270283695520669874077887525621213275849985812097189148213836537537456272255667055187433214620692265462843493675521578373533075440566740088752455508317557438521134921986137879521933061744248056440091503998630361553733317021077798513786592841846518452562412649130653318035446661512376924120776702675452788183643761106597429557959665398365678065291114762424664082496077974420908901381646794986649488902428647095304762336884185688952854232531963932987071282577266195296307026706832236939439463365653953275671138699886680926850770636124357184698365242143181094727529441723031929299495559691070443166862020579032005187711484948330558656587992075104092355395790217465443016233801028222112729105258592540535005689321402920034308130333688031472835590877383219606231557321032236171429492578705846456871994813971508845493599459730170157761264745129452991459173552781451044862686939321924132976086415770146697888027965189735329991134193993755338205591077308549037856604011867031265878557251037248059745863732174386387286167229099025163831489063347410818408882300621815691032940235112395669714681528891716035726629162610633729327036293571765985421273847203428447619674911138221803989185459400631181260994825691872345671977399251231371568102527524229075175498720905083540083601352749653099775539980058235482068998123798245874371754643211131433466182707396158293798717321280610001649654909666504763644677961637974495598069762330577050250626115215588397795914911187439371221253705294026080216823427757876012995299136191775464967307357613133637897106717561348832622957188190480062265434201087083950293384036564707536307111244400377782985558977113212031327348348704549294018124304785211644822592146933372017366565032784231169182895417368323147434637556721562560745819733480588413198316278385171628606229616451377115352386970783587879565489085007811867498020612697504197771340967338098438799544228123371588742649306615409421583707932346117155004594128737772351860725021029924119352277263323742596327860234592600206487848981910537766938454409885818387311745310899442268967093347028086503984106694047037558084439595552640363427799150023723177240497780391833586974369632504082325349708513737397152248044238794823233187704521657498694316943544501958063295520554008940869672984047299268557608327156089107713271141970919361581611431163054351874292413062595828268849953559795029656581980524262257935986284574324401975699275580585808989794340817215872138892341678393532588785222968578729544622602233066382872403188823342336597747789404157450909364248482522241023530865336343825533497747819175520552700666956915337011592820264201496768655628477042469540784896820303534119794958460976997225816980576875914584747460460141632426817391059983813678820108283670170395468885751106765618415550547156492223730529544010253452554396859360607485495359215766771385927298890285228932335934469066606459639039850357427651877120738323755577552231278788506181990595557974302547614253998235970501459186581224681385301969059021375064457528479132912720004387108974458427825429290289574228081581580722793844732733267399650812487113401578990228125635127226602666166466633765289389833939642888428256008928478999488582849347645494098595377048010453955501252439644154444515148584045298227646873764663084939902893537905321762506808297575902198025964878153609882725691587631130055770030546005451088854992958155950463636999033330869836266809767374677270410042451040863612209072622105659642604986019822154659149266747883264925126108163585005178087529286721732073445792377578254708294317965051934968624499259041706050180711040998518693270923485928778049197258350320915309320234895822934483762579697184832383134517803635465274325811586699807999638591006702880420936541343358071209958389788984845918238668923274841925782617624284733260768851492201658821381931319215347813257882958209935285602618708508408655251549061549992096107472384410151554361143775910831051804477060819729913359484371672231683212042456134002813957325294410263790439177285257335414540716362503613599210070467349378038951679497480260937894823704924328541408864456760585346712580309263344979780137466581447688945015255721631749148744725583821988410472192582756877554005603182341891277288074079571543644681897380440114736156426730735997217427768041951196170435122271175951762267568426957795061906328812994532257552120006013802766191639042988282655454427295359330461152439347477262066904397873882482098315787349459014682580374306497866473938398564863445439045769305988348392160296616368235230070593316771009152390600956277323577802405595477647873023848028419397883782432354245885094289983162943487769574551818022958397311627592932879894290250998626406642039011964745018349034210945682548388168067157634431954444880678764195195221329180764591619438471189368581891920644584410467554496935929193372836810391925860365814847625248892852842410190161828195413049697091558795819419471994523002681751165772648827407768467361036240765840978759657330799711111549531447361508089487671570858852735472578816480225934836813397569854480884769840332487535297501990580186926042749640832437347433948916152199347070429838114661159846985493172155779491524638563404767160935160544527593738848265010271969175001460997664971233300105707908590743696485561090275888560982406886456324962936860222155890108659056073754800374396507118579515630387172796778192924631134051280246851151465218660266616806844484167472605485822742962137903367297851402845495682429152190021130839623261192747293315670758840883409723472902240909601412510183994051792473047935117404466339070683670059044581842328597889565950690211314455687466794049335998906330646410879979844753113938991970809827390993810880783681968036814489757277989202633002381318046099511368256800660695574437809577916998513077103125746859608928562792034551642919581559555117325334600743104094757949859989789524070245215876040385206883996825038375611265539800588983348920171620537941888680584107496290182817957905005596688230909999987952285266009780512506650559306528276290671045774000727879239666571400692152883905221762730732471720903416815941887589726398112189988611949637529579172309545793945877392928810202171089736317415114132628307722489716385952017301184702527192231054645803606296884094853295614157513845491794944801719974736181203647356757060432584992400429982664577512268749532441212529590656403347404544917538557295820605139277527913989917316532848901110925974020801441135618561474513679987156965847851553574419793042654847856279054327569310917047890902989912363996010314831837243995843814227345358048880165342718248742764224101314490275157858007703268983305989896151330076447264169343441788632778905665764682919319187154234701412389246167527256858657505593511961475951593172043250720845087172628752457838208576269000014580803041558851545534892709261011368624692607037484652001557888515001305591422180448547914249224990788902893512809046458190490443591805100879099650701581546516698567640029726985335612739245115528666599683262440718414769996224882797195879631124810600035755846204070864859847722452265222695286386750410487292705847134549799448610440494482374504010062586605044306486607660332375743500195464070822651293369475295466399307450307273559502371220482656948054115971742761023312348601887720862152224863688844570604703672015843844498260843896028787196460667127379382597025215274747009394746038775815855661512809442549083224138774858213232592448628831069376290899532638023275163775059175017277519568969652883446268857262740086429116234832144679489030936079156213748271259409422486084996057297378067278221574419852483795252153229340852184180494846826291916979240765652538502163786968015486788431554211118495140739262941377343234184770662484155852666830337969484035259162119479186149036210470933309079769537030701621236594265335757147516035395012029164600433982991998224637675572728260533491721636675428457808088598342104971530469589131122062213556991261616591586349820508662687029576760108035307356416207174039134271419259969288707709254327681528782733049485947163708723400569197266456227619340435597786751872498236673573705078370784430440154198966823100593438768550466022331172171684559688268689568373948056555519977140723564250885929935599864315326016420964382058542722313003805789688807914636794473957389617886757813073100834931316540849377561819366641607025712888672527254453635651339695705930833857641182782099430934820731957016074527978649668569870925748854417869216029668582876479433001744929990436838445318823317477262050312231080394553763140667313925737048484729965415897574837456702049347852284889181959482223883896350784974971312893554251099312376551276077880132181431146210650226072158443299564555263965050948890462017546665127423440968807332971212453621828005734670519459925551753081555602600190650086213568360367136540783781577612937022032407542634497072768822881187372894637006247350580657671487453071803591701935608677589967442828952822002213383345172831792793730309470633675822475286266516960931410882436580097352034408260937576377997271695588570552440019255898313912384934679469805609865865817174579959180051549567507862297794292389210841117986876034710745643381879189276998888103051594317273745553997204597754270516031817206271988468806402899993449074140792837046769894912272725366630335835192367130514665799433489451557013694462245305003432028327982692238299065500575559943673518190407928233188658508330306702860337133410925080732350552054179935139472564952747774128077934669126864728662306228867567924886163480686139734835005172634713474169423413743106329525633562230774536875307408733005260621308091314607963613157348254945759141110552954873401108857998819627178153373801613871422307905223211902342523919699955452132491899874895017987507748140700759067651988852030612556979400099790442519790010345120502165903873025731909596652236218594979724443021864686379938953211952593724305313750141494337378493133870248149808765173946199676152510179257080221455835548745986641841368107745954270336521334428007296425218687116776194511817221343911422991521813946066644832025832209918728669585693373753003981967328933429214147726625345652971229441390955776246444517071560513817467121181000154025833416417529053851853899634013230030636965232017611762150848828134966040323001306987785195304580607774215987006162603461044877640542764084198844276470809240452493633867349340120187584197510495652882082399090496233504027991826612394509636044358381888486290788781360103395324722237831216811623378449366220066541174880783612350195512675550374891154687103435800822237961068852905733785240521888049380592282285468548957947549445363186998472293568549919650106340309882074094256597236132142162896248654710725102978243500955945845942426648374945051086765607434638286530574692629357500900789726522331757622545356175090002579681552012317866011554639928926407389728452447407153352770128192347230571517033744725935636073043211670757776006752991990900521765443288517916897899515282285539803631053000304195716734588560623951789279991545069653528357317848953499270218792741477863445672344326867877537953611706839147686070517214864504491982648763164047887765463392081872802499239862795601339487979768493490922734151219230502291894844003008324582998775803285706559509005716802789805503772255647924691779178794822816167036011097382584945520441309254549157712101132269644114470657493446863821481378262991590996500893887340792947953132057056159300244887481254611161256502266987333086084051847119043227200152733839946795352425796052438296483941216872060475240830721165521583699889551402076907219123572702624524964413656216161429366165987217355524602135077272213428828506136419080096198351186542815114133354914323809985521982235952431249948181053134444039373592394072324828343737401784898984679972323410425850268584639175414307922918171800867267649906446328433497581383666495473220416851126652506736960910228160365887716920521001960890377393333958392202434553664061852862986401908764792492563248487943682229746737537980602219612944602211453467544413179089276942333857308840597217038369888504534617420697394599007059816059576429368789498059548941389380101200129576199474813743120446950664423071922509000032720176606916016334161229849501740324523307066586766114965439580817126953368474213812810670044317463707774782030202252373368929983605235586210252183839462235295700241998635653904221795570806648572842313779020596578587064653792803459648973316413276711003876810489909097224419575879388849676857322592346432961834880354000529836263974268194162874474868274863852400482151228154108360388572443653358402992173689750178264410674812031027004830646976101904828041900013861099574449437511420574359391375647278084342078601941579986776454022087065938722445614934831239244209011423143992155753610978956031445796110328452196688380161455292591034163632044327644608954849977057354415574824782878887148348628308441173463216970526407645680181939455099093618772764554495496308271025812579956722160142931731822280410269117130882368099307935043786604431377776216764756957676796953288845191810468684565834218309950213965183085455653979547019716695227198697843130437019218948793904373121268258959076860384143141290728748035229330347406619228789173526504803105096409287027393223454249331518444530260357597384899472054748091123761197123642311930597013007972121351582486985595367465284359988011744569662964017522854386187513360252723442409568116943889695455409054599002356859420811169027836151518670014002849764798851206504849339350175233110345243345654044867462888582774153313007036977582687811543563662998828138156514813774686356598775261602514002927739378998078821070525732400140421262364629835719546902641455288676090633890142827387971893850372833016495437266639369690317165434162550147907937877200459082298790482882600703668512577904892735551918380975331978980089486846965312425364852893596933930179504009063394280883690278881252759342545613732309524182143725090410795753334196667358877656865776978775151411470096686719395279741340258380209768298419943495130352805696252574635676773605249290201338924662054054485307175605827938483844767694995959819435675750896177856918201973539823450092129613154445891059433783861718089931139056124233101723745502844136519200527799570667507943342111974329666689520145844325752399250562436995162044046807738132247676550487646368342254466276083584925263538078384877056494184309128597592334528655888788925727245309060379263294162044374379274275927035522225145439294830235725806038875425451968272549364211780223530862121152640570712166236973601950792131167922083481881640748457867741832496254302692867746107497348310727008728471113730499124299133177180205935698225036874911787277859211421629356823401827740445141444230365000235877844252327185729043245437553963902570906750285695797963981879148809903430142689418690986328626010193055133524971175892565356081308086922518906840799018521179038051877995225916915830151829616649500640273398992540007753120328471105905297565070536696820496427684661043187136326132397484277446862248199802308846207817028248338923350366082925138203852026188794496244641296741330484919478919458205644038553108432279704767553611945542074599593062964081483307935862941934443202606561393483157382972538008210244423873130286455149213096599146226688788371617509424634361074450755731956721780637115617822766560980194577336388312671332852974739858166141604169883941843863971672409006464553177557030495988623943042224129842965232937192895785384659550956420527091100075823792084176734115246100610047753494948875483844579070775418598246943845937642376889751273088805154769097727402896460397768362653900298414032440405524099110182889626322159842799981426866562697992246678464742468569975841428147598748276529630879233227606259252101545845186867316432246693399331071404394249516284464008999108590861146151939486540079831439194218460079782190547812339038228101360273060236683540183178291393938410074571862296739225522307436964093394458981296674711727984456565049599089366399935299639820615678111903585164355900514778103756974553023641355546915289733547072188049267402622852195528321821500363758455288899037673957810535401075276038595605236362656637384504446715740134748102471146598461258920540400465542722908514705955619498145377652201385086109424518319976710673329819152647919535064955129952045540733958798791590505511702545006814193651832374935657481303432769391606723404064698695369609105060664939223613060077294839685964114834955062825450613970607408512682777515586344848059068945152628863919408399616054968318919641205226099247626030624680616426143998470698777036298461019246566649573852550237295645972999462192648844977604568647762214502005234282127848738411829909261227370017652495814698495985308933747445841254922339570387556218195158775550671972449641200101353759806524493178743282781807780387474538337891938147987665545782989418853794005113921389042090164399287151022143962007761218563104212397583476593076669123825701216772494721001622045638309907702972817569460595976040734946729987722088510158239904937217336653162173621098954777558184601948981021344826276213523240156765394479507230272754882279468267481435186779175328168756341590891028938770391542054009575776408035619510413274571312707181171166235710598769556991029847074308666672133317801789310745385384942100442747097694903584760960160069266435267561443354577450171966178441401073397866124269528764198186074392817440825370461796025269036555240518649818142927504694892213427855359523207536871909608967307743784736938175888172243043044160735850783127751457654454767948200121620130003271452166366298366995485130857103499560935971274814005651427437243888809818993611680010941827016666404732546974726918315449575777223676182127150487230548320950837388436405502066859136167967679992346032541038848051543344564622495362179187906406850971517404531603131079044847296179994169288135208578255229012138793957025574010867027967708085714315237052142473221003906435317213339200928456538304765250415650679608817642063827461250660428343368396927498482332439640147352777250460795030376451724573107253845220584865253535261593825672028198639623344837096778187769306797441175493669109679568845440257893138312968178610115512169212667279151125231679911553827408163781783604451497526644691205243042795484582752583339072533300881485596681061967351822513664673069817691849147591773139821509804402057894659442521118462782930766081369089586399521414233650172430751824074915874131083241211552970659294364485308761492001422895003515098251329441342654124375486829974683189903460031259975816792721935650318962743108660525157436122677387668968743900250002540891239249201087113880336599067742646446132969686984054956718086210087034086062913763190401810751939556211153688997250474284900518583774322635946077828643061113771872864951504785893445986193074936912538038480577127491182602771495648540612806414568126940862593399755061191562737282798864742286385194200390317301415513606729209073225068458272249909661391418566337704336249898249795338698170593374932762499834592974027319787410236913863637284614739795152229039394792434177051226577697176341443617031888135502792345478586986626693954233144491151978696678655952318204420376027243383625463233012749570941617237583256239258164373740871811754567450320219922856427980565063462238934359948671407959456718237330929956872362718165074091291859326621869847624166792511173648659482795978411661594112513049967006323817208815433415365822727441614950483297784239250401498861093387527012363603350591845846738352424875999962658454715681151457948161052558940318765918836499875528820822852609637478638115351403383404085868549621569710213951291596190911490734210981654064631587958662237844522060644585897656604906470735757178211458813303431058853038983793963924292260174018150235438131743057107077587428297073458056609301873962904603987887228590539139222892401276326020195116181884965927136336102130288270316408463496873125365851347268014016960520664019270997031767503379499552687687243685693568071058118210064128646820045958608463012742492536677082930014403691577347265982686883725188869872244846010137724082176850643394937669747095584235119026696188543842906144338951327968560351750787398513310619596378503291816644415078255718331915433569077480507032190207331187991563283555829989876186123747197933529920218721524842092142722860264164403849322323496993726744178533196845082571018506984926077219364529651462007123023393856295484125578340645412394190544367995289569419624405667857838725743664399640668072651985701409393391280984809734991411946625127232441084931675726881700658265194361292277411347028823869621292693151721060649946929613931731371097491761838715914612315523888278162123051871800343393382286464347387960008995874200827250166366756446133439177382501148981467715753871497627891381047286903796494823926733644576514357076786836919579069287451495744767951464343299205762645044627302438948891165718313900952673951222840552429141817477580688452791396251906254535147651885390157764882749684631296449748648027065776672035898736119144008060912426570671020799853232072115137833060696129272631946669358143704922301554311136400128606533079604000443052971175473854136688878612845831108326547535631529735570230021973706297905159389588336209130267575866167845089739285718190219696085904403245444991699114736646918267024508566844467524574427048397017391089124279514771932461757149668925815873130768828527964389386230382438460996115399791586060347244887274586691627182361264668553722643316341733696223014933100927108943843830196367543873107868401446016092111090156387307477875751549570494931976831224012479839261402869196793704437988031103542521009552232949140308961936633535940558595919512764931626800166999958170853123672014579429572129526457274980318139372514122777995887792154778046573074009608849576186080172655756116797360151495680591445313451562097089021216419884039051077794394399290557321641453469052857319518283096965445599620152440880940415836242380751283846763703556983947058736082107556110573426774137715589720387273933466604741066783035857490790456229108852984550387886367252890396002806174700003620708866737289101477246118283898440131514227539927503486936823193622570300322205752958062372625351406300521821254406826084033945989908979478043803210460620183182447232619988674531180311261505674245290840095912332729038814492848247198470732935070704727200220381913199259578463272501635231697028459164342799193763533120640665269277844308601669508444327324581297704451004649656681159738472691084289617520952723366559429861273374753136288038901598841195156115142540507537160823130765623236344944358029871041500841187973490375867192168600843607026085888461022298469863731271329832810128859994474904659084987612682493936689406288693391997183084432806884971489216087756578885876123323635591487350657520981107230979239064680832923713959096020255996209306698230157523946483755047944250334749970369129709682519855700249778677271270083645550371334702959403145219394696028654931114859587568208641054340216231291735309197094866962991284517553280504584678941227978888153036295110472460432898166139756828753383503474359398795985038476211711953851573390697725261310049508243111623319277253708718760286179266629303622703041037764675056522822664054605636429853849397226772311562125334660973240001782875040521297035981457408132938284292635872543294460057771656983288463473337142383551288600373390989672550615215834161806787369946598993979520672328570642964508343514203710649938722269322792745587300628073539281030512336560385803165920998324681973680841475883581410284925723626345081623570550602990808773350955165370756215765778509181658196402603689149158667449245141756927634752645673285850461980843607318177737318848066848547392008104056636570288939427868650523659237555633353742712754644119572206200205702200098896613215273540008470465127400973509069522110851827635927618428836257294664263267225835075554633767408333402947762086927089548423363786080672765779927714101607516823729004742933260514425812714548384874886015884999924333000575047175689083620285562114175236184638268876612955374642625137067889920969835045290389201076108046860193184312364831865699390676213440466376660369177296955069921941260534803079982830984047513710139144820610321347081035291377175544299578484133900585012272959506970708888419590709547458413977506554590863051288426530752168904148052195793961281227477285283469671435232531921287982563418705919076549525874979395703581983932829434616556365041755729272063045744287610089779211721890063600304584284896091276780575382559408415644635417531199046711253806589683852664626960322954331543470959192583510107978240550463915961776496753403593925288392837424796462590191972715700285880496648155037444076637181955723399565008224468834567823617608684932804099037216777447524224103849386245297693260488784541236752027990364446847666699205117479453925128342140447109143974332959574213624091516741418448583425136341252161852847026331404559022463312067037797449832163372513353006658172945878380305710520118119870742385105160005190126518552363663506198707917531074879007794285791307321908484980536943326726732895183099892843995800133422503524240194891155055409190127907287109425617955862474939355700326875176301856290900023176150658423009341455611864927612860165689548571793127286429476762146250330132009826117676057869613470311537311627392986793240599057709042807937456461021092301581451775857158514177591728485749911030615142273554091689410693564040057347675044234064506310851658203687944103269826522538232297281123775867939960590264987555943030062353540587302225293914173683826130748564020477327861054276813005069088233670216166824242377084251383478808361399178687340436298807124759003266150815620909300177028010536749985854194529534139663972781545145770570230831546142459506274298383609624897202224644109232768125044405989022753859087663173386118385738594260064553429256867748529790676411956035795879827672783283652341843611533289474247525282623818465041743245481109709453373670544484793325833780166678142603171413268711242751905069326179579920071899867344850361390374222192093187346535450267994415348412296168820191940788170177558446229069762006784662450690475223684940890133303589493105710606531137051735769990645625151286867452590484606926905657105094492000180406694121055773950123150822144276527010839040460245315960689527771834142048228587405636835998059726895165028878797589604616727403910442105403645020720192194555334775145175976096304445193232488979038281473868810283510907191450810384545034269263602351510452429060812368726744178663657004241071252882230783594950003933385977395040716885778712043665221793819109865160737623055898515636815018607194115571991223916822483495211319992330602843027816295451990249475814754011973288033663666896338868860126045692702277100462653919108671872833297679196729062426333981746353660730560315983722760979440537560868143473904546235919662812907640528693465867390601230393044830877809054134001257199560236592641270356785777253171605410504318373531781573604440095507342402380021424476945738969040276685746166841439202393227377110327686193650669122234751630216227844930576453698049218399206143729495618937422548166085322320739962894797076564733130526958823538464896723801820907848340765956890283510581134469887140627842736373028957079943992641894793655972554175278443867893738871491537786300312656137991194417502617507219778144559826788114412480173697029219653621412422856409755533249492456934348868348408164746755921858402752598310068357175661966109200855207827871974079633187572051114008206508272625015374454155136148431968811055192122079335842234155146049714788956296129841092871672538653660815380046235044173399194587888882818651648558481088072541691331019438706912401651704063315148891892417540855059268764912636449106774811617626764063971171501438652515676800726109022429729392734851125168822314526380049498858914023229658577783472358795249124387147148939369857564820409655363034027458154107381911310035264406353011915617724812577206950947177714181933009053194728932726245067034766163857812524219693501792314617685960368556073636871356284605017732786437631975676838102909515479263476869409681457185421768111728628470397409106643037677583627430820000805005266530523178570282503622021940637584158481857379230692658124514524414816191555498450246283098519877865049452472945975857601021791240879274096890598648594894427616865551776860006143322678551243238080315596836790004847005814186731649491665259140123933821211452586026996212112747959218066682503149042702898904382252366040864183455584081835108861998822177774792563243446189035562793609095901425940561335182781870191089143704464520482744849143276177683621140857494368734269841999132707923547835303001548175141105923217967014236223223704530036085096906209933919053840728117100384046281504591699316389261239619067386886022373692767244705227961031391049168972768594772094077881751255592211437643735573534979089222124279154458195485133284369199840535227861361755132511513491302948502463738803121038106891413623926172073848859611654406578835534735282495857635621990043948848054249848114337104731950575093738241000200193410252245523380440378551928165571621136785615205602587474477068405319541069399294513607826529887056468175209483389265819305146628276376796901578918225235540973876672508355682381070123543251971891828563558459293167274076086930427389497909342058924207373404055220131875434716690032291007084345080673409304821699282111861621634631340589834720818231658238625996499851199120413142518013372413239209143341090387585839311739200764804775417053951100598044579132622136818365013587318938246281261038327667906268468077143238393194214865523652726350629771322795495866643553349230958895362020904700178898339877952581141044041777733361674455039406245229071147140246502621230437250651723483532689566924755733077375470695016250681862713828147226185349731345889554597527060939048186982765789390133518455999445712649280873964883516066720648658463228427894913756210422951765486656790251533982539620251213927725165467766233855788977464039220673853534115241305220056474276153657236132920826690691164281575340747192247480982760047998335565206282542948196241611695119606209101521987945664068238913467422391032343171091722924272703437811634616408431872517226495601285655640972212423587926613800405881989781603692502734893091206629055365506722461562811565915470118236616600569178102199493016434106806586962711348247951406106524931787705005669553660066722380717559025124189843431611683535168185387668571944934221889252963938445013058347777027469431165657163949542443600126893715390255704134250492344791588394263675072156081564593365195547648480110124857227837709164947428824017267465801151191355162598368025279322375137728061046973153954763039650275798942587104744529357361525191501346397634419085331842171272708788081523377374382079790829227484029513682432523300785870447527598477150147338096313783783100642334094001122261183754410389004325864324883568194041820755759166688978657949549581844419100891639521211423810375529665364151365356424228076114115205659517912311285195293985475393200357871549339900272959670562725900974091310528845796832597485800277195842430811802517923524772401654873258849198544216459301452146236008336724146001564923143766966384877733585771739373447142475935509673386150329342943071328559879049251902506702321496658525373572019967285693201106790956231354350284765303186195270856915841090727344566164159965318341428416954105678760286459220467044426705876654286022637224085108294546363045237439763111283812112913164995506520188338832706279140403202670372635994080462910751026754393168204471811376525016321216445387351499416582435030267928505015536398557105206144748911943261397892590933740965521976936875111259008497753933266586267378581280662208008747863929447547681037272549351404150768185711394707988049415537809496162648881370032907352642564965463367917374128403367322867174405478233406999447694820907794459535847119036901805092689744328906306471097907445194897202116873461240770246464949233839773273654838533895825005074722788986021713950096340416747968541111920044528959218144512978372558631631939199722881727034073829541507376639718968439359754835707314980127747865931185595410286331505032326527165683891326446660838595179649631611729395094142787344624203552043531622248847336008635700416967196977402500183915824325805591517774062459466444150769428917420005170665715781348766770668221451863755505024433451055474684252411129584122855613615400341520455565225203873271202649675314914528106219113805559795653587307641239496716151861667575380231749303477314728610661831362878130379992918797913870658953856022089253246397998384185983526011625128862475040841357647089023342911876203516421212304940431131028611914377590105375732957548028507956500273177594265415558696094734272265137582638903583985328487613118648891112369884655918159812528501405962158838992919959454350919690411904490836076750398197870145991948961227153470626560694119974500364659002424145128044342321527651675698559243376814398078619509469202888381746712303131997334729667546173381112289151718008726649543251912179980700745117666436324139613839826345795916379769504061401509226019326256511295247464685828996337528618106173829027465960064359389907794961953036231214703601666594135151241892918189509770770365868187349238934182342347381446427450181459948149677246698229292979963583267744400565965458958166591578343982576289741089806939856218391093046691608966510956400433063290538465739339502240726628253660281863591995430883497985675924198951109360157949319102935894025689275807435144282206309508646047455004347307190660229559362804121705158423097755541251807706578197616652623192288941880049963789069028491099499148933624384061420766446116757077865654799558661634789923591435359434542271197526699340544037239529800884883011828428220096820333515200485423140386519462275456784349523608471158047300339744626576862389060671840551991404235706493074299376168565949900342313886719751156531451497909890319749193162686340618368071235655719566331092343832272501573578562933659330469650114146069189346298123279438109772192583296960303718084812324919798170350428351579950891657047760449264186852548804550275068436734385086148027148524512806508513075284416993593138185130859528942106754404957902706351551642652647948878175448754089892372050917313494319636722764926830097623720678034527780103791249385215792343762502466549454752787328684803570283913534158127125528217958805537799644124434280525748609013279445802826376894293288722174402057870991121475688651206791927854747365981626854724974292970779355130891147133398715197661643591465099823533937926352176739275991640556902140349489750993684249686732513438227159259897974133184034273950126242493606562641435425577250552983447506365839365528983133834024683606101798404649714059156902155514541935564521070851573384481846015822873676296029753432841746847248735029109898667040647509095701136688442811217431077702439698422676043623390266171105599616099444557447650971919983685455112740897875952829297398090531822348541842638406263692287112577899050938311536245073529226405316530487499786128218157270543642724582806247683756871822899188901468648538182509955370951487484265921177199265612303606850490088462673752386075953679060653405155564173443608484349189326512619775909889185083565760964155070532710551563666886759044837519761699797884245525727115831880494392263160431192535548641457849810076205913625055368176594729164057679116061401271563400327062108131092524097315486757502372181497872848967037542310242568965696272974188969451781457215488164198211083714585722085076840697633002853756483660888691169338762555744252277464598409989115669706598795267283330296374541061697524467144518411772796955584977604658347475329744984645214327212419497388882824071023101366988303889217637600740819393346427483484911061603371378081378925826204727652885784221820080026049747626167420333048079763252370850098119334090116065101886532453190429243547264485439467443007821608286089761607673464358911604179709969554491669199419811242015036787732740330270458125243901885248511782299069289020088190541722946080843883867545052937418772786547022043492521719244989105120941292907791532341495633911222112871731388807759872715372317538563702673298117003865692588988271594236284243528001083235126016954179511224070838536085767027261994341709330512589512670815143863304375797996483065257034486040790048035175044702059578546252441264033185824228798117611950575034940412829613857221956934473757148122115765793350422009922375885638266934785869875588254814055356166130931368606603935465070285984617505347964781655210455536022953937778618543904049671709502157359042816684096112676507608246573812975621600310341737295366692389128834253138823511377936649119650154192406194505713902497069621514300426133799976090111992378035534592914681091654729047179070727752255696002314690853525462322219177003591787481840588180968147484982617146062882692131454487150744035097667354148146693967984379336677988829576904026715150789313796653648828990891991096706151548848832183260813867374820773220469711028924683674683833193279609260171011481613069323595275408550740879324445237719656097119548082280194914036476952444300435828113631154304205617482435842805664947686175627077336536929129229284143316057900740540249485416353846067528800574071530454848051233070211658003571075414633488257491117968970005770862543066764274121127829899535430598539346959973417039697576389707728414156436194881076708201467692890851348797013492728654491919615451642855759075618763813280188103410584448354283140295067984083631219561312779872060092691403065030306151114770275367754614227300414163305249956367499130293187571057305455804572987277042857726608399624798679874498628526255349238863275512151123496521091581351563521429437490993283260380775311654725533403801969231073506647386868479831327557277930057963498009858782490584074454416465662105858064905983206772849022504983775332220160887316149345377527176960898609877948698062927734139801518500530517940310836323971746529903807805846462823758770334353268485065588551469603305545335003644423932356917325608003181833994561922747200448487330675121143210433858808173390500558425702998079405828018012343027099401678375092788353583557864436870034147518947072490499259775010678559586458300659010966705274773410793157578164945838253222063139110687875616869206245671271024372151618956928249156704008438537423901035665271504823538276172619105786511504183300900812129883121594091563268400963481151719024348745292561524428063184005788337707986828836077274001782123286062862018727764678638157012265130907520532454080895104593809645380899802346421728794398607759861668464003076175687267258613230799197727423285401524653504955596829983879733262473938318231661950927067206342369043639342344415643482845393664966067334929674790415095732326470979357648385675189898284994858473872104891362741986158047645969239742550201866875659959062639227847997076952573662939873976988967710079625579393649558335323259340352858130574024396263150869338895265306905414062440575967734464553599099286544654395416595074128829022876364952430889166521303755138069158508638341108900967858062801810269190851663249765141683830011651957995008818642706979367637725852642445250450611434032708010859249866876941797095989050759085739859458080762977636718541835574522406587389613346656076976659887641118814843736536748292318449101095499818618597831765553594964545684669696291294038741187375331334262747064163884090440789638715678117299166106674811892018797337899456309386044907517319730204019427038905530477603162706393641977333865510713537056934046139229975470118812265247314238803785173368298718437724120451663831074689018761118248504816845298909545958686019423712240115787775267626463860098873102630053690965263661201760979593957670118919000781188444867112006474829520575507191793967394991040047247390518894920996454031020523467499936844300332819897996797980120710872553449760351119915574682080268642111108780558471452518512480963931313002873015818730032146773728309036495226642948505984715461329780533543383732408747907091672805597803200624803989926310549425638696487254618106481889957560902505636563546253290659900535535932434789317551078092477013518285549932465303184207035158238804483694182896414031035713297571500675223882807730104090620865753311017694118775152396065686678928479997664071728904212211999654012989681997278708024496957753067990785558256258985860816309716039103234016528211526658744582854173250486993908980436378349225872891418146318280549790968513308311759253698206581152762048392609921765663957771517926810428580773004554179442342228060614843754659960783170082900097236247054371262423875107650354571329084201105323428710083969861880866259471680625046497751951399556947533574385813890080699163161335009687352706754467278013138568544310104673306836199850214134277361437703744835202035966334597610994307439472108112519407038152371031210911836345194307527544130369676002376936864196263570303252578493593905486449906294249339705777931111627499209928022746363402308861036372308281854484382074977465231780481373591230815532530870076821476113229831232531956372252747949771550765709664131295283924827230787320413883484542486291613530528690919730961110966140170134224187414489994578102184997872554396090812173096115196787903244930947756428604427048611136666092667101467268428797912648717071573692843583453032855345813263220806642086143056225021551649728033538652084898493958903566936937667603810284458220664575876591867395035965403401542362707601476571168665066513538752326166829427278814783017003123614230394371334293305591449855636610123932318298877096220754051852584747970484882652226243612390690898446834214107302082475319289535143893529874970780292721900477514677749690354245168771357683710933212801274370467541878677475486136869201724249230113884085811143563510402914979238281019870174213694575261492448922569479386275822058035786662228335242528212344082955979096713636543439214417701090451006548628777912809795457500515648695793595705321118017294461298005738988149870881921359713533862841999651846151974983651399923286872370131344070495613960567410339313242589282236658026144328333131101827897541643378974508701898852874295582820828611933845857856353896759680926754421291025289202260898839777177763216156180308310583806102386840355390641489131598493187593806668474825931117860164338527315736439291343899739569010184973747437566269311907623799036348653803753911569122493461885328460468987467856885297062735486088198628280193538657720166590006160313479037920334521035388714901769307656728538552246640143589603998757877602482456718404936575714233195574158810434974595979274324399073124743499002437510689944070484504127772746867145978616883172935383997878657704197060170107733600958414718809603134063347414283561158543474899318960271440321281228537623787468775396204930960581976380538215274044427078980851375653399697231977811215578901304916157437258837737890293951644926283797984619652302764308287907032729677688884380843987867943399631879188723633923471173203231007185560270753289893122284361096587504197126586547054745382469313792178034897834070652990140818484529554457534627716820382333765165302201154361101286837306842715026880399699134788714778242129102087971627452794072132912992602627943945939646685499517060395054244988044049706900782878366929900550228916194597500632971901024501117793454852513152064404537593615595490176789773890502842792513773561514956672875821279229610685475330417438500773427629179038322080225477336246549072260125749827274395830941939166115812600631256387889770845469556499443699260357211036497637966482844992117132650308414655985269791747700318321726115861523865442224036564918467002133943285134232772975765751874622288301468390433593798034780717946077425822500721103496505674891294484256149313654395522649921734848725964926279415002224985566940505999011816016150899395697425166498168642581845228734545086768975486677953662258473354487545519051274544062887606995378778817168740621822630269141113048800305208733240570458837090195866160466620626401413264186029361510755503324247659332946301287518734007858850613435364534620582890983723937077504510274499038430461087251920847977351755329407129966067459545296212254840808206772497434908828225651582973624178991735921728839211619814437944745258493042348620273816592082549529117052422388678117363053401849300310209578485651330753771922067404627875189683378731443070754319803037574120852051515729723374866917747342292991608277827037802040779301557668392514090605509203531507801997151847007120799576376892528065040869048996954290367068163588218453589533710869261014125082240385449123792742158088997238312193237698492260665040895591133921999769511629716775107930482806758112190734343879952418491579470417129565880157057137510058516398273442865969963658711175630081414411151772576431987651092968016073072739938501937200031889268232739453983324967916148556250905282438062805042273599132709155887568408789471786562888914355542285256629660353646260633725819571946144360096510299135549601490296282138508964505013908323986657650455522962025676504939755627729792685645377073891236877624305549576730945394406505301219484310485240278063927062057867117937630314575586923377562762736202118067642227045948100218943502850702596970339823417528802126699680233738540510061181481387959332209170489844869348303461372695053909360812330143819560962676168658111546687674658429725996843922485400856499792468082230571680979562775341707114382020264597982364795600251385626443849480038285090935741121349625091532987137136197043446347831498065856384015758625250118127506451238116776862946500318395981036055270884456201876334872697960148107448961895222176547007521250531858205724214282526959383451228780921943809747293917712249217374108767892715905948140378602560502517465027681625904843493787837266971921952959657556249577201332966584678031813358134425863833482298578171427385916092164195736759130119318393225745102124132940573224130653991198639311498977317555365757824554043304087561928477935747233259466077301559475522740369562581532734744606553821877008470528290887240281914419484103948766897979247249042588671570668194460052431465552047199384645677741791242778341051466260856332092968423558079512595045787613482811896664489960922784209213266016376314491355027790461055743436560980752210029762418761383180819953809555811229536272067339718725652690509381330668327269671160462161566838865100471485177077697568008364417657159007802410607006613902686233874534026256391358384354829105061021452521062180909273854705533168975809735516712061808947395173083900132453987696707472109559926978656491738449435258189435707811777522595226445632231425275358079971792354462862419757344518058097591253420782978765890735430561881254112587529199565542707546650920536659279246961281094515753444993312288509068729138391196270903519372169207624610099199931142441951133130309703964068190732134994422493445351705438038214963397195542105088128489423926990525033534147184910637112847181791636614255382311498380254048110327393977408055632494882561708588092415418224038221501035958602673378659614742110262691088697173857600658729213999909629088372548941988727169954879290902615404528621164681050260657146527991580600056856190535140654285559361394980032074640742123954700112702727991441380172011138546976089988432617164332327350565751000595075900453147902800449541316255099020230215242376685964633083530167482819979667222708184652384967949790933920450000621943473837598690480519158408135008361824176798320891707173756520338609776553388233765277067856214978874289328596944645974095023348560726403249768578486171015947552893256936478063430457064509964642403978954766997923037636124047778302100544482012193011462066728942454370139170210443591631701116797216895731581718317485251856912317511833345350179663812007721588835207839489869646491771280387418733058364853463849672179469142441459737139905527018484795718789352039622799910647132550356237037428084789443145186894000732935505114555636243606103163479224337671559069775211727779641880618700549820460123056049273751067568210057675440457594819715478465238766823281425001794335164499130323985585845246618336546211049560726709556417237643056307178814956426503086701088842857665632091805792455682731411372772393363856716954682770506352821177974933190702487223068455353920527150558104351647136823687514772556549993982363402497665713131456601101579713794961031649396786976742686695975163829252426358240210970036485117762325379935542944222940962463905608081464305520835724238384010607759931246486689926823845333278466216628086570183286927706240027460498993385116775293184772996552491154017212264941186313200447272205285798517410922711444437298558253570665939579862279705234924578882653165277686121050165725851890588996129572175351339296685504213793872174159668411912628084375952126855406822368904747963187139167938381659440594603314733987843199215579393244010292263066774892579965424891512021812787866495080233107302146964041883042971724835847976776565578379263505422522325747777581438456486444685380798512675320687687247180478293457104287848851275031456277866970690740646156840809731793095252378140048895370293858023631938791086050857971496690982472197811943762540896447881544359596752054261150580406879619623978049781698384088458379744278108830756570550002207759106840070095348217823445603045364249284318021322590144719069991869115901742250067818318950622802666905063833082475487220551011713545064033861583069212145912837834714094441225297248045912660204549491104229815769713117914847921940353444447353731163322137834699601114060318367504671439763841659879215365292324185213080653797638856002107507520123498142410551331873902585972697092276279622228537109707041792926179082290799604080438156317254879874839278480611410393829782500403914637338281006639985582056251337379624351873459109960580590670640414662688629566177932895317651323779788030184882063895713096512252980945775175291985155175444051740259773298425599847375340543365619844925694109974192562411214050574819697487362957172104290543098874781701656871600163171824271241915858590022823475042299398741499017988035351065205270776724247390224047912962831577161072683125348591442980630950461030905828373301790696727185790673903329983672334008767796779481361178118380372848862865680199914762658595035356967867427461202613673855187700012720350641495067961726191462969395373591868671688448319973007293154386191471955297663448298142467504288281793862106889568276752196235833500085504909282013249236172028732644193418044367282168188393341289697253292091546443642572367602716172558480284938607978815959503503566676438770320937829522726308399779453989456971945890443785859371614227229115977011059317093504793004672245976932572579936095721745534179182497943881038747320783388134140680964387299502910799521238197633506346109830255161813118304534594231357818321478074253062097444768920978730257542801645356783327845621699072593266142837891404651396604368549853552797549222855862983406055041071975319518978019883665396152737803791725433903342157392260681320765846567919397660176577298671898750982778745680606631205223219784329350269066447303186476834776386938664632949775161224652917295354913661871312625060694931922472266239818209476823632338411308700310493630257811561594838003959150908454261674969331556362478352297691479405852541247754027644391159632253096051137779845179400985109573444097048488836399642825137056396747870719037714853564259116139192313759344630664396194677174986030581836700355376122621392565263978340538903182004208527234388935551502804685607578807354245461576304532187195810296479929143755055176988887234115214446850273661861102899712538470238032196529707515114834342874932984099488181148292381810369011333758959233130759253532810256049703641507438200167655451085737501973297395289226730820659756803290815230725874309885617337962836207067902276221572551296949299812647183600576242468222067167848914672750733383521390404593761251632507030830900713829225278304979711979100036548670919036583078986582758030876988978051950011195639187683631423316950689913148399738722062048697843716915511326216273837692398486238970721231019984119961496432305247311224361103993111845559210434330639100105014073886137156764869837781884126022869940724258226297167531018537928922079102615606857751529518367248151686046138921860501648310697117574977849133634467817959324560263794946722781923141479784427529373214169460241748908946200627921398232350460906723986618619527231337499300101627297517621442990186414948397325994983540289731058795282431621858528862669177601205231423598532587541202960228650433253671335782473585781866017117175541230177796210807500988581288070125438734482762568395187822060528584566189037896149528073122728812778292037928784123407384989915575907459850399385778231825962178442995233813781403008813891590638860445129329264081133386398039206095781452943673254835432457967447549451761490929764495255466018178553547845663336430081987873870378238208842928754403217904702546227398133047307744444528658236024250621767433360672304604479153586989057241581497659635354778364233611075609713756285437027003841263319767326368730758519710492224141050093851942009103513981894312991955345613351844030135287166623992130374909483787306028519249745557856268060646338157703373802708577122606139529142438211243682002264246311962700516959392933924047819564483687200160653821129524837841132566329959584177563082730176684432395343609751049566342643836322787277352092515302274183304387238612357090948236008066046035800929985863763808484127334294311413473233535367142606650178497024848380410124288033068922219961198410691889826317395645413586120840019068223833652831751139209343383342690685469829265381604424764402117498061864771285907915632738033042159054743462641516609283925794898537002804430031009719488852412475819757978960435078367463051685254531542627119728244906212127814800408308528336493045828203479094193122339500939313826102264814995501997401841728585214590939387853033836193266884121013876868625757210753961087539929140749516923355731153936970139070641967951491091211138846430389418817896750181855654267298702891633399602439798308455685255541691195593714625696050154773322824573362291548074969493556365691257140749214686422678905731300613830463442157249188260104541568607489650265364958194723537441637810351351955718811545403274589296155576403466148369961539227716945205641433358412663139776885057528289430538732050353629543786533428624891043852024267864841716808824857162436842838033784614484544556728211160864697920362288040598778942534862156490016216688490002493444952870566528299563442625416137967065527242855003078112874634064169405011348349444292801076699190290404949436691155366047297988738178015735696440141435890230497298007262968653540462919533651391502538396644068519661627516288388851968153251819834900194655109343675402497636491596166980765336707494933809346298398457128112180775464652468543848733120910117290556763810500003395621963157979243799206315624305745829416154151630590980630643502971122028639560946519947425621439056145107664447105030657090640591130875963030792059580658012892282716985849600975772941566606816745126398640269068473329522590106833865871770301215719628078565242407857479964742686305298051122976459943507061767352051031339455848222304612315748484948243095405489367883828682849190478898249934336693032682093181754603455317037000566768437567236685563990258724367928097935146536563840272435510405373955886559041410765046898264115510777250232626126125327394428963027015173056354892913101856556418455276593112166786946066689459480967556499681413372800841438241650218479185152590254461216075666135488925105921592161421512788332149643461833602036873405104275076014533544569720299631053754287580847161190353103171161319283318550554198138173187276525481876210947359644415953215372035481886271382402549421240718842589248308227548537188040580066853363039342879310287574972292390438344867814511864370405151301171577725935532342420373326067193930471354053642808866712340103849473163134984235171050561097719920664354591599513157201603414156871787003045873712718525170013717025974171748901279868626820261039749425939159007561159297283126263933639194038999378770945017214734328731024661632899351462236390600304207613408544614980637008979973876144518850656982384935208737894252775547820765771166526388486157924991729735868137363415668499682786104893760593222238912519314610690637610237360358217969749015395408241958843667022616192434576834278910779955424526147002963064961583829721214221222079824163852250043222189034804939515048203436719874615781127185637605719001645806718151375624290650542689568855341786458844861839304543086149164773457666842293069435985740595953501896124020130397349641361385388272413235957406525411347803183851717545415112766599641583719978713927057668583996646744855182143260056147216651427787979990789774141185084001940685118660988162454888583895603547853653133016523404654131337273768093466264806657360023535554732358344366505238853348876947173194446814085804448461995538928381843528690902975504528762572301037160090373799440253745844898985055919153860602401216749746448989119749954176672217492291777586026366801769865972822144709404205784077292889630609160203213497652093238956272612403775191789925320402213715760674472055836867105073072986923246736510581984912540069122064896529638576206308292422437266314364628390893111727859167142441564732254169219384276434772817297372826313284509541036911992483695401985105187923013301342243925998384298232681370829767290839785411763143602738859175896985680312846267406363792973237153594646143924859926831834409164136766027346982858994056951056410949580311748675169501523518382825801658445628710397051546606450095209476608269746633100136078311129958052620196438649536106575189907720566139417551401078143484314143363243413731128647258579264178654336233632272062493467056388513260518001274436776727651224729604624567694022567409257629018393830444771544795312708541193625958582782704608762620177819601384700542751531946953776075491851687945110240711555033943929296290211301233924241339132433965981200015931263124937274562151649491293066418103048780998182540268659537148879149137451593438263618954293999557300847708371521020831708944929580277405681254727529426870187955921977757760245876757891311856322935590827340067774176991947510986278849980447094975460180080219024501201622502335442186908739633989139946431850225631325218663525891928876893537355119540751287736670697981122842069653158814708230095049184596493423044445526396014350559848373844794357724677274235271752636644607322472840721907715978614678705732420274487820484554572690692358866410534558890321475816739980533165404898992246443622985471864741768598390487118754821457084275733733719118243505815479276622986230212464773547487444337061092530216634136611249410447845601846720527256814117309685364691408586024640715504759277252616149883378440656116957333962447673014820155603767940965407163839494522431533191125253195863912176121708175228511633975182605674742882371922118379031219694589784141791201540040833332106237704088156336512252645132882832533607334488071238642597760061190657642562737581150326718696284717588543640572599961788048041340734888969555704382061936983926841452467209405817959681645156366590840306732052399740767264836802292840674269476080497636747093599747333421085716069338863689857658457771788444906804327875862403726685140587908747424471613843198464124752235753588419518450315777108502737922073402318864785827342571426729769132368398355606420740518010606689036868022126783339578398466201494604621359167059681343904866216553845877628245401601160319733776638805016152896007229370083292147089533481704479258965056915205623439717402559907560088135227361048835954124796615299699555426396516747764293309316240936718893417515112979302438936783662301406089772373507388544515855176917541679931426717299942297155251051354321250979549500281935890705082910297927466441793002137490377523452553101776430936203800271071505706327371910770398652441379813235118625825623284502267262789960819919515108272971393520976915192145908217944562410375631303646718202272867589211057067510460300828241734287652999948964266441252255297168839353681474359536940741731816369235416713641768914625409311411301350885540786941154552893092808826281830897852328322074004199675150115150857592087607021317887823121794657064347498028666788462177929222601160462008484907779031646660026070090393990074437836705312843966283999303348115754679040774237752955399899706839206780887469315273209014991176144809506436485720932464781254580030968166773840150696849256266537309514335843377779549476552536440354721867281941668656786217158120561723115981374726161149015476595704044325629056141522521795911732376686508526130187598466001037548966823699537747754913341863556080348960113902416270968805453895763955486741005921429654818241028389414432971065747557568091567120045807882412816547844940176351044423490387935284696869106001813318836375353555388439631540022291590985638985354694787072553991958213618211367874926134257376508202014927860340091486167476634619639506308996006207120835405387086920060408940724197988514541810763109645412516193535056395150689129361664256103471150701694898506141227767832086871856698435220783929704807388246828784063130382744588394394637377967646386897390881686685863134036516544529198256396399030517664926492778089298709773973197719807876776641384656779910781838559014064722026466284606232522027823571771656792728126379776603028935577637164718889738395098021004657437445503794219404289954315190249549273097839563786341335113115988701175884114731605418192982116855431487094217145971178540380711639392751242851558155705272359507261705291296188962205149522214963347086195995895835957229110029649528316504582439736769484646598839706852425036639222209040021909982411354721879871570549376953588946911708432998892073356609109910827492246146662186382415218186006300067690303071999709212077682767224764950806120711678922939694491317889515675756535821392401051250044715493415690058881737172632226256563112633184168667734344473769116448530149758417360973119465625917938785005308620472600463905947734289490559951117445050426787592201663793156808884806141766740989788036223523763524769881200965226188788234556595483539091975513165306198532643345649361564682217981857207801535849256671448312938647942625730499566027069477329436016651557724002062662836685150717617360566902154010459003491565592174677412211292143853542360120298526206589814344834462748916576791894203478202813005012949744187552429358024813637397383436641836971652200656177544694634414626410693693971133315040857832396330337973574496384328705478648729869689376777530656962683421134360821110244974491221319272185291139918062845933334023871772414915099796997053224923715733299386387477670870250042759495428091524785046073264209861372932698592013468813385234370210786892550061546102042490946607507204722612388576699084547484688504543198718692356160611497652493751078492761320936702163311643326370920755311582213597003859914542999607905408618984872762620282497837772922332076700736376840013599477292444901058582779092911039505213948101806614419710774275712867325462801474018004337668503121731850180954405105011212980456137099979458094811525824086228282436444473339859851088475254545034850454015323444038054433712814440134050414657321370451135683075358551413889791707730854115945119090794223623905163638442926859307299509021216355161070511318617920179776040928287972110857213980958422351054148406642572434122481769510586325763102845654858065721034218382173270076944436910387384981703629327169355512093031074505102322957598153132715649662069413908209948184822928345021015449447073490033917381936358753512128816930091401502939277564888018435197514222927687751198131954213223939571550641318673058856394118066049353370460641177987274584683078762524020101875496395047540432067730346343127832419042047547641727219133027429969935917888130253244074393575108093349812379570985403885466066212322442204544118104886395176026560077385350335771594084832803311404166820109260341252098480735714541755065299656669757846182864649837756617818114524227016335292797931313145122927351114223137923256406630125452067988769444943312077613553489657410585037671881874943338258093286713829494519802569852138844933429919458128827510855135794387798829114183912256457744278725594444063829358340832244130181219189238698543504779474017023905337409616147185595285419607419185547983277202875386951528829049475617828946388996508933267468065305586540998137692396272903397636731579948261918890840200529883667305887344549455622873616957263751220446025174165565222371293897180373645373407460279328469329353999364589953021082464983276315425582636805172127207448994540527613437905213194944910923078534502245046907496752646213281347543179088159072378572126990347357287540144916800972163496370762187403691969939962675145001113369807263970044997737748830696117724439115671245499236554840667403081560583165408254697843086710709644048196090913668418959054348811259646808753079858443647588754850186508680747928516800086197552129872281100054149483822755254415929371340869157441603507036053224479652660938124941260875953528296432698207012938703234202069811427715589022570714367108581522961013938006433379516878548754741188341252360512786185522947173628462661395666275148721647847108549084033384842501766592597948187152937264578425687350076299323282735583891333383615362522550202808894238013822742577535554858375054124895642650454824476250747491161644734097693480446114036096086240269864477585207509125377566634943453937275811983876127013260805031063932842500489190315859899904342090103877988024473646630880782450303843853237670064891741046638724010727122072129054180576069658222576947392558561472032342052956100712699919198152962337277924961644243057806895935100813769757985527519578001926385155934018675817229671578758602424632098123737273982216272930374226708639523651078207353375632484234063419459065469989820337122580010122810596296787910402127608883269749781723797751257870474498123362110573041947717757144612286972119630751915867177863325430943876157797745697937145685042657510253602262990823875736200331705993311314532664607138450608683760783390930401592712979303172163210472259363241185907214390344750897195048777451923168250048831296557637761290906800422329774922878405780720932902744415488338718467653566517390688711378963117994680765844813176310349003902989085487366297847697304824289860879808853029076509888116978505837090978832376765239284990729752924962378472797195900762295036180868191590927639095891856304404630716160005381413137805194485676009631391217953830676928069598862595182926584986904075946476629056002301312757269070645102537837382255761904131788531382997105641878364690890272326362824329608641166683086398769066590828014889686057373512998695043053000837500926101215484496722675471223147445081926356137617589542546230243528050809366860132358925799858782533615174355761977324870440252717667170565901363369893775893366495271686896993980455280470486084368916220176986114743868849115069684566989790081231222688363105654765408539705381227396115772059608848416663625433565568940036403182062185872123237272713832590748811806584519524963054792061472591606755907310460640938221138255800835745705260325405651833189101321074877685215893358374309849502156051682840568768859812971171408949414600278224094597301596704153619371735758995388400230565305763064635645213121999397105256392740558220506283389164772433736540201917714249768266071722411835830858991433408568938118832229558969888239831381178549649746117312295094184128489936459392009808009438092110036559061921800256679322167288689676582677551481735667851859144655334575643203588454246836116976097730433078838670368364139983460011885526049374996955911860853902890664494757290122835759149663616986673736975810951103913192745705095106979841634377667704502977915178350143869984949618466873929374936416059206746238658170181809941955373141729117155633095749506276716900296383529959192577152388167799867949474310511866828087353924733188537750264551441425422972041563465687597306913529732625775666467045925461836545506586864670077615141794389368808503741121484765076883507645083951656967081716156155218560824969118684648705602499906696901465013202379717478133996889755428405519540281679452754461783930658982258150976884780893323810718175620129598930763867632667886023727232173407266405683400552809618819121133953327650673708474178586377857152552976019222092177483289559296480547692408963399111042135937915922163814037447684832798329813773482570975878930392547495428577629700061240150802608591412301851209340164626814391500617056048901045367247410767331983203884596504078908262902485533965763272815565162376189980690310823296746901424907326002152447623706812807482833673188520225971805051156206728075953228003484338634829901783740583263437897662206425967288946243233583027707589658723791300287295869537559280781454418844775860478385345685005433074453691503975795475655067932716509698342343632276526012409357747092919722941320726594831743695134950952859225154383158552880309363121835918939223418663570778966994233688052034584293456988475057605281163427778317616545857421107590806618890049091066966598119325051350039231860684553774976750713567041017028417951702092131725227626198214225540065657821314622744341983606113532547724581813503236979406849561602489349712829224309516965656114409033834808143340336850337774185807962457924990428530576817796566438441569520930406894867432312299615969229364400328676578677757127173740755646194284002796785836970901796493209046158630084034230687778803673267082895251891971190164245395750692761772653384395761251696319193366211512542860356544048721346985664794076402706055930876415613936825930426290890412308846698976111858954510423868465181119912043494423491636248767282846585625490216295763735982110729692584031390111389738687864491192103928591238289445514120303799157616040080308947327945178760651636321554470022937433357774104530380787189470887626732573498597291547129164330714511425805654516482170482844964486984165546374799727968892248944252926869578674638483492277558694744953558026036539366065898019058555157580043896924297739696700575959665428018784221662615039771742637510177655751132483183841864308892182975213255707675810420004352541437592975378723165903321318080483688798256104482663717171524945503817172915884491249315358399258267576556163795588962440451628524894269089561089596921320512612442320456021538813201487453189974345851471978513285339929680261929514763173174980055455198245558234461931267048441567197421905315153963289891607435846145235904769446423289788226910907974129346247264455571662410850002002708363322758360083789550938363603260927425958891474467388135895672577572035261109097916910335354880734762562762627504616374025060955580822297779313244819944030448121895179906336710092122938407104911413513144338871707954251766003176671427911734543247411146800283234116490544156379337378919320613410680341297837513480892908293161012537232713131380260889540883399611799939279551858470947594339202861753962831079680742534413120684008065239642447346903353366446060530794398065394593499472305360503921308339816248185010890582110751293746703027476214949716218124757682761421358742278458333781210498021182846780809656693062000380371944125899001394973179177815664812992879800004857947588338084082661831473816148736398957644244519109933922193199295796144286560159411312826681027824202585776960062585849245536069202358364884930718428890951422978708481865994543313464394968661882685762571765611351748954590726266608897864427942738891770223710213805186009843898620298632700071245549593758565755570905827777075736544373015023375989373884106441997594547028618220051486843169586357507787091147459148114772492128612479992892842099267594416374935382700708071643175951733518876162542236020401053553978218008702366278299430086041557517368914010186962506789821700202375735992444683941036052906266101481956271044562692718252037767851001893566884036887346571589602647092505823680707183938890783364150969988095672728475247628368214833912518671990148554958660161616290520117381736533097670055811817953868629097366494255360105405092148107471488833863578808748761827833950364401794243672748826509535913002918511394846210888561114686387866684198884128631417374145659967489215864347309123922325763665634205125510854652827566388655469558324828757413389117396188883165411068327649613034157040731296386489819064107856997118622788235821208360643026753962675898081652113544097550392640468631996877045709963361847322771071872591442100705535303947422639627238398527750849917776290245789010566415680440607839412770919212867023043775456250439579028868019334603226680399126417105378607271970846844677889170253039552172848987242071872666073697209165388555527713047411504568327859421709903677957065457853491076108092694865095290371983889785231674180674851018059144440154030624402938851604605136887447434301010458981225390514805343881084505830705077487808137395293144625004014718417691123210322551869325981571276556235810475562552665634017951981430316814290167069390417898515912500927011011613115286447954955521769818542210278343606803463898306901667978437860979384147940127187465619579289459230465688815700461770131241950650275463298371183147945656117160954683729883614813122748248747870335980439003498368877462711361285988995545321157869470122280330128915221769059485123124278948200824342553111778111407080734835698869352038245259100890134976302045744023369645327218755082548071426589744416476235722003595622631551406132925082156893874752593426326063315005777837335063335538788575433783649550736387076509193383400961592341706147843019272430781058713314555737873268577663070507330089073117560398994106702474254252083031240734721555647319045781666209509329095217723846314407072600339699973987997234886347315300375973743238687263809064526727158001334524444429165938746419216241794753024562748471893519199131463665270358964879805860227876683302597699066841512021093961053446664186893021326819060890292768950958694574258201719527194748290235184202234313688537137140059369343627597224097348706041663090624768097741304545079844963239560924332319537509534934108303501353861659947964817470422792308683042093567911997370509395066676983299910262031613213936816724753673811432198989372477154344399750123268535238562970396155420973103775905268504891677969285156295549430742638065834649682681188377824595310976935278926130478327701478770280186315724878542062666317617085664617255543649890767523742341922663851543807924819653118534030021939428644756785307564436688887386690236976048359009882339615742285411104537382852717430969014474595637991834103397043090867035171245999133563008243160006389540541917984350160735151909935784295017899199867742983544265449437409936002138895722494275755367465606510010700138934066554808043568793077806294398380790308528653308881640236568446974770862630370150187155176338000728971299558526619399876608282613442993845321432343555663813631487598839898617988155575153145738096936777007051590531293367005764240792442839160799083474491828876957478120250934023526091644319009965538298452740361658700774247364081672539873364299227029287210624908779410770823302562418328891499475917640411399273132960176734656732632571375473228134097524980536505740869688704766254078064570381703681166498611435948075535311556742616485259383652218391410110718400589932472538306596458979319951509976640376832669372245458748305271471212810978125405021038971689261950828728786389736971495685896138392298887061301805662067331740766226618001287146174412291128232214801441977228538899272718592068897374943118942491671182996432074601493703006098897868301042323547415590095259361187613761847152517889506182714518390279135462166880658159223957358815087724485318363404240748415653244439000061379866132201868741081961296674525092442181916800142293193978171285763282564037244042633083842823585861860094972794335785333627747543997435106072731595522749595810419189450926732892289131280150950912933041593624867504031175557565960314626224609604820497651015379109187605345493888973412196669793695732726602608286784742203092223907979022308430131710818252742148583905932779231729909775039142143127078858313135153025914418732816574361464704422737572802796590920181497703228682249102733377821622902619308761258032249111759950882935251165863812144347590827550952692132903627028562215626395445791983880145376272603409213276605858168077371325869724033680267916534492653539099243626945350896117786580037466248179156350324095610612144704740345079980762114449531137710018009697333095841128257671411053325633149704947852747917208929804370347862651038920951214046783113127584336352894500448900699706193314314005948232630834119082539509956028480920467649211140890845545067553608247656252449478185492835598226986503316090055383238470673531816509579744962710826857621580920533625741446939166638050089278906966908523267877425334005764565856342309553550158687677994010655947321928039337366017700058142161992964243376851963617888397548991639440632435486976287963719064426241976581329636642112880945738800954856765311483534572281776589258021904390611993321992707815315521084933731140398125316499317015199219076617428570678366268084070107292653827805305384453959837448124084097230342565561999093618538708958573112683670423224862415139033449982452325340612174813125202312775020017403476453318717483492984137631771104410847457425344481254739278729005446228869328477375107956294831551692452015414384007283709353536162618230002246642341575384544623456869432734660414592014213647426838038496381453687442232473112681937026532790562072817967697943516989152484974159557700376214504485299935975953009182820610790392321799444827629030306006956036032312018055169690999982025302995846612843216776608536539031818091790694631447149365226908655250770087648614308344900258921335885323192244700181063469813108855445149395976057853193482207938017903527951039116050627236103828177296638555038656013866753659220379200594831596481258907224729943711592402146837520461570091757674724873319078581185596940036560143123478838071880034317197029046325407724107483188675258353297894744047967526548404188640083496860518735847550728682154481171751261110391138916487485270776151332524425316577694800763132232343838787315946121675958183435169126615085555588848340450338762124568360149815658384059491592027513748703629447504215686198753598902046752228776713569416575134491832625495749230497772152661218618596984437721511761447085084200478310514365278748754499648240568593351374904904166942063952368530323024791531455899646436794311165012130071655937761705184584260785701602511964511667366539032235396019682617018912835703233888921597809678704208663439086035903848273026752417906338567482466350079837112830893662121197927736299840486601238044581571722484111853126985445834916010930401320188062047126286563134008739293345199695801702338540609683950853540069702923659893315931134267638103960735979950444793158583516712592130997684477675037828729570338555979259506374989298611828571806131211816371989492447706999745397570323135195908410708404713072473480485012597953850819062109368941751470329302362880039254370673508480633295457340215636572708518006403854804325537297649493797508383722817584542080773467725764340569818305774398236183652894241382706273422612990086090854651701919539923304149391363068879422439910894668633981578892125644195909672737065579895102132323948798409294857246488355756083331074212520265431280152240502888513250111873884142686847635352354259402593721342601727275053194933999497791531071353005718372715795996087216401970951289088761620050654593237496716269822593671574756565322715003043133895964766010217875594390595089699791273555152711021334674560663330205422086580529523418748135470891703348737581624998862922223662790505879393877569773063844148702410962383579776238784203883685670733736377802030078124898223433863358363146732144022116075368719231491406199042253625856441959478403108469572447068633875268620160145781008887868319192315283031659068800214313026242037302000035730730952316396320089161552154080682054796366097810765283997999300849580698187025799528031623902387315796786027789017578474871117695645716679452316052533734850848754499344161402649726503649104035745770213249191562063215558092241422326207724947708927107272343202903723465027202880203360271579917901896193870965254496725998842352573415284993271137924326620592010309337001820414184833008067348419747639735211843136578673111499234457500099816087481616250251236259438699341439091049961284147253679885298386185049026486007375623185506044217993186167955901388638575474959657385070443957214716408810749611744184502574134187217622437561362380483286275926055421349707130267604124689532619483430297460331236518988256695280629395042540708189090510930550641166987916441561585738286686185893753171774975692347874131781780702064929835773795513601550370319279391892706137711980374432727248546620715561279608330694223416120975233431782825972287414631370648180338578851116639290029116299625726107743153710274788725135713038062485057951385110853621695376792747387551008270019554492556154970213147116528411465351850223859920642364061353601450920309797817137277165008924777807300864331554288713458158865723045097338930794628768955895042617807794788264158874928028404213196949012348971977038852572709892465810965759250240289429530493233685851992097252905156629532944303783288436478476271960779940831509779761691323025904181769431637277829213008288263290844498677438887568921344661186111987193370617011893306498615546888458350113699171380848505765393815723791490064384649937439066468373934003230444311247215627152775328450402922052443522015286585240614330451120542539085038193453015413620092993260672157808671029598253767983839235756624807868001205990384224221096743458352198939971320663410201596847760776486973054003126484564660715644399326826723916575589283785843616528434897193603181135422329431659952788514302219874287078462358026332649377039108582509880948342379144967200181502469141792692522812042854717098914941533097628685019288111904823604046668877295570436590736798435136758222204521275048600399553278463389960150238374576466387756953312948349094224918402273674801092973978281269422060695198836948047068719218640623879791900080009615180589403107645084053179264396610291917338644384272679661727315807815989603793181328034473735901631935557365195548138964273160751141544273106150372368773665008636585760824062357187510161900077327974974648632708728751697350140549481382279160936663991503756855526106334647328305856787975953265562261555693547265450816620786176742470675733558089131083202275561370328889480762055212071501930449599104698519622254690857986362014549644360395203678281694435081116695601790017187601865145845324546371345498238526382460637486090139805616365885578914544404580396003047214260352502401805665932975789742559684377032074837534747827993267506333445215650924434558129120880332314847467190740536731079812528068893985050528353217422951734218268767879053000574119902580762342781538932499345549418410848499157588904939562289932854603055934518236773458592347225538547527185188694112069023693877236598830647570576518354837604369492404671574732859914878142680265607965891666158436341670886105898544639408617276581523838088191666308794759381330859404551300868865436421385527587725656554628023570906796226982640710845657495057878583015006379513617721450053190211756833332898020172393049718270233106453953879425947263851399791585024959170578067360657148912146964751726485397179045821779175282315254344277836329048354533877771698649017731609714703277340364352440445193859931036015108457211315257505510156918699127096638273910913784824719881783880380430151509172236730810784366269838800412817761256144110102502278608868603931323317106570637162411611627649242693764442970242789560977654926096897041922802414665063340615007992979792317632159601960815464513941498474212926002182671890585642516571301131303406423574771298716467281329513866599520029061828061481584151786643802862845132901682623321814335257052546444647552807730584866470646120576590825478507687264747146772294223180389345040064112312166414079815952470143379566727313915664209889701507536022174946748011917554151501183716946500240574404004133025492228866724738951776995448511632789172494190007026830213739105749784828451480435409920879878099949423885116431001333831440224702402131172230071243603166755556084203669082840193388226983576809643631318169585470456575742153961119399561300674524081173194279999833006411718653830945565495516490902999018051550360736398472748779755517138375554122173802795667329531607992591829422942432409762705613541199995820691373090319108198636227391885804333544933130470524714780047478329644318159551852466778127974857540367509739398134965028262120914694984999122449719162821690228914669161736139763871276827837688638796388613901249913965114035132521554682826719439238808467702067000028402179190642243773854820531549540925192169769681451659950437799025147837366026600599021366334089508483270633278509899200288020961063119398481349193419289615240352044301161210971897816622300503013277290335805888823409909516340323737323178622015982183580051553229083256238409295971724310454141919052804544317751223578855537984892664817761671055431629447535818935642582717278629621318116096980035747469168797362787403472091826226126632197307822458995551900423366395454495586656063146112143441647449692793848598343432855372307931817845438124592068919268823529576974342728409167079264038783885059108703160068269992112045446284058053536285291144335869711518876306590152052372838085285716077923564568262522034686120806924302873056795060433778478809393687062694296191277549373809929625152551364696988553845053607396782077223141577183087084742492939335847895920951799540323096386817024907721504760545108457878986714707136419273948822447608959751719886765509133767130553164539754194243694628968212535353166001544496426453546336649401460377550886909418522403072820994748555973064393549894655607214243483429579899744369907661917678925259964085010225006555858614880044437208306461936091783263682697301298361337178640110541317256724007322342397765206626799988096376566713788152763316771317911628586611752540667633686354770942337673170267571620931150587661198185913238885334199397398389390105940242483603971664742013809139764061533752907529942217131796121235200975626502921509866727845253787369772385927877985863276660450004244044594283796886967679221926466980030408119018256158536335688418867774682857620384149718294067775809090449592766147559615401824967481815109885708589457056753810119544352377987342060773249874645720717655413493792279240757400483498566166457386435778757459291490918094002423072386742247757674123813078493985900416311078132384074504837556413416795528028873638222236768195616340582027569037456228723160549483362218328377904164717543663596383874935969691903974709865201966039178704680157383510131041351358150784159861044532547609581406105117715938700108139857372713334992861948392951924165850095016565314898023506060022202029805184405109204966241024794722934350974320593839585663798416247379890940910325832670917429034575657280389808847813004367197151955126197719082635009380216005803324715446780494757547202468025215462873523416273182930873914527850595344470551457032338941658709814401298211310345173851332918211342013222100372493880844171635998490317992498321448929928164706524996190439978491170953080017512241878396926887383735383022791129592504270188847292754239444425073220514339506850061800950696395126644638283498563319612155287853544061326450934681602860846507500968231105679775596647981035612335177229390024949009724164553619682193216486740859013685319212113458124896010919259391900965321646653131586709618536683476041092285265622245912926980067164756888657951917660640566152568960305414830435584940714945889930962548097644829061564172621421888194886173801100589634531925992591232267540230830130139394709094579072875466780367832240959487387679089570121835733610424983589251122292837157036062214851943141846889394655595087888050066169836254719238991776443657372884914200699935422408111936043759317162914545135380186519285921359664855053467313485048594891948813031708523404509940394062987820499954060949679417871272692329893217969988343636722862101085736447583673106574657467661199797081022425109123305168781461362599789117126233571384141927135724022099250996771194488358044586600418820995674668620208907355700501889457038586873394491624944841873572996303163756137918844893412044349914853759185842323919548770118682232289435518401382320977316941493484101018243319879919423585923135593771337842325007852867415208436294982041334718359139695240564076610542807384847066730675311940546476709102532011093917325435592888445197288516572445571220024389845511554175079038430600634976497471130280197354626417798097112272068551529777960754304141602894685758391870685605818940047038845935336847516086373142782343950620915118572073591073768887087751069806627527241965099199506649145326043521147408532238936050589162867843951091112941120176352803670432178285502152859919041835357672960764769557146796173130658218784627715652933781447602333948703141470677875768118272648200004609682151119628863303761309134869769146772468588119385761043884844374156703514977348343623683732905354979099903267047434053604045547343769753439595494141710991028502030041084288545729673775348493419158776645362673525433864954590641083008824466236700270643227491454231597783216926524913701218013060659436462177739294060782086989034195503879417540039410672365809069955205512378777249077013925984478226833933562115216700881987391893047952524543149305100916488450065449871844275092336657692792073460639233905919125248160023046394747403466045343978325288525549614341620175945762996372741065063250773618794239944840531939403504472509413338050745772076421741403580902470929655416120264580603944849633099107103179753321900204167403575843517008456491591773558557894354118368275817458824534381228423193648689695147047736271714720847626056848222988974074304546328359489040015877354636890035508732177442415837223821793356159037276562206665232677222002673678623804163467107291418050961470498781076384792879174951337312419188320585823412236965688528977322103862981605936023863597491616073887151394455043119493558795466372533326497838430373893058343671162024335873012437736732357626803579881793555414868922578394494142657646900616192656013810672923123878626030719077484514528388103600007935783639230611803472609590830251861903970758845835141297663342353100016141673179988248819040532440662739487885880893206531456997090491536594296246711622131547097547716323996641061740825543878908338356272009508534158366009002590329840410383047407992272824099585871234351674845910748456654685968196957638241733807527386938905377685929531924875040415574646215379946246743895523087833383454310346089114389372618537689739875126456975501985412423376135901589904696367328802157663035340808110040841725286495935214961987228503134760047435290250069397979500159074749535368267488872508645509996158134053827253418737862754012520446619561623470578172019335308575134388183128486476548988270175667482432575366693226462521822700172375257147088081100384798876977804142361444334768772839355843821777188996926868605491798045545454185145288888864537999201368735592262824972011482086450869406073414687493447475829028161833107370203200929414290958041642277306611513911784950803010878131538371830126218954209675627052024370724049227915359110086288592148115482741285598261572335894251179773466862389248007608057346100889247237715799753652721883381569011966204379826345960039096765577387242881597294074075427240552279234820164116586857752443330680918185954974812751851088421076683568335397788434414768782806574612219641385928286655192221546374450059817949075841297737166355149283741902726429183648589081273167576154720031173656719755454069471258368997320002632236026747590037401762191489935157586943017306205710029838055337429284691387826143390113396878692927403715855180530504418310146245982368350652484109253022791997749598859702250014213524240556987793661223591947585811973690070200539596262702962181311550486223049323877492402106724512476551666694205699162303900178400962843873575649166898414445608884667199331563812983582590989348465715429295051981270074534968691706768457295877143400197511538529369106917253206848420574853626735902870427487850385019333942745124497866441023679314536332961242685025820243770767161980941048204638897843810139517690972710389925823769027937654317077516785612044705393949591237905513377366849229411207371068799333914920667315005904461281399756820235505578329000104523822000626746544432265060130673890401585862903403181555902199604118859415095377806048144874525701723301783613978341671279621897361881456050331015148386040478396999906793696535974182020264037090712235993289816116240800296026224995267116155288001396489569525835902855170416495515972833619433994974863783730325278007213939588137114041749756693578684501262635139748688297854368963876433681276127362091105778393586038187405118432122351910442587384016640749760738882320318618773923962037878674564135589947598766777895279550631821033830303126811796205513034328839732618969734067535538651747089989164292717990333640308677474062464511269831061313050735758809536188914683572851309446647367281360257596056498682895776412654723064203263389247582168977993854929001542241069627735649337313435446020268538408275438236603619356120035055001236185130236956210789606547174347229884249605935406225495574090856790677921349407412345578141346071991165648007471287818777284446038207352694199751556801344908456753012094735111916108648998914839276096813428767585822877946972465767765270126451698800832609000797491510093114677228286516153528004912271459435791843701700542798472954696437763064028621007987603979910571001504499432307173676772147145125145668252763997924995634071968548204533992074715462395741542940093564708199573493332753417779895441740935685235579062385059246975206028672506732209039356877897049816870585520273856251719217642348221800026357615027801971446617011220821440980495139014159575523932038330750416833430777710421144806788159119908959764923281485656968057599964435486862025482344071560244130750349842898108896962859879019775638370364283897683794241566832707268001931642094326717404113542441461692934251763679407309981489834426029771029947098141349912310502294918581867648894430111183050950117415024888315278406398534079193466527588206504190581180733127841363331041415680060495173012743449174022299744815529290724320471253650051654234844658889478009867324731868744315528890280850275240893544628528131329808884902757088381191412503194337586389964223661177122578254737677005928760775379691971243544513422060551222284157728686423429664455240916092968035222710386906701714081331796160335184804594676533297808773210305035182613090031071406193092436629122487203414683140063587272211215786621146686908911879107280852825845058822774378887483523071950787965873151070516811117371425966677997481754411675351070338073031540142373454121840906441634498775725601734824234918402964613152454617093631603994109175481003263703945481577404274582158212276992113441253863389980196281000765877811438203254218299314129324191071226139809100076119299428772062010156934444998971374307640164909479147373070776274083567492360141413173928955058776733374220314448580363446201463121092829796272255826029539767434397657227300962444196258224627224793134970253842289606475435711510816559999172641380881012543388161995590078214942030622158359995011538072867367330150591953553302690570153598206759686429622742800955403132920602820394747962416972514810220559443645556668520754286014760303730745164159267820803218679923903496734867773610236089282908628181127857213366300729637369074734421210756596007178979374748349142150567075986156421648798616305270246322759470050424392376986827397887103779894167531470989202220701034859909693720491501579339940773087912000323221377795839700816044407161293976129531711804582152116701134189584010609915077625454624897520512138374507432653534037108559874814801872794083548220882526173297017744837957778670291812761906369075439378447358164845489636932170121750304231047113778872442920458603404775656088126616710133068380316887701640318692048154635506577351582746408017601097004168211774063525190450971540690983037772665313536616459633253082696386833773113013336864634236967762138970275418918623328319495327654025976694219764546655119159862775359698385544068268667163697280615023570769739871884298090349720976326319462836738011969771767427458530810023973321844715232980395581684942438656247256987572771032514102286805995172255457272670528063723222339518349571358042838584461613008354754552870705582853865201320591081305235409924765263523013181088342585252415877715882774049241458209462477641172569742244649527788403045282451805823902567998795725530776499064296010891572358686461417941171164790440977531846556400442341904385622943679310358427557196335285733061197037226425627659153807062139385037224520712816284033815619319757335809141382822536791294597946827104319399506862226276903965700694959593976407029949365301893374420083193978053320186071214099882416465891874466556025180341541038215698875462291557299006901396516384202465989847468983747099719767119630785252951055421536012085850863459514655526715393592382286837515429759642627459195000260066129989104490630101213060461373973094708901053572031137069062566282945101279529874109985328448740728501369743849937872682490150615823540973833949147317061762212416382025968252501583261392278017910283750510500644593672424213478969871994653761381870444836275872504686471138331543364095976703087826459782909694602053305908946845931486425508378096470970767149203177077926479340722889233645444681286047602230543540011918680743466951067885590222830370914293773618240298289900823908137372791537635442308898664537342230414693616153088211069848822525238502433154043271165466832945516917822834628688811778782451627810380509992473006687949475280211549087249816039095476703622832971280906637620086199390716635829595434137402599617449752403043642678783705860512571587286789709741511404916200196041512157170996916654500801906250166638790888253890373879083796741406716994539203995941620085782167023913290489827034018016245389062071440816699116608029511974985952222267024680868931720545736917100448871146946109747600838082471577710734031151075060990562679975185049733486028548543745976787977686424307755797501227772191054165197414576925316103754490767754619559532813976191475456917057917088842183527178552287332337787958801415030644566048719067170762140543388286966310386298000105340153366037564335284347996728901812880395892718921708127530691404569592650013961433436192791326930459551894642930512571126621370173959740720560496696213427289105066676323770610938748845911129243237356784528843933518581404409463637125595855562359358956593731791226878131510050829943268433370428664216859655929194558354798403471050529444005768764495091498593792060345390173269323528132180820339804632526985456175218680597852510442569721599403945756770071953427182762411372241095932230444829586620466122255574029651518334533230733509925548403277790690400764005201835212503566075813439511458839229538663763082645047716396856878608745335224048898480495730356317948376804774584798467311403513217008855680203263735546636321555908965399291066886682022057710049900467713668546091556940931731737321819138286610838972075544505439284041430136229774829204523894789654493505618563992672969009265134895861622510376593811129857084060238200842975796097407040282363343978416010679995460329440082753890897305025932308633012299969517226290421683297701430564137019975814327030049134990434853646365887824971483646085913676623091946575462128193265813174709518565319442007605647423001535766864485444798962639732861305415266746249787192428979076204971850088020692336690512284266648937559130737412451741742633418712676856978690722560796779975690868962062876488225301293626150145543931353362932144590243863958337322139807602124779455478786669170278628456094867105611025236530493469388850795412321488270675443999372345071594725452411877949503245150220614934771387442967068004155363858687678547812306939775683940294992909328808869183784086547655577606956660627017899609744531548375028161005485922355881620923781761947731481700354742851073732429911342697216914110414250093760430112469718651186892137048467423436806877661123130764819320821225726209691895303814247223131273221435050108515518974474157141416004329034536625315455527647893050182480210793762573011083157509275590517719305327356963846191954565211334288814883156227435462807398272883480607129464157737546004878070331600284614355047629833629671482406721398779229406222500911771828363949254379920105938672697604042422083055875478416699286280750999575556000747556836729361267555975349402393500866731847699557475255779191385345706034615922902413399152548470521079716176541298998605399874311104172807883412582574911693841932529466002466385188695240831952453937018110661243234191132881484076577252460223638649112217016967321151394764959108347401093299675655935671407921062117002054253315127323995242477672527471313026148953406481957107074273062257798033166287921341257730040176979524121566131502386471072361307577815737177148154443100143089356138031072287930729864633376466073998436784248631689948214178843083021682547447629542874036158467722615798674362172856074786226865444384906685001300568466869618873949888752221710476100952656648229345363740076419737854212448906707450892176469681587765910500872345858607123722935065382756272650813157813701681959327054165625286068345241307536199729590647622040068550945282021067924825100836376634169775544541236957060044589422053985701491418199851461069682277834104497987513427156230082347604495003463718058857282254071840720645085871163645720731336389152722489664658021431834950806462273147544593603292204623240133050794207060796887996239319751878112180671247673952967320189475758204244437297326355214351592348475701697453351845910420815214149217808087498405637996291040917261398349704360431001894978822196662036680681276308716168180335720782141028379348573729348857257766689930135684736064829450999933986936494173732732624834718269576903840986633834452351755163161933042921065038824076309199853023444891520269911523359890393998960549650823981036601848837542096903858822989475754892149591391980026261078814760171254509085583642815364938889027661122232971456879957607608994225620219034892812048326865217751579377422962835305529152669505509663461895975940658277471575447036911569205384355784904108467362836521650327069282836085337752920762207752867554834068529710277996480659533868898261277367893765355859010239037231503684837536290617416444779322406466514633610034591794920097224155195436414722604430924802497627337581499336931446640075642753201829044911320053803871433055272041970098914887624879968691562849436991729163712408700108330608318626521179371593099955927005553025584974289355586733596538839229167160092977012687962530723940454513218627438988283554605582022510094024080223859502051528918616741012592764325058903586403859323800061068938116618236033945303083198521837032816304204413082599306283092492539632699812914734587960064503481866364224118795369451982370976626218031903825183684378947776759488176216325058714469432759656410890513293478169011900459879320615616419607182634744673027068876465010847784255333275451298558694700523806213217857239437451254398991337866754471787930429550495232926863073534142175885827234281982653473794384996180743982528425614549900350759114120010601979227058628599109718394107149901425323488621562269576249221536443310390006087368961631773322528938350972552063119375931849658249299842495247764011228961456311820516326190621331380499204209620129636604885767607742319362198201549730450056145319247443606649706082917900829204025846139139616245978077458207465259826376707425967589519914379405363828431739272879475998431994872050391444303465008155756815896330793499232555363947872569529454513440361166749742045576164999117680086777709514570337936302639003474050880871121735642099415927199765366438964006044502602357198320076696334604158839870388286059572562567803707283137626832123301979016810744330706266330008899739262460450059183358990706093914530831079601667811783869153169141731884455720870266187380187901355167068579694971304188085921763697319265208668825827424875657512296613787162555284154721436823022894785366650616285355043410327028953323897754987841355583004689696474444096954811844900966222962706438572803350971731342591207034391940699251341412668674606232973886001216565948806601563417245001491204661382789281878753414941096214083142845818478902887295247597563833508307509201352845929135770005579083455504662284842573660050581322820782412767751736260485989412238990767470121647889733510109072114460594063288292513664555651597932891353745151506621156297032207504302529256572942183340178128448409052842267465169330692655849434626496949252659355327116130153355206920419921636998853361746868568538579711446087703818943318538723036488762542068330068915133750050670413579351451681909467561765276563149070772028522451680614205951192394235507764944880554511925861107536986525708960404096031113522439647403908935517761122609055645387588639774713500624762388267348649694614320634781072605233684014577074103087048379759607809338704318435845948192972177580330128068132913146467128234950324489046701581558456443892589372430259934485676959732453547940443069930130592122213652490363966245380738571592107487798404295849032558509082694793314254942819205424095737446269903875837494561016714683822948321147443478477396779847048426653487121675689467484455286284989733657953823074115016416066660590671293050210252119957660938312360726921748380881829863034413957625309124629238570797785106634805854544020550957733744446182324198742859426967671849606779675704642727111704094273645245128912737411588802224197187536910027343770712862253386212144037586038341459041663126280899940283234756063642016931822131757745547942468434057905641182164961162842812356535713725386161622962117172449477181593558524863850053111982425036963078841880566154559955552417938698950836171298381394528364716957832377396036329911810871156497000869458621554078148392969234756668281882816857400596577744411556729211517528027736739156124426246699446702115224713946914844186599976154558108690321827357588505211771090054859309472281676109241424117687255450493989891308770312113153467644370039614809632496327164499091022415928175052208996665651100116038121239655882609152077796003515251474078133699534717036213823695033762435380948659542734998518639675043420343527569710601236077136040375523494607201176368831747810449287327964127917972250297435822430467514129445347911952538792496854160652794790909844023294257763725427312576048863858977966685097909707381152124831151785730785551301680651796540243399571352411163086229989025567659199221672604182638796027852898794417938370024090258657973158273294733608895189628251386005299228467835142783027007191354627490867201231806072132547926741860208783518985050744784312118284754332996207511665822392016950219063500325105242082264160823100883718958963047990829218410907823193982254515868609868314716530288919554356869009779286413185000609606975955801021227202887014107680569641555712760934637832741633288872564868334861077339877581319354513682419704044308707528603476020546104134680671700719432511767166749689782759478425001175396021832054618302371929161880444887314425226963749533750376606348645461705186908266045526633547572364723336245477494410703619038936877673698976124335594823544242220911061657904730218049436906441761853546914901228647454901221708784033868888742572729501180433120317654465940435265319342898481990998005243303076617169880943284471487867497386720239291957814900408577962281757866564345318686408649631243078158910756887614145225842088137042252973283230845322214375893387162925902369089342292907498323666276707093590150175782305283676446685067294068834904439394399856166038619350993090001032745578236337977896855874178988551599242264269870042168900179217546119702855916683006006590079451307010845018821237197637862134553966083114883496537131485783165796178187122909365709169544705363389969996399284412668533648464967881101647986996473386076002736273694576606134703042157131749648403460784387050480506546710157184889813948256429511725215476537689685506824262888392611628207772638624015274790763320108114549743141614934735522201878542619074878107824997762584196318708550866852469683879621196221764619168627916295567599174568748134304737747450273581743390333023321088299790714743973210805420324865033053121956371905560938837796614001104935680086319833797383269797707430448992376360846843553106313838480269413381231850675254920874545452272565226454740748676950359775762329906779772146126780130380676443140784007206125100480089323641415311326719770842019387067220917839245292692298981134567054739250777416183294512369422688629918273373772090203165905055039637439102118203983211179761539497541758119843078211620254786425979641029262493238969143724055504233650731443891270182368649206980769126319185177467526497844091762701361857918856594847479323096679760699866839030710021615827569585082260684366742477873333504697974182541623872956714178427176400614577028548226588641147250504382731412601334129072097095597562992149526261226878259073358149117024104278415429870743437027634184050263486680190246244247614194614751564822308549642783067066068255877809075480652825853959971532288508551080537654339900749430223846879191794148795046200435628355721537699114807950434984695885349383718744746104241552112172526186480510488051181527328406107437180039420369899759021235523816756153309499435034798467624395054881097839126757615102083990286493301594608293691038643682947536309245822624253436864194726833579168900327995320515259743764675663786677983254207882307983313948245384132050717467743799031714801809787057832239525805500760565407858598825367566451958863670842022638467825137763230782148853990993560879672609164284594974524449264168392962189666812688459123399039300647489703018351914440015091049197536523233717002091267040743834741872510201828261790316123033237951774997527377637655858178699351619110366509419892903188108824009002291264644086076406374665077299930696220921451799331171117785776953999276411324322863863430719873463995931142828016792054712556205358124185784384803256596778808194919425317331299194767728410650151041544293838135088978498535576962374813555145719605506064867844257009894815706472493510722831969764004426497928563506108615896633589079309914391819772411587837313841536090266891124918553691208773802591492058626140493954763253372805342347246758387092304764326339936775661616291246237643449260452719345571396186215289263149598391261876864239680289888285519521078858552807049828326658799270022053124140169482937747694985020623914803025675638249105697577004578061207572995799247689526275197500164784701877841010152861398757658317827308299800496796304517394578630174090117148663604641029637695888852088376043913861346156925184025127228136448893463921467987306884031861520324815114702041658059028518242627816776839905992819022683813025339015408982248312991781962740015949552838020246799888903460278508412156669599578151051511849602140340759849263504214574009694665478954772328187090464292900177639605568681781960865263090700284778355279384305032948474582846971302981418336973247733295199466268734347497878820057673998276410928024993329390386031032297169822619194519695931458773986751889167263900796400091832385948723587949855486729971372041765956565102953578855123578624242623707483227181545619949317854385004080103911653137357303728584520383257003473724107791277232529797671397786187523523104856341447374499792397645529682423569825768581989118489068782915042099878633174561748614751223022998403467304662399231122709909950917966110136579593333146855458605655787455184006256186348330961660718035374522792878891430348043494366240457499841493864132916821027250865305644508344719196445876863815360596060440782354745277369736613868088581721141227533101991551464671625099971957233047929715116329907533513183742727960343691617902870486076920132003516834467504276603181937311934823843686349534279723022920758707255832264551728105496977670457435682081683437113836217854663539522998103777681205887852451239495033527229769072732163189278448682259173758109642751671447658315808657789890661887450085666729946271271430246676176425845630596376791730439326695543007709811736491701037870557549003042220831597211163920227608637387534454704984178258655235281860221774593672926163797039048721278081889022068929002404951029529312508505564793668348441730443901579135318917373794483785698745373461840633006545762440038590508218668466398045106204014716290027095157984422069837016292648369479533997225981901722787310811174464544741097449247151125407997255391507340710730253116924203425111983783801487303782230539949770142667146340082176319371746147446514437437824672324530950618857083088377210030451375627718732709422584551926710031686176703280504053685353363760438471081150626366837553840288626269687458873263799504110869004712815021409044275237125904281134928816348489990203601141707365231737311349457644315302996499164903434064276956227528037041331580252400963413760285832168694360350748641241981912003733367254154985323086557490355892441501325094945245520421322745105506288063563795401427971928642971555105830639768882689413021620106286165675807104430039783923977914149198203157291524982810699840888679663630267091242944290694080971459872272575093726150810464045778149001006422073509573738598600685671498429438831134047128876185799029478550334643490917142514863612352776047724306509749268180556938679257018547547047287848374329597318722029251850076168218995476462330431789038084049483899033400954345025356947889661778318935422255377178577562963435187303591049546884733496604075480410143134481321128159274370984198387426911350477770457158453647239067803496802683895250378056053674838305504379215125398230325342021903309014572045445005444238223525691707357408106030001092020766894330936868128470551081470219670381301958622125075355193840414956939180931340086572709982235977555441301244654788492808300244929492798653722532069098073003675811120246797230644519662523405158248523409434717052397988076553870532626708129849665067378840030938457888009405804768521168956051154327885978936331578925890972287722607561447238206447056941276667397917769905137099058170798719036127920109633534736792958048842213917745302568825011615555075264697795284977546672173514460217783090035780193211164523360868013472761145640033817105212168093970938199338618009683509419895982782521418782168729882543576267709329186177242736105408702154924571153571835837091364879367521860209168425984264432257398366691533628169713851861518742397124282946584926980206632747585011109302940723197136769937829406563703385987004427605084890734146360645019174677294552929407627483637733188535640673069921578556922295230602463859749622220293194677048114102866655190594400799888002160330233680671684523440649772008281741557754211649999898260287033207721504132297973516669154319156306945550950017496947896228927223611817698008176663046610467315179803362562606864511147198522678185472084066568298429839018121339201792563663748791746469280189652403707367550607292150585363481400711806311103126255803527872814867935046701761474790552743563818050011642960990382783421959809652209893886482324506390598753612984598857005455333538858148617740504807306014048587844625963482747986812178230959940105562157162249468332324232370218796655144212356244579446837600698861527226890251344803793204112755053849348585977446552023125539646336726697868153944619009121115014146114274085371819631803410401680895469737553753852273943955147892072049715267300704392508916908978196346313563626591842600451577820363673468438383120985588279916511034270485176060976915943726390987659738701203265702265440177063696136162598016336655683093335080381686627133435117982404077856655467840824634852942567406658020337044030336276072309502022159123996101600799496480230412091857988064958729728965734958846765907213343960389199880474092375976414862879483152002916155757086384627995446475093470808893799342487852201018415966993849763438120925924258016289215052710582062593135082065032197791543724753787156454234371882652999220441641058711589301949892035472875278082767883680738932113467862446004206243607771645599287354730068244930042825685783958871586959173851742593226361396547904990117025955744648683602699718502670191507395902621431656234033257241018001976329267268633238088592385443417863429111889161810595889585804902406058934641173595578650761349980607407203659849107831207521614361026183256439642484177090899229983468808394584143402861396785540068750401590117938258086143300390860924896984548753515224093780987345966458303969664667180501798059215939884525232495700087331056014837876607684192028866924360341334840238447243078784786524596021587799767239793608093496018134871892395561310815576736576380767350062974120995295836175787263473602718871394764795033928869433771988756704748121116133024648952838533030583547594320750859024660930792323812728805052376467365609135972101329802049115785135378790199065583131351993077742358877908152372326787714658183718893641900579127158732682675184403143436659925414316993099283731876960654240619071164736912409977170841353587474740650257712306101674815233783653964210581049158712963080533169523569554968141460500703091202629088224360547593790426206244137222668685638904822401740566396954908368205931983506405526989466835916543336406595826162843633656388551846014844676517140458328777020670037466992764096887877346537476170344374002978786677577968877686008324522407423802990778526244993227668754586132460656769084863236235552083963633055661490482156786096773550708985185513280766889865141529380253288190347718487827109694664372217918706410580926051684073825045400540645148403105023454899261743580527166689113605601896405078596077997855796726763373067798521403345909748077510044131663544076575921931643753416615774956299596981849434158398932276824947966445714769536005225810781588954467262372316694396235228961036479695070554999283689289418558294165435901574581454376889694768636741811414860458083411646576373647909367000158731605190796577937603038016189852811499712422300801596591297727879837605706176013768101550865228266451887435924341780468618666285279015102449327764330004527977906938568461969159832147761805207499186373544962491338029176827373687343580507078547847336488840535571049943404478044289203902328881065589088445197520882407760193891102424681350382728883245417572991684519574765624449731118465342605168710737009560430557068225043563444537291098539026194970660206535734384421644900159345824063499632545866611980447131546383480069362005101723118828548528240231903276283923218054652154644172559348077796832490349969556318633580111846775670904789647480546552985396066873700262301288286314691417052598029163390281858544719023360621222702956578206643883632571996865953721754322920235159420968747887206415140356436009876157314916097753829578148723640292970793991520052847134217959096343290948376818580485387348624466503115140849386086556501573075518921779948713829299692689258749721725188274296060777933089009666315116183474063314313727966477775471673229247872128164546075093517456121631739332895323056940183648282072461975193421834024831798033417444827563793808755761569104149027322461756648139997151607904077550366327821093305661008484744871728380992573769814572429507533087168072682408194844447290621091581799070264349838091432884569191543676977303081647732930608080855673379728545710468519809089590193334089301253868129547763648778246368086896538759570059169948914447533280086966008343432610964139570882082049763504848609685958141775310869135354997604637200605771692309833610450160690884123441039697456627452569865484533582032411679475675966392187221727593270580958492211225414621975234274143031016317582432262434738661848150276687268962489985745402652277893862428692875864856210927841294367940063954922573740953270977683707263648556139199798540943441108129652617809639507941713858250716655078206569927612050476074767849582447727444618881609873398093534688700804991968640677417838061307038524444526954060160187131556155439731730136208384716985630271496968063991566318384538180637674104616052726085462068648834160598217256285299248611637636688589830671794999168316544162414696661258263486974877060510373975055111370491126180892809098742409465703076437144277337387274332546083333894504187367573378576282677333402959564959256711356857267498184920729478612364959553002680899125632997480060784397924777816699572033330465354020356084374231701802289891996102021746836273882597056346354757625553181007911374088470819851610345686374220269057543748402967403677080501972898109629782526976513958392941430398598144309369399938482430729755110421942266740143307511944210088291990685858544250779140130493308992336792919184380606551242882732465660614512676739309462687985530850974135853372056841961733746841704637013665274944781536236363059739875144632276700566211396969101100161212719384007373913156418792056388265599611602402407961724892816623657505551592595551312467240380011084035043422046039112023083417810247503247775026674880506563801066917518364526770806800520809958389719228903859261698424247447660714592722482791217134660089403638734727754140720526393796780479775922893556353819670528274527047561185994124177338272202662176529383022923357398655986162351152166228691702306558734142698143109150715596882008472655745714230587255505645174639977895831009346984689422889306992894539649861543804838319100488065432876150002039583240477051897436541272459591868280883307967631852874296393351658810515214287271932724400964844540898572183538886454828515681710268768118878090428962950182485460699696804235662507089866300008678669073075740118314399736546935255917605475000218227761301567774786676723102508663001621757600905542034835657726347023916445946507559811288453780016335566835333867452217145263402767491936165054719884318658966403055008456349447275465473334089241079231807223127688015528837224551231127348710287910414843474423567154575882649012251434070787869490101525065986943976956634428909312871917594256441901458439524729565379130588957373698352577035829876415023419476892742291093468063944338441889825972247347317237511085519627733257701951781061723935008520137820205479227923695872413992710463781603650146149251958956465760636877590967795787101994027083947413550735250363448052657327056000159208988660694063692857139684672083064627358455107502992861035792062481796122366934201466873656051753815199076376424566759854022418388398160564781044390732575892240078106587045078598560629199232666016702308647465617252544591468826274300756461193471889688472342479054045978234786142840248977761718746971992076041353971681341125310636412333736971833660201547793980181036892488962658755449171205370658764505695725860175340599067461682788342545551015528334503281016992010761342840227905780719124440641347719876465380284127192160361516051444874379412685939653825613040778425377145828426262469303241143098928630085587174813020126836034907728421997842111610523905359881836577208078920095413675389310340933453174440029767524378242776093268316120994019906229290353747267900563489399901802102099728818989516155724924486561886251799018413971250270236758151853022143816821879659521023521195800658759990570235896348070226145864752831919696682254246180333269195866669431068980784619504684697118738239863796198611118755377419504196765950098275424859074789790407307926792075342611236440410296026756136044106301292393899344230034942466070375366194470398778788230749487595892481721813055726730052035354084275628813838046417345579791149854246340630882626239299640642442576718671913261689996028308432253616746400269867090134420653815947722385295028754075154601182568029812804376908041316506636177647114437827514939299330329637927529960839747649764504216492775647231154069515664676944244342860757627830439181221617548880855349470757809665025119082273320319915439765954094444598649306940845202395592671531947993599745444499798739459111390127444352542295717043214724171335494260864496801425766140436303480369517296093206055688522482115687645090514012371118279137993579844505047797718327333739379666710398121957022715538322189215584335071851414807754460431869279728443189534434697554784508255091888305154128429617654526773470177183518250798623893588326971482614750585416336425504681625488891350129228100599578186072116795408581331868074372342337875024292061456636564684173375935717610652638503628386890099207561810158352934467988071050701389503948617097312878515464044464962692840446491779456546869780954824847042436177856917362659330700175579270265717886453727572544267333665240082805480426379844482020924198812621666680598274684124042726437274175505109728520795765416544540009910072321892542978202727216062028381427596420124439944974653993154560063480353967830492387724578566660946569596141401648469747290790864827345018465840047568205544785705251859920440888795149960832244226999128782173097733967098913190138488833901998823609305419553499249903031647275086841745800373938499992853614349492738174842871332711093075636381730427860985166938721159024947331033246324382590724001224561631632626528499859165393480967184016243744819457517395697088908302705413554333241102034048322812185293105043199134058225202220338601247083872057919772761110472345637185772914586531364071032739046977020253960471043139952235919335310232807832947668554146511629160749156128587626873128243115390366166242160588414611729476128287031119759668067198449563577718190573235843025037222637196432367643744226921350206343956758470349947505647149392343143487127891986540213148203145016205919575842463802981268281986828669247942502749729157772811237788738456545533022841727467292441818209238854978699887427191323405215695512920165060459351006099001292171039053351343652898930125424988490422274687316431826233200609267477493700131783878030253361767748013402128957232452030788182425245488594835171641654466261089150167577276176973287686890990540958545412208818763851086534607514777876547080713438644687917445622900755557980029390230245003551981108869773979050578830449130767228792710714085419060324156681095147601927174656925583570469447992045353835672854023553243886244769396289604917882658130511537256884757112937555260138308969779759971041102196095591081377877951524131176012063799148156778057067156928713554421103315729780147312585036378161389467739084310938282736881565258088149518013617211796481539420240519618691348777695628897675570000721709764243488989269676368356266221035914087026626658937168319616904027486145523332478410299933294334605265313653324147805418789361811847388178621770418479357661332084798436292061201459278479834185212412217312581700878500720622064537933310010566684380006931513396046670439327348806520171746539264620134521539016793540306920390996613709910000743600772328021173295560357695662664365505788347755532467798258418375091848797510627173195962071582938031303834632679305665951280027925285182370424097382292057353507054506401499234316673350545640184410478281641030990713276659427699978699054620476857980740741391750277179309867683451795529612209187482850810099331145930255360123874482561455778029135973926226596977527133027576130855922361000926580581101329675792465512255151615686584159315184382815843302923771339849954284183300614251907340587392193002593368698684724811765062102538569756513946869604353739660333779066783062539535429949358971700935928616354797999274310433065213608128119548151734718805399552070231684528534430875729330158414503212478277119773319327824872347531600193599025669676479848329198843601277732220784717126292961760176308154525243673016163432169612875502630269796480020220256910411318411604960794800488146878472273618868974393433572029869941656056167459625947021487118053095023771632152727343704598350745281479450095160502995000066798753783004601711726265545745191706254096850004034690685685920374779078132473190068285181225018863583343418048541214356049620106846118852328988483587003522245185390990728451323924872594238926050282259638658016819157883361797377784001311051040586465253285019711494709487227300474450861344317345643570977261130424242243676126054580584318448750956542668109202575438897571826851321850667418420997333907090388341505879315832678123129123960403184610429216527374554237290396568790676101099599014036041985067473064429673990598471040809883113487799678186949799039465456130103079319032445996032858798347774801600413115424126627487240620494280470053151109705191926602610820227101266339583358675997162832410659324065067252839472673979959179366881343404437931274780450348143446497465446683511202027995469445113828096339488665568023129639454323511740445965988034786842912912589546942312066912622922027195133876402744048700643395909827208321486213919561773448974144876852846197841054454224357290410664948266812702371102628471253607874307388712817737350071642760779556125907590251446086993112200481840127072604959767002523831589582487003364133545973625219931345625567896353980002608856019657398359420046824708144540027350000862751053410770127068335633369398296697542222081668610817689705247005327603547303932900705566286049246059794648629186244522426788568417118698777487011355253956111639510023376694542880195355615623031322894398864419721621085148918677718875318359049915975152965384417091282981467585392994530586620728746317405849139427270330488835442575654772684039737265513708136650517090174130769089530573214058223428550261586428371448923914446778148107322556306808169402397142306773778064884069249418230893713548692854535933722707030827346193113788043937982530685805383619579791900386098348463509990113278010065343700374046567411817649534621366997844677655648631146182936217719653838049125716875483980624764292083183325924133565528201876016733574144945019025659388116024764812948097720474692018298246502816333069581402452236431782987548920049231125292540746598308538533896411678582568077386750969469929206744565361720107723971411145503465059176596864141653704102669353336346113422663077925950863864133647381437181259252108483449828957236349299137276174676619279788685854820303554221415691984429851860183828835386031174919926863822557103078689391508149462769366123225644654009871174499994966554774024910862758510826463022056007848366212558473487210984331217812100421483985887132039629600009560955132162615752766977057304704339369902610126336777175276628189886247216293904007562017192550153418287725051407961653155614879045513853739343766285311150230321655626132861232386279470806340818000146431841257495188552622991161564778878921237028379763629509447053252399226963361692897130394967970689193037411207258602346412188354649097649014644831472287524790775654564392350153442121956083119416582756160426862614156086304222923083441410904582126628635726449829640373494748783438849231986956151264121772871214603510025024478480001134581963158216649792238606751108605010985191729934696832479520143865453197991676238572679989644344587062545193391423855000534242681566171551645758367659236717202707143942664399401292192669002159373396895106934457427237236585702055558484303689439117981970687064378423910720770819894529776242570382813350776128051262640604049768863995493606676867071254982913496550515007751843671202124703258203629774231258351323440321180649967264749108863340949552621646027127391461736603129509143691180879420462172113906616113808406978469551311642636644269776361971598424770038539493134380616974634394006037744145139269744964812229186164335653316730708507999586236265633661009212263258759591670220507158475683474259509494485934043460913260628155545492620549911509229892752340531135919826795289870297724663868508525306069470152545452605776380755439918403961592830489658575632340262920431224507119007309545951661965691381074939167254779246579088628384861906579451009611469645446935432104445714619564441959736812392391193486170241775788521119035683369874635824030585817219692486814732361182740082389564434574055367363828820589342205660639594578531369617209844132389193385603746054249264834451167873189834486814301320733338476587982038680206738353531006228449576144124837763312983091116410363299967723749564535309974080799496578106782457513789999459183245753749134673734135160913497020791863616201838716823040956711970084023322370265891626736932773419989541059476745082323509509786819580935647101722908474567353010820546619327715046865943620689176526293024504359800440361754456518197502129924957752980851405217935788240936867119463211750246844443538261588316105826352545036786460574867934206485198222592488312278767098533613686313445180186370248718993240248970210075279342787916892139686311970054322341132060364770614746629158317951816780722459894061141250342419600834273656444538288051771210458818809631848511733170370812005115094286209080700865657180249429408096444356276246465977608656952374940507185350559857375384606303257486332508036205515334146784522416865899808384708315589992360760797693910570636163494413628909959485569955348211596831622899347368444741843025279921305184684782227121246758646080986842001634784686926883060444626181260087251981731464660620081427513002320630132056099492132272547985662492704412721812484477872181341203839257381530517115639378060283091883754648093164630386984257800629239578179425985946136274689794738265588414661971599980509864094987955478901837763017223716887258008812686327660425887161502427930697940822036583117944738406307096149537479822374466324886788471809484687731385972202872643407476166281299768447640019342227906762532851052146685417993955552130991461941506817963709823872514601093814562388666740126191559031630874112322125980687591351699652707324368836451200960984090959070372501787974672688141863152409689295800859092377515311550866619743992625253950773535711688073427999109386086012722511601786299500076318319661546900309282500920171217410879504298151345429778229827915610398150143908811500239454754075940001167505911288366243442981649682186993830817287099902140065433599963018700843175010531507259505569217222332958290597343858285145612262533410727338402891335657012172640598207118410744276249863279755635020520613709464138864268568462469849047503963166628250877625811764764049690154535436373360070472159311777265015839487358801362513481828722385312493051618693134829563345490832990400836563243692961908947018691111570545589229953663591734060527075205398741361141405564894598181198211312236741412126757749473296784548549456687905198727045262549438212665375138580397098213810524222816268694905939659552807236366431571528121153427139005330447363000375115688167073721654710282633726965677659118765133070334053440195238002227691069417454107409132881000640335175165066689027840496147838837424007911411414101931716376375576009376318752026160699197725168349917445879828535230081401933780146290727179537180353727086422515274676478224523738328810102283757485132678037768128187361848448602705811719348652656632242191609074601540673293828523146298373759132266776745001418514498868261902888223233279486789374641021189423912286165633815931350434730488144739115084394237879421177282574027814371311722996850043080297821152129723334577791718237029364862643534221182566001499769135517529074304885250897970472931204784847431658868037833537089432032401581090516292475496551126601055124856488341433742503302584218976361107057138452545935907833745242906870286036595994544609677703721627433458202138057009822838762946939152420547281464386954619556724471183961173098295885051514973779023019407304549699288312691493653491431721143481807663127674211392102367327801504042176470356322464036914772950397668033317339057484722073004756606206611789358931611768034336105026678114008770644910116760377517220733931821311201590295041937316200851182484228228263158592029969037858775006615320119655977229410443991001676367530803986038571382272199068047849887995871259322807673894402738260392823740204299220034591753367365395020258085292190368275647232109203295830118480278812576310096683831150376438631823429704173386124062344125980038415152418402322573583346260781162134787770437145492681661942936373345185179013844636090980541524103923677840042616609781532384410354184073621849942642636431386193731135510292161867854717280693655824364783501544748589135281820483031068430195496722174514297256063733511636858249709048961184964115687650613181051107608558025339586843142074044058542384268104418064427543851289293358927866722538253746855232023082283290988602408175462031660947047488421168740754250226470381038628728659018383579787886602049597076020558813819872583417078147046390658871795131842532494105331579825068385982384083459596381346736230954037028649593218455937043290023250619136067929688148680139192130158947109795109883708114903103264756687990974613418508116690012103804438192637543293324162539868718810129088692122594978249004858534180604077317889374021266976193288753414744936885062669403108150619595392895096497330516000472102242240568308320624593357797834947411356211859444527637715953028674722664178363510667523828359805115175433521384552447305701085673706507691844911534660277855133597510422485752867852582772502870668937899197608641538870659223713384051501278716804515181265077746037373843220106547144947545566001299238192070191937730174462035771757948985090895421525667886480873463094795274138577973018282962363348548487327414901587290287341768555225571986995714660496156048848839956050204432318180954126651954089345721612785032455801404511551663976846363330475552008122745410691290770959846751622189446039088137178269777957161848013605537103721394957311986975695345179822311794564830185540212643333917659230726926717249741269322894309362249820228915366157097469309839379911563845685560771771278552396396722397784253636609574541582976521207058021663430296668926805457034559015540651476695766272128481696538886365355805190044215020867906711855881566185906738777505793408915081257967616019731642661307464674717217571153937656055899774081910404076832983002409280921066611142841453781225879505987744063303254793097511230047269944230022048354071217923012063932170306818506922464829055913198733423564646201898629195765191229785467352286395702897774378202945546183910922303080814426490466511613772585708212338610494941018239427677466238364091019454160145281335211375624887536757684224621350609213216487807068484040499981215720855709210668166410724061349714234104283935014576201317653411259689155297028308601585515305922749000134770925827057187233149732573888344446010857544157829266417196324930507634690234521220134882137074713326195962390558620985588393996667230847985787054941900438179024234076123796002139333660388641116415829074253427949344344588430253555701025365315556549066955453333086273670952567855877280407050878687745239833640475244373994488150186082662320682084923471113155877309065215338548003858611876679025629074208481544029488117788778846959694444527590466032171002887834362021663117791408270054083675477847404837524116575535676984257641646202393106101625907715329475795867699381243760130931972941246782768657437378055884989635745454248921961812278458699617699346428619353971789808989744634151190991913931988306277031470888998346606795946861631300324213725869975167504914607736920776969853883805788556268820384021011045182922045827679215165567702506608988160614222599446330322602334305728628302901206436467075841451765528564066037394285442446428541376181447450852375690977582896112013257107691561653374539021700769373313026420474524976219734945911896745721341358881839492604326157802206064648194000492374839203055509172811833421564638973273566719178041310995413432135748863248321729835573449717536958254508272041236063780980033566993523896744822508694977412546775279493647095639392375771097275192377295421916799203670610663246604132863270727492384870415406888029891861586899619598213275189280559292600336559942089414089082120723651236740812014511313505149722155730694774524156340092259499282861694721206890538203032396551723993172505019609462341272855207875755870280961804502202468151463497203931826454666931705567996300830959084792374356062104982405533029827546088509212834113492096702260483377267933503766783262258333903575560541676670394712115087727850181354518018040794554266931921211746871307325747185619770318235957569765902803393993991309467949541354871313873747788598638363264654786906372049305310801425920222132834391830032265883787334188275540015727603018082411188873603939478220279394351116622213017577468973639420808323258208509270053406723309985979903815966202106195211897472663516037589977265441440925905039880664101958867280779592520738733828949395087495967260637214111660656438728965632746739150384937661963426783071781918719196155702891641748283185536003537448262436095600692026728936647494474967186199515872047606297979169176903490067194559527569928144615165691585317872498938729331990515050819122047540281299167760614750063685264385618877254599130614066431076529916990249890189716694514357328213591533717219032831140146852146472355469961233035991623038914186130553385194037156661291189025632311734934369348428648707390037647484578964359505095006945582579267975408887641488623446188455325790033209992356254351667230618378116755196324227585761880207990794074573334705696788516381633526118504160822359797002689602522546724881477354141018928183652916023437984976087058980463670298360413933744821115751331419694489346621483752407944957170540688776660403455763888240758343407499979514816595525099720460209781806546801373772526544501581702054859446737388972011172484117021113736491848466570364821365889098485561321550641028457905981977548468682766602491024092537185858704151364303635508055950876753952283843598750911388383664221767776299470424336166739667669229522509273118895110415019462170296084581789820914149941087501720263479217909511023070443315373957939552357723032707085836498603131105540427189901831647757129411407317966949210440887008736269272592665287113562808738781904574038474409987162007398181388127120299798909009777460181209438883943056980882377915801362084721759215171357657091392738872116910730470417092608814160921083673272524081347765377328439806113570681798918142954663965445056490653401752203036569598523786563877823063434547584974912149913660090973776078014813823826070523236319565588433433531783003992466470436304623862992371943644359441631759092812527242410445259347543710758497465432127693869928458146711160152620208410783621887228522187487132515031755870997336712460092520085553411775875770844396785591751435991678777498483444263033002194292318927477145962828743884316454339476495083457985555891561424142737131368723685429733498500875501389557193295300867963886964878034294039424751415025158880976092027798985066245035073522482833402412438567716659043152452211501926146476807792369290838164425415153008131526027270396025298621150015052100555879372242379893728406518856285352381639149263269374900668335530084570648054725501398938635423092361161509103235955777404421458715487251901824262671578745178390936121240426021267152086033026834251555419916219954870608230680732840698425592594878369106742014912738436997101568366837557307136245438741423079618057881828414560689922059829689198029839303484633716639188362603795665053616392470068686895237316966367373115938209550773898909166719500103154725300536427236910411252487054695934772969926702983107376058233911902068572060901768108258833175058190519625962187883976202511330137605864554341171613053032976485016075573596635916817333483190538411330928740861647887238159024450758440179849162891859753401743261402192192031526999938973824800642195321621494718218107435957515087777093581632466540671523952015111648059727447862329088975463065420794356012838756094271522239427613667828883611833637786874293320488112500192801919311225898192370584124295728694965335262853284823147753450405817654382241917898252589377957527610940344744372309728426521125697635424456073691928836379076609064210446994630980289481265505860223868133423294814271468856922121718908689987191168529552920676087272389292565525102835653267730924077713358010542147928063020344041865347432351007377458883456231974651536094759290150866228660069099392866657611558470997007137108203775301848992785161857369638924037325189998878071612893806318764344749844663612211945381646238484732216088286589671363070794439138915570341218244210815710777277061851267243065463682048098168019740951866011474110912786065752444599367852346235826410282715712751689182929304352986817495461715822406665582233821994937881912212388696699312748069925037354551060353364633734566282197303953106239961348910547157675623716200151654088938099100428927360013449244411787532122314474169294772400732619431308093473044046898669781698504588600745796139102465281319426746705223716912031607572157596484423085187140242464908707679862630191761305442347078933296966985451291186627438150259221250183538571220641414980093706799266055694244466377999524380864458612455095726023404906827771963846200623853028111322462457874489018890543608547666280193680101329957734591563761235255066403845205872394981165014689155023374055665049616056026689498612763645234635735444894098023124987277027949043761276856833131164999647884071113847504462199566063717246669548149496519122405239198382370453938343817206784499153349033741739526375550891151563899531202327563759431015278414230237142207532523862045171979147795941132579864482247231038892518423779633781854931109261525323159344945954074554130542293058610553333226990198402880066396740665097975606113369811612760799586654629898511507174671047005640362996996118468366770780952629937781251115938849025343947820798494731874616238518575590061517256477372005633697340712059192561148287704439000241290914462937019085179533726004413436589762615197353351845044806540722257113158823405657080828699750057475986899189799091444082763258069972784865378974236684071165913339931893609820522844924841288057116723034575940753970891784879900946027997010422226704653184720235570366995085731152670742964076894628836018747168570742434412079937888839805565551855448074780960632433967280909544641066581560487413547858452829172490976230026011284731891991917165745329879197173195175263671895214490264834575408972424519725188620225617555947099050513065196483048066200165853023563251681501025912789933565411001607698290145729739364927112330843836554455162288013073907411205106348033787281489538283238110543226051629363188464932988140694771938172701938336913489023174619161466870150858357016654692038136591013207072826859342231740082469710054343094282817214304231827730322336905491787359095881962083125573241741560896247160682782029060709302134680791220717162466681872115231144359301658264113553073391374436018376465077557196644460900995569620779879104959413297748525757860849971871203737425187258744328989676201114442613828661052668802919361714563415648407173066065641154021350430369031695091566163071898640633459755249565257578455073601218742964778959394410863082209430462035377952308967385724320377205545283529586228598931229579451635397621522753332371115938624375775921590722120753877499388020774615619622651908606712759798189258847111331018233941960463740979354232048299609314532248526008308240245219256927382499843924493448780147214743151231582639375613631497922212267845084601313736110151273987061791952019141011411620915223856903318088223613427674201053720119103390500258089156510363463189916498205229726480865319109249781751896181777448469771412401621414569892882943476969118405686431349691712147400292643582406182399544230866863760961332727855695009508678710636973106502776800239546232944852159957069682164051476071624965775745605728606533692615049536658013017129311716905252871584278369105575434892855039780900136920648687678770881164190652062500167867624616463865634800447705319707100075121902511303260354202580218254305601072178204982706140084225838584704717931642852218104887255778732081334116937032341496630783974808591085655734679219723774509676472718506577391841030261637734780913906381945042960778287297495132248194440741448174004249038430377627747360503541309236420204377491182309350266166440844970571930972577091496036891705385182451553759760343364640192206059701819022782162617527715483409137179426886927117364735513863241325652749451531083244191486151288188272776778940452263369232986889468132625937649017244896594838119113612267977739853151351975714657183188986200094243165384153310687258910646608510940780994972340239377284931923460844077677541855375739575812271813718040057485475951103329687232902757637910524368235072061998968382998879610283541014624888359851373940988905627351918687809704573428830408079915185946448962401166103655383002382637738234897464868459051647080828527759456189835823042730727305912909816389107206354414538627922227945036936254853693657441530343383950733655569894037385894651480156866654983838390182830725705575406683676338686178809048927351104233091576279208442693851963236442518240825189084585782138619925127814584567780939845801671856927740896209623214205446413183836685031195094511243680133154990376225070609119499419710383849114304982355775962899175526673302257633657356989871002751909218528766147271908460193015816378809656188934155672060424292611679443048116750827256691229977885462002250538619231312798959061711288346016616661293932669740034653589811314724474597425068511901367991350332215909114362415899465333191381745051148049942586293376445500198650819483941793691546648612607969264912112104426585615334326800779446213907880482076958860106739349773596133468967549484035039313772049234618326175758828178981685693000275355355643928106726313712673376508795396014460972570576079035266471789150666067398742115869122452970915332392976691508974969459188018469976134273500568626288333607536958957097182477042151353852436735696840305846849643481653752422634887175924067461513386615640309602355737655428810063247380957134314625097830913742962682733844838027586132169962053653069176829891123558782647314086451859547237485421979908470589536155177817912526022280007517266158204301487412431240061790726661728529752182381665004347380725091478736960893806714097503730774062645877706027875869988247105319498231462204906547700800529149518762976550398912628276497510026522961061745195273121706794192712286684764662855753693177292240089060948740023319108039992326157668026218965475620431639425326889219095777518579282907325007418086920176922167445481523503641860855560815358293227232675574853649679309235261664292486753197377582537959674669173835313685702010639188916381494131081723558819556719839770404366723349115387257589237245764298011998666116575058940762988672290474647047934537988421782028989628164370026649754711561391734917157378294465317582660577730072038821099907572220068437225131587841870666795341022962761504576941603043367736770754739274789373192207063409456905196758341313762753084185424199968947802380068146267319066486957375298093968192379028291343176453904442108579803349359730216294018667023886308595055899461358255466466818096086278225403437082892334597981132633129879561087960050675639332693138821417544555113747599037353437604694820872899077511360796426774704635825112995812296857635597895954075349516540921454058049778597681716460942897880623805700086398793878538804993838163744610962034094006855891111972746154183667669701220292268449570483788003661105521245009024731714007516480427794097773167413490155459102229374671216136112541486684624988943439955871507286055229366493063238225712379815865065694770824415335221371248789208550879683456610791428979350875211292837275038966663953929514104444098952508006482288191557710694354994571215607020977950835956169483919962784306503836343005696621770854970455451367910313082125378661009956983918531574049904386163402249377508428743595349958749984467573058209387686838978187808526353907303219543558338152803393978916015974703719766139282098068343296641797673135308927804508131254954065612376128473775402405656292993870679221208362613998935205449492042907034458705963190866064402791054251563262320110729407073291863321519794914035420607668943319240199734865099865659946167263112667587623937285117454982904456595771852836728995660990112415629344417522282169134650476041112069887979794323470483361599311039675399546921333095907467747846100853587518143360307050691050232804011107321967935168813798161475307569582442195570531714207599400641640796415473051608317045268794489602447072594617804743447659705510500949846451502209374464045934352254145404361079916668742955462614134290750408626521824904440983404195083060370742845942646081723356238293919621700184647105631123293802306869312258445928870227507780095666373420610626484623224106050040510048138634200666373435031130576289011980859455849306001521931733917134493413471346886963394346109004386023572617826120076869840992839117175696363408145499290286662093827072994034637654740384215329066218415804116033688212263116783054724511604558602807835006958311070613556150617692855390808579960883241379245530523881616755941854966299150326934260008739187564200368559755062264309827683946659706778433181862568954409672781913583191227791416493542208770729309658957521327054998218807284130803386770108241969767125322043304100461678969870354603666718430913121475475814657117212621079660670160095581270155057418155032649339493522338695031506797749780942731222097739952146567350117903693831083172974009367442228603200334487023468685046031381886880247746541090880477703059819165752582145441199671551617179405008333277295713267414631503117414279882651182198975703335375578099950136081412944538217085895811509029962940584251478129600390992446565306917213825975267843890978139690704748779579839384340190551870242386910147862379111950090715100852936759123778316653159025008252705194328965843350447616228557868676400773596912436182093023072722741647152530720499313640590629166891427373923529060192399343276605795582761701061266231735970564896884350883444143004570687610719164444847026211090468777961233180335826047267059004567470269139431510851894305843117554401825438603107576583916002805562936576509756243290425455529141653660429683922858077321097686762487710162436812225534084357742718844744268564136236812144461501748750664581488058189205784097598892038086469561754470205595032930223561647035383525221208877142398001461086799873463822406586587927327775743592630187612438674371503163096162549232733766560985883889414685145035904675508180074554148545710725269768607071255213819520464801129982297849303954603884069308050405556677096769122356339460450399751030009681838099974016180063565221201627551303114426928715106186176211393915885060532963941013063299040805828392611955160136492544261081751435177656600377075100780754661418716095749907741854194310259222974733256491095887331737648484822708172270204450039136288455845718042978188005569451081146000332357346975614802724580876843648958639311331944195510669038971786090883886853981256462161372793975089456560145691344961112859041615644355679230756106801192724680449910457635759065627997840587126061569515511872170475840584633097247635109270036741584894745080068122031368581557339126662452022620787652496149103324326729204132357890097857539982818306209767104118948959055396746588581277968727491091736397992749812169127494075248715582254272071635031458057513655757793281426928320740444224780266320598433420799091830162599916150697936468431085157215507378716936509771983131376408244746173101224746872967448333740978995419641934950220544813588398947952132404799828442123052471336800430039432558911750376234708549124716545536641909978087161698863203857510451675941473822697089109367758963806365924756957795645480669072639070069934541374019683012351773471038344614309442174438427858178136695959680316008072078338639764449172494959557848623253610864906069523558876493922900111183458000703253137557075345177141095614575554201695925712360291907227121102572797945677998804809149180184887637634033026993829150248628385577842646050298936861320964926642543888353183508566448491551222573586704529665786786023441743753111083813618153827349060176881400056293007061689861845101246241563048965519869802233682481786145459727741935511648169213846131915725241730250030896628750250098071185646886752185993213286232608759149626854286158608208903486342126822411904823164794073289101350786271273541170234597363405465956458725110309026895328457340343256101103629878458799300103658134501789466605902515223886022738956777447428119229316877835620582454020154051391002904384563727019899825250436461167978683745693095156838699689693378322735771274216060339261647909235746636128302288711747969298763852622944196645573649827491832912599034760744780080776048993537092929550774612535780151563507562966386918602388381381439506801112946872326949739941944395254233619219242928687481449517781794000434179603519850372352519107766545839129447479256308771180155000721680433872970356131639766780245148447810876444341343432786699494953226758855650773542871465227271148375727892223014826835339443669001114456781538425983561823235615784436456617841071357507560052557274430262028232974082023870215956506008957554457019772056443886975119453523508529587379113806400149104058314749454985416890586782496832340016727544943023239302262423059101018789451857239523245642535573328874945790959763656184743109902866701254735471154321078896188240730459879783895394958658655511548589674320661681487351999618906183455471637893909709030268801456017032618360226679576304037922630219010204644803983372041793976826534898489816131220046097379783665789438154229764104713212287041332599071809401986689974700593640202497750825358768126972763148074189710051612974894639982137558846228314180651762214869271890852814744413457027063384131902432415789937379853823053560972547255221692583138201505329373351758220044841159691632888146653308684610633144802294068131888658224959629723074409223275998834946823744638503043033539939840836062569716105238069173671247371804442291997649582185104084892187644369576027303917744901317490902109148941138980243489766980247894246383579322235737230261336352349054195649980655996850776629341901095086203423279996280197034957273421717298532476896990079135130963714622881469762501038194865316642152790361304680901973184016524506679591477187571356522317321225838477206841792460739663086313758496726998220821879152901441564579035755444258569386397368924046446743802337580395043539617039693690308672544555933080482854090219707341324181617740252300929619565450010650601516733450468709377325873518589767575336644757142042346811577022785580683586028347292815385840069489712678954462996332535095276063705673506338648792680074086921583814235802518622546002214598416223432945516786768731611565696604891365073560528225174857338578745713787765563328325622350890249517800958604036606349368907500976660865180146097821139679493138826371534326425273849206108324898037405767587999601694466540852552061881397169354168624045605211378777092632608706176172622356844520614663511278361220549955323315475315981961029935707757451572178149453815635236435079676090832512871538997653147244188833937000892617742294748727396404581826198096982956101392409528500789986542003142293288608369610967715534361518611285631982677014967662697895456249604081178864979348473775751498715454228626302106420278081476568545054788408188765317311988159646633853269823193675021994496475341412843750155102366538136033712088440145789031023070160457315107122049582485868424129697560031662938337019053639372199278991272749020451074606142372733866614476363455803237180612125859098747136060798383618913236887664230693322599356037973743769124983783474425482679297859181956485123071688652640494958559179836364081016523298553032310404422370529357110358250455379656032324217530127519391444107290022001177297051978310643374440378457086243389858953233238203807277488552303009218357395099253634643788087447806435342972633974641608364547871972210914848496125460363727856539096229238301056892460864858723951860935170627020257278775525487928240226392835046625977245378272309258291445344138570842542619478999050874317503972973139754065748647820320163300300017829729376992449361521401440685107111578750384583729714696121251739335453919289363799027748822624563619842736840649675632744370911420499639317794397320611622595830277833004930859836258202028018017186307783468277664133457161430071832191584932015942189211120611647406628455031359848280512812773846315894059653502690934120342383655024698922363590062105643167389211266738637213495045624135866606481983934926445489387350832297038085937117704011009694167378646089144778047188345578142853858282060280255671562381209213505685109225894460985328816161241418878717457982063386775200082117035998282187477110380076670114720316031590868846033750506469304739459934952642789730904364238948608385022808304979125943664229603523589205946595345389921490915227365375069299642787618771140761364367885730233329292495673680367249103396851887536404313230039980426845085256246822782833467544104216432215877148193668738709313444072727943460306119295334196721941518528837734141303723245973009139866767741877202539816030750062535411587444603579427759764531860178658146436512132939655486445506156784287913736044444954277703573022491792255273607598805823445259430670045685521188536961967064384030215671415510991101441011682382530860951902107809685286302785590800077372309964524451223386594273646020315562127309278138648478028521654101238274240758539516387795787258339580617634810991164973193005782489688751692802914812420816953932425464065233621893280089722523728637041947202833852931151932295968647098922489040112655632772952784865426986442793729875115980220794106865392949683097124336141762275991559676471277622680958351388532682432080845149303266919335713134246087711683425852002735025477156668895008023962935118609505223813563493205989262798270965493840856539241715893103623477626837663341023887972685128830151561437979097647909682957762467414147578898591524700050195944082063197992537946351131724793628635611019653974288862523230365881555859417396505102827994895122432891315371119134523774400202115837669874868935448830838633307489468550829977237049010904616467193166073797315087928338061480179621637959293974381789381598192438167262985027205508578493522613999278053367086073461170101044919089514175250819648760446413054021040832582809109989632843405264034332066762056043434287821805382391378560880056858348546112280018532657185318979236999366057786611843374391175712157299932216379949982602685823564674054008493983307259605956559221563309107471623347694150878771568376806966940568344740274824933093686171841631504874595855195503142657581096061512933100766969154050766887971342895450181569740551797249156315006749090753717890011835817113651360249027427103148623528968592073393130813628323931010274166236289787438720327216465276402095118385484715248712895032902377517535644438047782825400397934259422345830886579958575404260694667097825346239236398565056801439300024840308049983316720146839292514446136042874541355735600120237026903227473651127562871528539809886441572653288584936709308167814462940031211193503150338935597579818131033703083568016443047653635068947314588960554015285363424954045058009653429342671902183630452765498324616359018360921147086460162879282767208439517954990539602266457799159976170212423115698021535673028045316657040236790192010158799726046138955156300869277146428262227038497948073660876723377049422150584822294258859893578350097974328495538799764034525097186391582389640165572906238358516024117572077774205294697741071109485445708784885787653034662578655868734920159104485938039411688062953903744202812214118577466041894187495965452966524210831961074532880537666308546837188932428210007193362451744166458450630319824889627233847443929117528254739751566254227623530694357833301694307206138028878744844187480697208105483625136672693644438221596370975635017882776270328497169888031898527768633025426826179805775697607347732816435403572100451855664184565642775805784972959394473689691966457958418658481390709381867298521148707894368715559297682869878305852621498323256201689484177801029544797840003261912968588400765448628966006590302746188417929518497507078351226026972605768715197939305262428582037245843474224024930473222290178837576318027954718637680339768604838842454072394068980488086914482629251808483848752395887960694667753702856712289027427228122236606883167978798999574886836375787770873028726288584998388486113553962162282936671652146532716426514500925150481840857518944411476218793400391802948685972311795448099260459836044864683650523491106674839056620060332950304577299878580589307287578677699019096672240982590472050865629743532537733475602667952468106534183793925631855108495508300034230276755853689851939778231737987290642506405900685877440803574700206545244060175918182485883433919900705141029341755475878829719730484524379887988057798655926467447853424721053822804976009546409213169087731882961899186723437304201647569291392221663424744769609643626956735706774423052043073961087764145439563066930231326188393417475316208618050541316555468415065789580003785499991284724719650745056125015601058888058911620367324464924243786367282971575383244027396012496201236079776750598599311239093572447334931563606671751148356307681902490809624063308113189879049340703057460945403172776696734681751215908424431954256233365882033127745750811536358687680725227800645291367504944082278282743906463639539955083550613464999382496558670210595811444558055229854039322355264180846500651272631745353143747029195174726864338450799141038556555740953654239784571252273143430776909875737094339909368240005035636912939748675369601471742318478256717490822847873042301671558787040728012065672782822446423874715052485379683057181317880260292223765591817910614300395243436283929713961856566999379435527724861551659436138397000632886573676862923972189772959461384441576717957296943015306480003324307877756081953814923707914838987516689605856295246981829031590906264120490854049300136766399609505702964929394017817657071838228801989332499362956198669175670885439124653929153978459408971736529383183640356514691445210542681043158158707410115614256644169700346879554670662985824954169344665610991941294435719466738816366915453149490510876284653965421710670086102045877880161109185065791239406168447974282236461655563547669678684131546992814749983204789548751313531888411744127921187779210055291539834122570650069454565843175535679306778018484909991870478796733437696081773337340513865201669129940904107356388557111186942386474726625379353670601713821511130477203353655211979323144518842478845623084118092170310769801945786529372737574826986023101215410734688082347238856441354030088894847595038773061337841321084478895944001719687627044642592343199050169219720573583712336932009395566426930046921068325274288809298130335759571972917077543936868359201388448579503951167359652109297809520193967915021253172926906742591156208853438889246293277756779169331703222435844247579022699806928614543844388589618091922644301059469823495351777670199612434891553006456597173984200510795498447314381513359114521911319697399294248738750284573073315747883578221644537105237357457810588195735299508900498664262808585136854598793395437025483941041480521101566626446853282187510502410847072207560747361067694923726451693101683934532494453749624219808677622029163979331781367081228044495307185262847970331339349534590785854369337468994002753544219040675127107901996556617781914238267148488724482504668387860036165751260177441058010294881661632140032062353935060352216753056201689917296348024254520254767457427635234585936401932337632109214493883568696559587262633735650446342228918406031298691652898908975175332781969534153443769323283363624898965016647836844183086623118702026252709146810980016688279136482766539976160765746720890856192926428864711397055394107492908037005190422083845980437896239729805818019140826427222333232218956258088707238116984161080165670133800641631255578777718904514743066589503784187670315391532699060931091493477339563514318855940547542908059891145714375253502463008105665486627810213855139901564033837022851190844604906488844083645047074032806276662006185294620459581750653143661402597713497702974711569753605513341600131837755017087913516681440200610413181011349117573864450766394642762891965496560715438537849614910426573455411949322688811263092908928888240850627466436778954841807651148910317383044369304737484057400837563186126764770806326281464854143551163488602138796216585477524332275768613726759287576373207368565888485536792815468225441503139515252225086088227658457069357970332896731896837498323327544385773150386169440001479463804708800563896683646708458481894902040569333471618628086473736197470226404660005122265927166045031080176138200677065345765992951043677833170009135552332670112121090193752184787871873539829089119818628852564489228685715058880708021249651955179585325850827244454599348845752601503554681804818396617123275820280178416599083103183888071642336283798793959109238327398568087332955043611196967412555216230156902444799616392533243233683589124606843990374553605848088734388515757395640916091672468723412967372101763354360053950634032275084652687890555982751408451489776158705436538288268579358691662177317848279497444061561972559411007429501730219427533148781681412493089850924129063300478279756288120086782566762812155172790419157773412586488723638226912154638379411134748643097441525477148759053965203228873208090486611300684418784519026384727872634036937867426170724289128123576375866246674246846836085389638060354683319006795587249861708244683272161971883844111638029480202016528713288460872114958077186073878986982355907023569151258339603549908104904732950687748708846251354631378929212786942019106593615181322001877519552005760014791326451475100091552624375934269400004856540282075816721336866480403426465965795024418726353463523717382367664675624613423670196716151231725337704430955509766144853159400301294866510886293409533618792054743109015303477623846879526229761864015899006709214305209348970464792785095951382676757377135020872901642086700113324724882037384079668924672907340938171251209550710482923836721936969057713650106327334977026574994769564045492113348453385142725973018957249281400196413153152379049791538730024445029926671618949789594475565851354857241555663727864238436822472729940024438137466385112617400177443847159394660550923760456889998117116514104338382234441474546876063209374602478906184332250788756736113938426751298012578204280585666750744729848727972833722455457726833048698906030593059024067662002655658334255758317041858654418380036357525840717024316321737614816115399754886922950128495864566257352089836035347772668420531785668230959561898402705009628673217129198092753707969193652178894541770509704712188043090371479592932205956296750821266667667848330518495617673170102038748280052911981866096830828364338264179116339004222764673495928161719234581021469504178804455148473624108993873888808631708117303710450554362745998135967873085024862411886840529401025242385298526060075771063548242378459950385588521424186046894008020075840199997124290171687460956912080095195099253994141994224353450970624791768806529498104319002360038386561649788770888306427595020686704784535143107165509333946763360578721628592770838243851209961742666394510524147316568073210865198022171736588718740752912524697701691419085786218577458769518434677244080191812261451426656721270398344265787122580098442801353418305121373378490913031654757981241645322550535546146530137672963030303227122172161767997023071395852110077214962420647127997889101405570857203905915695096601032701225061175816564098409443220148211930965601644962842659458759873077483494058506116175770240663649742892786244010226856931535219188140665844695521971555590716082142834118683189491904860679034110019831152857192377834885321051205446358436019141045682729706295888124022941066415440064669858931366883014126529601957568244564234045897049460855902225875768441362810248942722707425722900501265996032069807563060762430657761578075861000566248854798062876675853903832150101672236978317842382349106892052135945668962300082795485770157632299512933951462206363810765769835299190028727041647706849164539506089610092850086101571451975540452522414615592441365189489584215231569772253492202771885105979958775462983071840191020522378842415011932006702494854195874411935739155609436487907010487206737757426268027002821717814423772167986265574505245920827979239754624374924396358976788904707541928981394603534450281402332930787520276247808876863649034283679394011325944731187598091105220851588602956359975935569884586919487190041807594868243758055525373250305430821183218308889704825824814290025265917266056067169831177229393725576259143324673897207668376769642521355076997431444066351014812327436543343881874310610454751411144536699422313134582066959673408345984983380350124021573742275768695621476636250703304405777148055581995704915485158749329276088221963539622457830835194016739541133470951084952595003780083181818950650341289178279545617516618967780291205478990681435844024501262997180994969000616583957495029873535612790058836925714011695417273253145529625200445655964307230695439715572124099144141812346762157796237679939609831526525394526904746599112685683606903364617914977928405560277340423751786018203338279467924063968033223333512475327795745980010977359530319899925300020819131161497173199298986531731716644316141816333241960287264557356243877865281946192359690917291614261309769748138123521810206535126332228168885244054981370423515448453041381017387223852325193189634913055160053964403057588085426706114513378693082073415891950392384050345766521609843776008475748827843609143744465224448096290514411646272138335145325663528114060177334813262858452217630500567001205564509549352082613873936451046776523265939441692263926775686091791069979822512798331222111753488875766219335027140356176192117093926126958804012958993707478968612344393938358642086645435787720256712409366682741077985998857269747745374229287470717986602682541505625388698509948036396747842455702728889661067604986438149726527077300756636433560481664294652257602853641237767886305037517412862347804619100052533733491364417953864723977889385351715548519135509159085865676707834548258154023950950213799323897343397389310011112881590146410851298590914663888774366115941042636511505680318909805122244797533087779167543400440489769221080184675517284276609308698666229068539044145663083084717727359288774996346087516239264322343274853493415052719412722299614937636882138152356223214588149030499238405599544326714200702254793909360544385711693733078312022326830226277280718421506325539297485777159277361317174184025981973122766301418235152088082488363039863232425451294756475063701868021527854025113373638159773173429148441255005109832875648407808282168260445948155190353102292769079258898890609296858770813211984484360157947239746612014515516012561340400525684704538709173286938655827782461178900402409747786954981339374730404030527269513844665571988184681117504091134683982148397480590034763709846682410624341070225697348980251807431310975295194587798176393334070542416520428107355629973430786039847322487695252783950344710982233062747351279607825777588657301352241516460153067172854192192012161480307275664448657032480204738263058114891850899670346431136010947137247573865860085385144376393946810819578341792616771916700741872437178889813348000916215546387895792516935016894563906433828487208538384501450906594408981176882810472542291743190648747904280891693884673487704156611573847924461433944896770290917580298282464171934885827669058242224701493092245879757777987926632028004936966925778981919295578637238478734295647666768371212889726492447403933713616248413033896989181717395787287826378708280194425324434496882760644796418228997439529399996363135383014672052190324445713064380795737317579834763685845038142633141006503509459764611433211893651453293172825163711461707711616832727473665195653554236474090077749894506453178395836801023543597522252734025314187675083547850785586174409064864440855466483838515276364930749631450555237224013597476999008125890077625884447516264720157718422957458361966820897863702141357013318702636653115506352742978442529007780617534604344080593148903064956431555208113785257199672088853271147962041440147864410682320623637256583866790665680403538393509062701378151596033276760803514505855459029353826554522678234572216800081097468782991177483431360460432321510052628495538131104457210185482513486404803671818596150021821910755842974329689644541709507209544950527777777568386184063948578749836265286898761792856898798432149048738585022492906616666452733030114234784689325616698813540515171314837660228191537566397329018731859162465708683724893375517353681356241528790785214876861214230665913567249023872274541658549283257705848445310815342204469244129351020133101635287010644806479396915964044748906636566571474938438715911968935628665650664027081160853468432638131330803144217914728425791889775175422692040668461596325296615099815960043512024045114545092113626271647100867250099145499068831192856521691677022816393177821994519657444066127150721528422142943252970304130216366140239432265565966816010208967984554595617983894879479137943251238941343205128667743190778968035661381542216557323205947152637122499747725656205726783558964977405791811819623613513037218513060728310231153140959558776813692858099210212145392415822937076724743053637061892942811251334812760966474473764587151274946716493829893961551427458489605453754811241912230218738515372959259708507212972345120592414515983181277084847680327889245419110958103553490003782923988625335170978065735486805311614465644531791782657232540497195926614082869194009945299252905001263714235534128355178455989160359499226022566247556493175339951590104845733614940052723898986217298064768762301964225468210180033031454217122503078905398145369325636332067640983830354955217428565163273333440310837522464771917864328839554444641532738348138378264977024850772528747663470677135334872568059403788909318555434754195209897050396530052323943267781323401275277036225530006556219168126054141771014657735782646608703507911797176190013355809791629342911504504320439286992541050876713621381806448125329988768720130471678487914963307570987331350867917192593314481225894102909024226094141083976980222329382073285838501463056616898193585902556584689847200424864005392247226730352265105069225354226911637171238807237158074846730371113033561236178971928461559962059045853286910342672175262608716422627777430233051590443698381965435996877044310766661788993666031441624863229681943287932404185977559379113164976136005597873991538072313904148383268427447025533610550341024468973691483875880741086992644230374359246065632794719256694979562151121131530983817192596624429878417786968582924922127248534859542517007404441417209666694333654861615437129893635642960573315514904638727304443341094811919859722738646205026273968724330260015089380357068096877931577065122762466242314928465825859571844814407317496059766138433173287523388408881648412305114597818593008008964480832472018541405056180769070602191479215031846708529848077314800054709680981732391607335513109527119430528323972761418841968721894148643355234813776567098307565820887246887301105714906303167277854496762959896966399973543010023424392598764809080474916049537547729645633510772245165852834305191345333647665813306459408893142357954149521430700553473543007040685694023516397868148596600793682643329132546161186655865488490529038128471802540071350197139808367984811229489581180185403857889332838287111711676455994628283774398163548756302717195882179970876107692556337357955941406465367678644342100282115643614813248958019317038238873424435046276269270030173724564049527257112553937330140609936805666618334985411969906018464690120064546398379344254506243790335604536864412098142879108892917856522907358903683501289800649374745273427656949426908001539587957692181197381283740179310122525116986825010356644972156092000641156519209068759785287277571687227881340176640970044218645677103834652602458949407871903001457306337223662096165577983986853998591518151195046745203102740320817542176983055614375032843258651486570011734605499136429905590914100201377790819033304089037641864805513080165822263997955341619905828714190225826384663417764931125719580015515660476748559330810925852790506434602477753325372560272310188138692859304417467238242840724106434308433039685125245140725709106766510855259322687501926076149958157548361032893721974787540330574650886731315459773348658887960079487969156142181266144996415529796191326283507647778309159792853039529679906200004666817825649681214990056667526962959450102160088952251420640616411941737993221256296305650863232774456759658796119365544838380547913290389071750772571112189710583256587206076701961644362050645472905251811790120927376683902593323022636274771672142386189796622787236298826346977576435697090348703272856641978154028652432951325700317854422165200426403072176876408842678992190740838535269302124967774484632980679692071706628067522453613184158352144130445772061641903405151394670510190954744043056736821117772797929995080958239851399125774560218557909806604982447358801564392534614349983683995006891191198503692951049217766411575709718380739120818468034634385940871915574513830801614342609650920816882912365929066857995721310684409218613258743314939106318814000922970607587462075817948918140432407991909152073051493340945011653158436344017624633241972504403400607813085515842488585022912910490223862281370816507077241966710304690646125174006168097399531811454174924639436134329419400476202102120036009775280725920706491980456848531042286955356982181080582094702363584347306633237201700528816296031171184870355914557621950689321122841297863911054644017048623251427678157620717279773577295551118196308591681477012614213006800366287029639208496501162911410571648303242665639935447077723942322193545314024647516484033251950470988341060482590006001355300090901879226381398231854592977868581071402857220003024675709457962505844703542429632133658876103192738533589167629423875791676932365723335387277337191948798731325217740941126853661966067155238601565149085364118961829791524815546163013729544659967779541686187240426065250124955234579374472155687109103943958875840945310499290859399532783142704169202868864414482403866348409600693925865775797319178582155944584376010118037507109199073882316191127249153382087917314990602019936198383281804657294764735237928878916288305633636485813749212817107835666858327629785387058656135532602225781299226082177952972627627298891147839913581359305239018597925750264370056867826842114845130329046244121016049610834743004714565916585993608157317497891990728039020188718824180482405368693629889790918708720071775759404838381925560315921997297791360210285195248348749044085539010187054454188970753580246340097844258939581885895440121764207530122293680647710371574622628360615503750113870226399432184537323692279345241876398511848861112876750386144345464738683380368805963388142934680560609862878030756252459113768633406870083608995385295818998695452246883776075265016669033248083865616255861974875237160615792274814064869756853470820820352114794989041511553813560702699071526627105796954894275625408009761864203210021578408727807173572854525938328425528724130672376964124852089278187053856613441745729817676766128149061409902229903111000270122084208502395468523036473031352331230229757935138891113374026771265534730691966571959365108228987145744134808734587400995383792251883701580540980540168091254098660551185251179756523790996850006028261347070814097073483223551901958880822784978735453158395339227239519719970623327730460739968040864991953401101615579674786875376060877432293929094285391492966838250182897214599009619758458315803776729939639243245479788060928107080959145139378207789789075514223328861433190172578113723561800069424181195394067608813148122382722720686492161842155313733691656233343396556939888256330164991875310243212489799084443289506579847335325831348876636686887155215883259970083158744713941319007893634199877171683105816962977243101387062683762308142027974571679183819686560991793580786731078535350231789399162268256323388214124989902522125581929361369517596528481197816301209441914642148220137683746955813399257370511536876020675717743839244346711817216812728195654232980353843774637320504075379534626447521339503815127255455730068367944798678058664131710962350936857381465928196057248068631638946591179590265932033870905212553644890469998747673541288315286614570544850943684810435409600242290605066986835961988644074311642983100598954879143870771431502767662868624127146063755061748432034739673799833704069385867741727211467796344375764395641654501086209600233247903869341264244275338828366159132034949464419848460242420036906266177255239535216595776766397079148234223602198024193224875223714674107660563364512839886300444794329986753600702667105022514706481827413341894623008800720008539613923706129534631716519824814707710038475850484034576041748454838311411267587387733506153016338791386801447868952705179719123268204240207012963057169990503172009481598163185327678883132491706226607287715346587319354937500686930459299818505106327000127943910072887722407209325690546530759695910293794413767737977831469334819682435068158200379456583197993392298637611255675730187247533558238341905525378027332227725033165198417624905738424138775003062439358760562019917903698940756033363088158925010270177977770345322309412153919826823317810532266770205481789772300736527579582980985848805894648726587263142473047375298222047429648395350167393019954224056882533075690514131780417508219216321847718209752853151201915995860344288173881967392323059872866592485645363165157407928954739284669041937133232119761413943663404570632996319907969820493260906881579003192117942347387760419110024044881409814265566984212396047345342379843548920160816025749892590877652933947902403860622676681967875497235361379167128741276340788120501778762220133515812564584169323145399395589946203009374345493486935089283482966388021871968465482121595284739634513371258032128729029520446650094960679558179800811517584391461680197810163335593383382202374505817757062111614736099778218056321773013893156968468987772544836104341570117850754037440314576707130556438445768670915590682889482656666198339254986377880537810890193740078080495326314428103196725910639985284323528147513931377744391301252210143115153415378408694888382066758168808330444150606672122697942067820350222762986919531458208117959413052753424229514032416269638192820648597811760788625555771677475254227130181915066029235763972130773357602251229485144343897534770522402426365138555127674120708254785886532729547998075439481534259815516744082057359833443204892593431496679227372518487488529054000388959499376203729430370479373415997725613768732811230910776138873805059993244297171999595121788895459832815786079663578520762498847556045910912354922492970599930404542946507789633877338924382407369533654253009261790057296782796352944532634644043366355356347019746042016499571568098314780559039371879280057982871662107467533099082949568036729304218740191175432221906854554042290681613416503699859553834723221986229946950935137952226289496727087459492485506886908082933616050623913136507096689960414509653396265806652682127109988154889780090668536648536666401005098259334377531829060248892828513714904297990707745939530972575127216868355021398913310308424774308678975477660676906651389176067440443855071764945462954461116171695654726356706756338539957763124966283977200512167003464014219677537347978364094341372849250696563626217035502780145909886126517095566950759883892786139331995534924649358432179152881763604939861850004008797399019718748670475680457420263180755684486314141313392535923929222236091758735915649725334482046288522623621121424068267112415709024610093035848535191217225958611987896885279346349147639387426481853143382249984792888327531127043059812921408523233435306062029121367635095651959441882061479752402519250279708093938921258508569665357033881209449434218586454692241980163473731773590382006904021583562366834602194504576375687948306968532503900569808512238908560857671203206617645669602820340620083960700615937054078662248281408972033777997905628100012851123754234895708386105950115896278498980727925529975720460432779203015085562189516489483330739312688596810373680370350109361219128872567854813498371705408066655634918586288502515324722449778672894990413983383978678286761235004941056323865375682848707778794223945229760890057625432489439800278228860057783152034974867979794640228993197828057817982049416446632187306986131613749850035934505336969366977347465766130175222116626610068933164919453735399297562824959450636207233493951668387051176571000432959677157559441276772896116892204351841778998883226209187717972008601844530066912076541017030622597494721617108009613471678356610469955430895012468537688608350883392679944853986337406589733005722475423111149007790334587212346631387005776972395556176943278074419785044844716701793121065321375810694275888992305954443395412781971925456809301115804033973857672496203563299048448591669512318107093714248652132843385885221652147849509381673602506238298853160730429769342000843380451086152713099977083849195595678165158433575378603859614410803591264169782127146696891245811444251087591902143768146159746400994212965612522685345673291357675111873324045984675639214670686506930800321929923209136310465560989900202474846557244374814937712022837783790873152987243788152460327942188546052786268412018779831668753512493436205962564117254771637127788974485770198660904687615976668993245303908158374701999937133573256174481818340599388006460178280514697462912648277998388107258190182182476463851017762389628584226146035714923439680263822030774143163639969707188425242859761558303349897960840729353399878614269477203941071381141462871933598747676192014321687965761228610447758413043111840162441660992403148338359613997700935291399424850727807328108694499000148462812217981646903922724837451977651759340776170257098820891164757104537355812307038651684977149367425501828464463918196674901723982097090456109906840894096204265894241883195642187291435807293128632367616622478083238475034459293221241772950980022919495714839840406509566698620149928010986071495617490432046536402018532698888507470971041749975016368975929045086317249620917935732438850138536134305337082784753639439850373815141751877397488497722744665028507082380557340344937128038489885884271929941204490836952266443022969589942780752698152508505101938221106474237214437489107621361797452554282374351783196739511339650182120894794756584137002383506519712688278372772076160281563220394789882578621814887277064443514275462474877728223599130552758867353722164619141948861889773451158236562508198326968503538250478745975790639211400900235750071089299044370493806233644629519117281032985466725599473835353063497919946953251239930316164638913118161094339226838225192865027239319387353378842121988790931264843920873573205237373001512501901518087478319051190400480364759286706076722029992826639712955609541347930153681614876365785201891588756085467897769253639642202121595910925429539301929814059329766028726555410543976162871706579004412770147340302950637213935288211999033698160217025933311338401715133324445491095498212613114914388355780695228347826314358215821781083718807216819420336968847441753715347105988369338297971467897581951140000323776817677332064600184170841409900737458656443794904341082473862587648167364998377242901591791519141393412684946608745152099084965575599335900745764495821125522211650482734889319181193720633941318834534251998785993180533806234210600559496754449219162193396750404137264676959072249983067605686091596905590797245855975609268193541561026342806562625736010136499281723619639526947598069682862894299767021888520418847153286168982459456545783146702335956707281692036320037220805932339526756949000665690413497116482117623795480583874711520321093706065606817145911791666165205450530192194836012387616453826043260138752668128034954440510562516494650878356017616596380328390769391666932350631368415137322991279063266738169222498237272122927209744730560956903886282119145583092739527488165129162162767170039476549274450342041081653791266312466069172909460625269575190797314545488579439166344886730286126980027721427891680755147437325283465542483139953471781874769000505487390858028441199653448865055704680288157372210594685871276228883637923945584039557887804717284700614622001066264481120876487015589752727346738603772543084398783300408700699852644008615126442740479504610546398749135416224975628306013297598679040915971507785874994139981145469790096450218114071375430748078842768114273769174888205857953065568439299758994375496160325186278779213372106747479447657925753040538487915998639469478046660943670073696557755639225569699289577925988576291228522507868205447333398167943025921477207398536344933915887105544260833861820933040931077198978344352686608326028346490563621845987617471550837614276277837594500629033541675411724436927430909150302555097649180449109631827725552378832125080145606836195846644462937206130279662332229306557666250920503204100081270959331753339502488326543196839268951854556352923221818163692815768010533469945429277527039652398109282592920383280787931354650735530629218378951986967241850036786647187199175518719473811552749581874818441517984814965798694438780650032206460485017817838835765687037863354722806295903296720540589357127338430019748823874567747972991123166141391829757403629526421938594795176834089690309740104334793252138149548028419782514315449804761700577609699521179909005719680204092535283002630750579395326202347556856429851433743279887125414296826206900173852060055957048072357621272059642185432522173987618317203161896351869306369450361821853677196797439030070460523508411214217258572548399309525561737571008515912773481139903476442549278539628208964644328880103058998880048021511631761295602150640595157287843848597073923816583487798508994399798610630026658458876117786918699462916445795831972447863857477478836303065040032317332135973673459690477656269410287407518266419054150325816017203854311680816632035416733370405989167856925666358830197959794815589407320564605871574747748901191901383440484809829778277914320276382320886440140151005054687443839519981748257894184769603789211647531848655424325419798809379177407762867010665783737054445666957488242382395226317090516398642957128288710373203280190284230633900229977776662569100047584623224518891289383543297115236554594063359799852645041211988003768967771499988686862412150081344766445800225753308520836435859799616803467099900167928962624234766149974092927416023671326522569876881656929492159840471282747701714474330219186270061695906184201531947615433495015572409646585054580260820706011278515940324834699286559751458139440771340547632919955282738408008492152271521849049975367685379974230529289779411634164457191359245574585341240686890525349760692904056576684499218739079608857817761054208844958468978532681321797849121197312389691900011201165294340554121302075776048688152445558347621852865963436416848831830118229560788496114319252177986977873952963512290207511994674394924917102212981521718448661283728159062374674904502338230067680674798428671560624606442288227110403621531498427836382434857903704171891133541872399365632711238605390107298048672348363732566447121946301114833893168345585674131080137549704489130627045015970044787085538687573168373005734255081736514843965208659993911797515607602226067866823879158774927117500033961234713817163071402600006283256055294899170364912940903277941857652180843501073320445893336410863016726465754952783991104223983104870293613295762253346061235920113068819359831652399194106154161484467772396142029679356691991447072883133437741866084597630856182835429348901661053111344770320446388677252274086698029683688010670242876798647170667705188284045996081592716951840070740911061685455385437941331014879941718906023059319381045696028942063307353006472344786445458454770586714898909283151684904152719145334436849648270528332934999603984550414908257035436106481489597386895181855449146579690301714307667064990979652579118273580948697024584824113965869151147193665032823595608178994813475892619080410362789647790556937432219714925732582760026061045921180903904385929074777737220787993159007565454030282259882591056241777921728545726825344240437253595966390090119889506027815175484295830562225546142272644352531573314352840006902141404479529230642513498085089879079377162130659793213677364105504051252394932523233578665318113557374991833489327503997846408954042072614226334103748845466274563849699976136447284385003588986693941211427483297838797872636639214935061227615394271482849283272477368100010585860992857090887041987127051945132238919486643122131905440546088297579164212039913865492302727880874308289556022581445573654755248209265695280776422732704793877062818014580603871428406466181953814738646978201747437942749957998278863440665474472690004295443036361023842567675592473623489341674952563712764554303683023846922347908600003456568484362141858511930860315774892727988185627341034501509201142045114889247652339547981992439871292307242367450827099707940664171401771475407995399846940591219339232011488586408918085275566390665644799016190391184273159661484504033779038856297644341000079870598067216374580216042995366722762661484217436712452139178399339037784220659137813716114448652798662686710277927756725631938378497573852925728037033877906892446265557476885932839026395995043062729074517155986755297130317857403620737415339969378515288544522713496794611660943698926423773454131731060296824698756713292279103072612810061224426070799214909545837061241327462805812989292557772827921589717527676133064090507514020349354982831574908049275484262213946542615958444670268051867906950815024863964092312139283162779283394870781506584828594617536475111786153927142061394692115974051719471239223016112759701603228310581296588353755699753705954237219326084082485671638919225195499203649299555114147660066962474648182431237602253850537525118492675868767205383222690836470303961419218946984428036327831995650689160299029786693190225713690687310377612607562477741622018053645791041161234721008647180300248016310400537424633870366525026070138444464772975407909180789808994801555569867902586444954627923680476265628114409597132652273438119006506714310151548031002997700967292587357346352971509141211727686112464030286598048554636209824936260287038835582351389132943116875499066463956543559255366337962801756880584517905733818000709628493558181154885285829202488219063120591466378253408706714056301296138351798918227113783446145383819511899617668398880325285060392315497886268634836909578185142993137330155083720798482439845236178048109674314681275933819105294337481854420884801813229350450591832453206121616902800639254573198722620730685816430500142421294955881302255365022301208638970501010348697899583977770720776265813382600506274374626991914738987088514622318216525663664376073670695905549570252074648373050922323582043770026692411560306215025221793850554285782606781126470617025866890416135691223653227193778927900124821745128953349703814243381880446886142345837953998174486484380412297199611880138436513053120725681349122212664390776511509973957086713246524856749730487987762097519987645193604185353839899768059576603404209183031752953652082290409605944794199331444528472229922325432822281276289785304553037077222782734411396615398667792546939577709047213902892980548226981011549812669418535975309141992069303065424653869133109659524617713389546775938307109551070305193045026465197686048994294368763544249362641874678141749272596805129123482988118568633347236264681911343506616913102094880729226471630413165442323697243074932965788478847083264993838996200805138594949936767196512009240496790739727438923457171942380458984628662629220036739089876700390171726230011895574865251788834823541630186546908093968230892646251244539972942407273130079711391109674851073564828432270472454438164526518317461417680388521686170419809257002495695346811001939088130683754332452554164242211558130241250561070013619220957534487696774054867507877958229627879028299555160462665467100314223833368424804831952730904715070230384543127954646896109539905133400268251413014583600145452184120356234662274235579956248295129513212355612194560763411845266398544906685831141427779283507844839836330459902763317201315261742480618878052642840296859518526370097912598423191433611832753030731266762548452716860770531835754703239463275377229331669592251427801354114691390420710993795191217430397190831540561968559623589378825895397588362045467825738332135630487414166079149618541773401960860339784942473065133570633260893919396641192083517210636969554130798871649659058567652647356793257691862619378891135568260727107646814665961947576122552275271554902719428738598317345457274912192078673402604054229000406722884622902952470118093982155834599347455444033324150330151856576984283137634875375191995224304761253428063845674562409697118192395532081561668280144466424940245726508199143917600855351206231428744951821225311186726277757570672137073823504628736849902588875614486860625282369000695533585338845379576176535011409172034278883443387365384086857557638407084934172357377972114983784642325397181671719443240357173861816671938388489510638126079245603114790303882955346124052486507005781436361594878720862965303094886087277324732911066327264637501146393354045147415666875768862709236359904358438793919312059172532239312182802376057490320182244380988422828313576550061709562361789860070798338624258054240581941590414418421348001321337928389717534984946610578039880576038595165583474765843231773513003385280482916454434706604706511231330085063865348967508446966951922706156150633317211745343668728496401446347268013468522352278530933278356297578985415751178056662835345717367073374832284535373237332268689356036262283880024479757964329263269190406792061641781098408155711984005858863707414711718279891421585693866642588156250125389472583819640664045434001660992013817870917475166431941584301863259063723221332156996369155984173207967705888276738863192106624871861490828076545161938238888514337459209134045783721775342720742502441373636351762791323174313959623003693673987275993627454802304971187474146204006555752647446692297703909069430477717519194774689814594655294167721224696885771575981954000590141720715557106854184554430409107557191347963150306549921778271846882287609655696132676716948097713016696745093271589897377755107543378092436822692160815664256241573746899300261846911044006258947789716030565909209014993535663422332758803601033810701564088986536970637582749200077721539797890968359726765417370378568807818755475268692111983723161085961634960302316226914039258350112126653242203958181521765562190581060261160695632975649833441587709451556678459785773507267469100411555333576202540932496719671158365789397367885924554950507263585523442467264204697125145838953826369642681597185284328932436337885292497474589113276567750801268309219556735750744189694542325572386479892885315696084901201287503428778058060400251284853418192643356733649514697785561237904172511682317311286902737335312873029749037627361406044323568338911668731754530582222391762545098491545230928391773362167179780162037977553737972803537949275591196590725087713993215999742237977286386725380613680969977036691837281065490001394307779868226209082886406062069457383827404808300823884098739687538409364882451052616046982223265480397885722719832406929786722635181173129059881697929138336288266432290322316135972654182934883292130414240312398852804271401656041295607528240814786206326951258904432212479771193528162206590556859464263285075537660615236740424619908766101089232879215085649409647451537787956998835603052952243998174287905237544412284988455562160276964564763957180501554440359362213998920698074209675233021926186313955905725898183747332542379453546212054496060708212199276425409434202014954724101404218469378147903156597427148511880368296151480713786382819027446286034308292631706741792881489246336169821478845593550181143359332078598322742998530693459687453946425855904617476741067311945085627745143695743372676523192019656452850012455210373553212025421572143148885669388885829975009568680275705344052557100740296173884219621183073416590318946839894749889055338412137087938520503834134727295924645307879160714713588406156420563513915040467417006077068226317683452938725582168506216864993486071932672210586760327140283423892686014927541107570047943830311303001078687404159011226866054936151911574320376138441871527837847005430059640346750298908700410311048455488770156607457801855714893105564627288768782203349181368679335111045557065169284438543323607148865462149616230110071653738042565181748668610077318907821187121644695190286671277545382513863964689581153958521912785805596519234537092406126590070344645863169664704564992420841238319727733867684724456134137886703879384257745620798640664557226965372779932595061504643844218049255040045675667710482889751371061898560091331388698107518622801023280246256844629489176535427190259278387533104473520772328213728261281932198364004670665457375393181179245311159393638442460405626172323642836478089485296392198101817666672713316523310408238576878198575360558322184421683522717392294940843693848083988867200348235141257590649709210874744727555987162176548057662167804668412867883449582985407956346215107238847656828189732642287449688397127924041148823737991349210270860439056479791064007778816357482389993328793565898642201376437787036569966334931034641412439247885289751400182653318433213554052166277190781170107318892903161643046355660431329686808505648827405697735515270991327746303062356549559773407418933302071685222249875936458144275464294210087336262515203515694406354041242521368399612934636786837010018262597287113932959279011173234579745547867102613320498760439133345150963918376644067516292190843424893507678244750385825935465317709009230639720030683263994459483472862141986938852722703431455454177157281845402796601713267060809564532022304492085226940467427122836218371013929848258257040083765116988711422127248638788449506886362588073900702150911169577157653823006024468449233110554406384617808973926888818970386693366213432328995792469645449692459413306974460566168715369899847788518645298265509800452363766538736933972239765452143229830562821688014152777964623257181028291805163683902496600303489407243949611987629100610272973427240323239387952716044939151049146069860984754589883156307998937763074333656254917790235557255166286301370673914255784748921899675398307922839788187725945916288797671179538203203571689576971117102006433724572637830668062933133345900933855318395276450761365086045635588438804695213678033329492469384518503185374253570573039867070256617252203764642632517133307068754922554390628157076319587357922154197382638518800116553635171041667980534670165557410285042549560813402623662987035040204613496275425225683868843272739870613734672546785150985496763642867193217640781086907928159779193539084610576797489334914230989773361326810026966494237980872099679491097332949721265913779708948873499603337855113377774082526810827924854817461010358891740519939559439546110623859398198818289438506033354289305454015709535110448247175873860183811973805811409132680134171457242137558098854741658667569056182840532741568344471875997377539115615303455516488204418113535990182077461001688133029003539142273440934782231868436448961113419607588523781833801101710027178993094250157475445611351152178801164704980233165732296526069824228399926189518488888584873881907493901930787579359433741981534431133110785735411918324972862601821186133695225985355064998938559911708583106743168305053807304267843838704681090590637290358889377042604452596328258406884425832046866927175806773062919135129352554244282573586267044730345695974175692643555317423134760196413030808718524897429042019963278523569706605999465464067008730926867663386094459440581925904124058921516173259496510196880991645335599717872570900976345903041237451665246516598653837190093598548988908483291372489780243863863838179463587486898584936310895166429327939780956378889929376501377953080623965105461017284940831517712303097331158714235279993670268230919854694992013026976669689855338006503314580007104169744788427886671706519648525918295347031680163296233420436220928661106260903983185246398120431679161944665270146119598616832328696190960576445611960907166887312338721418025163922409420612195013716116713118394269115682187723033628535591023215393609819954317596281107606999729757468517272490973523917430750035432260172097377516660483181969272192900707750290255998428474898341296038726096876117517672283951904537725730694192610481957599034050930473466874164897175576843440638688686173434626506532153969844386759089295441393440957139739871014228195309807552876974932308722348314918215412078144053173213902536337649617201727763035109956272332339375423004574926745695414223905132353789700705269843451193866752846230979800926983766347981688685326075315761455409986650159127910593755225735283352195381225510537385999969506640828569404615634655170234905460879864514731949627827352105249364372827336291820195301744273168637797813438329919792352215575347069065228497877819283913141057948857165677250597967481613013837345764617258476121796466631325806891709080976371904371458283881999578320888132810113003992902543543301405970114713463279411977451583309321307899572419181521979502539952199131172752538546352331141558292175740759638663886786095924625319827456528547237792079865322833120628147719609543840064260128486688305558141130741825153628940975702294532768451689633867825233165391954441515407415436935919630216811046807289200062692800975022194516461120983246795644309741638266431835847473547688037712738822312361661996716379992216735740186106580952377010122166782756929016611478797677847639928068095420973369987917513934687535277234285381873355556473179847378011535942058115329420888249970712021918195594890312381184576633761761651070898714085033173118606972663992483726853113706887227515513187518956662194263938305923374164232890122176268886507730615519027938010390493282757614068861189621932349322306196662029048387690600208066762475700023840606425593478311637539187404780960265409022082201379570933440914232628771956580120702092361187526441937995288726635793556440389712007082041152910187643984334474549460524796213730940155150558764821165636104334663253367831036563424456692091208690785233913298878006173576450596524812931435572672323569435133499124368153294305573616724139125652482553186543690945006273125336666538359269547618377886873066163714486116374430498604114379227969325236794027550071620766709243252371866039528711257386481401828082221055223875326371104036536467098525655040825867331829290538656111938242522924327392884294126626913417852499487135692035739833542739312670638299104933515604560687572258693217966541529700572823425108165479300998062469770612805145909223620315659334152179368377762001234421147760086733112651263231921823017922737473819040026981896468408917933688145453887661243035633451641187232699791516595033600679034730518429166196424714956602199791317330184633056231496015838160957998507701674890739777602995004184778347043600212057898701189874332292227727549655591223651461077833695510459949421860441591338337860444223946484823353892989702623141693381012273066661957014169518675859593189512498209127395301504910197953251690673119701897557867923367277373537810311697036936051361126416824439908053393237808760006522412885903920450581064108321154542412104067452080964238416341561839020781326863795075587640346720035052361990328259077216855789058615596082037356179156789704179185355157829579355485942990122167087802423219951513673545226840465981601944650538267788855405707234886706265997262356873880046118997037426536665023182060068047889030249470405878778618443244262735179144635565386972689867028488453382703314145202562750660264424429974239591432229912593741163154381133893109948089658229660091345559418081842797583366248992410984742066986694360900842366379031261381007445364782222418977853133803849966854625282416139446499160622466205768177544287452923357524375155609260640139323046737051825894851681138668098470652732830310117003163586175918983279840245632274401388813566928809356121442481126939573154081402416273195398062345053111997610718631368512506949523068030748509962123687531280389761975054179144050929364458130775343362878125967094882745728681786632841055938716410814723739458909556825124904326219952631764337607341906994441467023628223171788568253532793463722474275689112092241113668440106262466426035068773926168821130897986161524098107712734654025205917017238589421766037130197258337038373673575988267703870922676798320874797723859002908928354457779771178717479689594783398677277054096210964982303819730601100953837390060957042731763891976778548047057635020512763160979195397331147546592392652520198822935299526642721734424282012375870798434472910279181457663936739547502054972943780399788272243427816862789454297142587599350165922246384168843865830934493526100591751583051317422120196482155010230928753520483430183026414203266391296615785491656282549388475690559283543234451948063508426347178119847955197851805908980406107792512713179362884290263973621696809584893966534231546777859643302169889164912392214878894239976362418737177985608477230823726425479892515230900762135897335769997912450352880706904317644069667912853924434344195361860802479944285013929714344828071719317685643606820835753288341506841007767286892842431917996036653160197967078595502070631386338656666566762382658382337420567646385299143224433019368238907316687300755157440465721034802159079858890784302538861563323771705880093822505198114930835991175768649387289920274156735671424452220439538358761827635380620575131590941442414472134178495680024438984415905093533804737178142295826192737792260781578384298937377388238814793164242820766522772091266567206902956223999051462941763252961900675491225592501583233466926576178628316575837079606472584527043595544409320547738037128910673398098383370339148247156229064260154617522787647374363627987757766648473867897306926827554418472954996375538695658339686250266429178856012723734131964124064727103503128651176180289908903602178241486850783339853624769846504294224149660884123048871551944809334952690627774211663021269415962084177717538612696185710952541821261463018344984625572642009788691818685110628955937706044029330953522881488656260699908173367834075567125584164434186262931903084298153321190122422644484985138601218380047959683272722057152896502446396072901575018339824759442335951703905358465390161686818954606779842311299573279778829086681879663452394567872797837962586963524324698518821292244315162590833157119762672626606801350840939295251550379999125069465706768081600555417064051109636622697838445151987598737352019677380844545483348316705469857403642254799052170257010912073404344727050200874659216736266273230553460953588179788859929411753297229959694180912010137186040837380780967323694362292908175693443902313106187380989404587018038046191033323969498367236036155515478703050559523630236242613823406146494251568507632285684597138520144362930234820301688836980249581282788203320379435099100523513292775247310570182252436363224359220819660819430975649766124445478720518329513147939302987108720662861145765301314089412355768874588874514254850286766983039353587929400587824379569997559419034245997775982179100044386941990212840238571535846901384428816780243315711727290039887829452740204212197927708484118027853336206059266645523450368157433609083767495871096096691401370953708977985046719836512756888681824176315992594883086657735908180293162375166179907129376682335046229000346097302870997694792625682951639279669563809073163414867616393029380984300725990822180511322573159908000182211247711000353847530959591595063335356512328846727502922018039576754095837645695776040807331979169463961571390683492403140427559612391999772173814830987120523497568402172099167879002800456719146334061981328358679646368480737410158950510723050405469689694251012496125953349832298399540446292568649620287902442862880720352383544842967881192088174863983970871934889143989461346874174995416456130902391501855959611201459831526734900416744107794584018231571557116466159762055160183890038424639691043533232731668595805973925364255273126016207090579630734260531378647433782074852446282812342649438615040450101886737563863890685865682357480765301852668569069030479331675255395410903576717671060024730470280492316773516000723431208068322733975916752137822881215855394088107454179685642557027334406614131359092385437610203427067155440642188691846721303176693678953220770967996048684536980226229869298173936084269203246653670057220511402158404714994037189721122173381077042437511752495214566771158327229764804882663400007703523217436298944308320982423675468298980900178575825200372501282448414819834061809702993696315683830790535210581414095090030839863793055798868855312143853840326350762213178047255466767167742965442312326539697164541014640517596313638484563765579276679773635073038755325155406501539275510075221242513693574503174241243129691112505928024607728266359439244371008672231268959554644962635482355483895521329333063336661002092696142696230986803292072527447784012555176387357862743072889007442198147782383864210865510874039113195819178115647604096433098840131764034755511342523747903135423342229910001487589343643674418388639949772512570168615859747754905573474386675570866375481572632083386317008081766450043947475702205050684255819881917586974015997412911940456151019036816323557067456489162291881386023522260028998273514059543478755295638408903027521710689087393485540099472968753856771030594509482163814110926923824478282485579406884660610952237256437445935363346537548743798770593152042034695641824785745702050230116606638662860408812246409044642512969613369801815301504332713318650127179921073950917914947372829010086214758281995141303073454138589787687622826807285278473321276259293257411304121637218939818391469359301084366537460289446692907339107073611669765143466884608407609737327305635183696397700394407576208069935312146685743128895936712649543556345960502986996820088259158655441309767947659001251370935686570515696059277377152202522593844743432152477518326609336745750542932268348943113570560841655362276633567508343007161686537736426892742067297606893209382690514364787881900917677525098894892728968573368164850373700489793673569703546012546203810433012067934544296822965590293094087220666241718006566642657107535474431128592049556953831881733925742212137830048637321692927650875836277392018144091600217089561412832651105618822150093933588411388905985723305710655473214087729061742645710497693032823397421170993890268633571938066249360459459654889979768412522520409720702276961077353132902803167373256875790954002218167404875142543507824067702693992852360511841511234570343371268367090382203630723691731415310525825810151666980692736724397515454712266452046814848525851635053528718291846968953897049473997283821798140159897195238774620280295100231839877455968032581890107244203628254238462290662035242834800526703262145668826241434065212508959529851281931282062658466575990436346258448550331369715619707488042710065910564427723952854300586309995843260359194219483062962961484616399695638786875796014343243125760710274991976409971648668181175873129715771322160120159697053421962700083436277798125198712665077658498458090835221643621393264953337638906795573058622882938384818047133380729263280682959005168611159370522318643266138528370901156606275709711730510384316184189260070291823913729824509812811294815284332112381610216453988312472735261334301464288991860590692319260317783618082514274256443106303345767001318474407899617924551303109388200310729221244355036966790029198399082573632371311168115918034978930311020350872016890253774032893025119755396185213297377148242669578583020756684734473195939787523527586756867597792820091008531388662475141375356254472411632804154898155163985435965692294471145640900350393352684882141941181676099820624901530996683689455630481036048204142250967595001727295280056813650726594933049300162636968238135132272399653803397511498415941393375228774261903889888411888561148237300962003536650907777765257267000551990674064498279045679686505647904113795004814739249143489140894933388033016808875219056321886993270414271641597666490810090435782372740095945014282659724637142800164835051093109069391496291028939816059420386197461041491539410117701496652226951614863823071570718878218423765694218956556391874704075920993026038060281090821343830358522812226856279440233010621601503426094200134523072084691970460154707922146066562817596136751952216159936940011261037916030064536044959424091251920036941662298316426536890193674704804811304866617628825941856869101028597552568005824400353424403955075487840646792354623177034567342313588717189642508862224911416238541202469160183596256657963841518121549881139360923981090589770553125418866585579077588099659443698294860945012990175525521409194838758815496201022453539723374957033452455376269091382386245144667414469524477877192495186093230250135831880335861250774523057653001309828413075875667021956752232635853897765994817991659275006464753775293081119105900922916566773310548082667913784810511516679058746034258792395125758470126309056435275004875795723733826894548733321109178512871229901167245649714075746310942110117621815157700042643679737215798077932983570446990427293914313702913698905789862471077432266089782922675097713729601985885140608044713658387316603654655243778755193392129227182322484535958288548063752595302321565794124738158170441368523673754408966248064455470648568954487654236566290109958792155290400385043108020926071679385385847837988586691235478673458941969020973330457018706676016365820227793071604941554422267998930367467833168864135197868652995184970518696495834163154396628356285198063583048123388558821333539929161874769024127874416388443047831560052992385903070147577992915978683218937707378940987632318926800785167003170419598840374402788646774777420089937066581539090932334701036430689336374232408749596395346539738773480815977124174006812452298082053571711076493256091202142175865284003683590947856095057425619020306153714448197388041114103963198421954200419213372598024409900088351698899275595908259139844627322261580502601720957009911440647646498338821351679106000450345265905753173846334850166810837282835018837107614050144433524636363718445989126759489441418669126217244432809491640550311948914875624575340866762539021951880850861085220338279546641895642013128053106612082357708162681656268746430538777198401428234362105716934093571686841537302170003501982059041931895399555703753633910195753988129912309068980086986907352065097074968761615375982014110779123912709161331731569927618415887211989661916027643336640166823544460764535517561807694814934352420070474218776186969903772802367731177370198662164445702597184419601414026872668079690782188713465340589651823007081639021908416169175789098852920559987423594614164285757593559481030220503800379884037306135327530931716508516777499829500925582985531428703385480248502924940640028082032293910758939542753534661296730956611142501530629870763725701867369149890960993012556996031122254817782405017196921156835791068795081072437153847727588829869755704811475153119050554899574218355134659762882838235744075834068030828833812335239448117597252455300597141519386044923596479919167472222783088261622371515509478808575908369939660055822308890483946877604015124699609730186756853594899352537834168639136089857837649486393266040409739285179116885981783395731440950819366771039426758519665553757835347072407552435763097626607479054702430353163233839997044961769262852944247843235880531438930680660166894338171601734776629621285399190306465647150135461858562270287657706700017544986037686819092256529029122868228408032125054806186781880544447958982323545185446714135679558483419913818096567796391648020179246409452446246564806426783277804493650423645607919867840684501659625462771296169510456683768805006327174305171217722007111458997316509896011616386809901516286316412815192344184584683941532158006092928726409731560057814257755960625177974581198437973084025183052508517205724070924880094704188013612707330854228297100598551131924069301011409926569731607491533830523315748718052703082872456449801106629788716953225285753142253984773315001707785586390826383040574096958344712617869821146959034276904788270107203744146460207033923396288525534071613229155215996288526747011930080996496783687746982896702624991456365775682327860045215386939672008255709657519470675936911544147974393031274638608765485020817301129111451039228332894328621366913148082954591490497833856085312361877986054516225681316787221828514495634131095626268972529178394582408441071687046302069039956978152102719747905745930420263390593180862907774712656969098146088663692401124593092372339009678501372508514727436973417710459407083821849765117117619042812245397324083505618510543719747706663153022032690405122258347965041041069180279974709458879170544872114943076758324628944550930908924251963436731913207743106653941673575783310347277459312496518492950774586531931413844892790225483932125177727202621246912749640520150701462898691129636273448789981784924455568191722506377646714249610669591499461010923408457567135643577434448342137698634528437621269316621005814415636900266435803046498075486858929515213883937421796073857531947320921413636216889959795555829160325759420494997474235415526825154749342478640821515357762815206422740867027768565381126352911824192960126269792911764298766970301949214138071185448581792487930673111474790611036063189922099918914196201407819461635455730029573413175613160388161232475637453594736558546461328277374976776783644114549679255949919764672845936588508973560006879862205038445871568210023581124097738394967060298908508599677642353432944296350392991796536370325079342555914005864100352449942060381787137670347758432346173833716433367151307825890764894382018983439794924371492884454509238985830647300124245496599175009618274423916320611582005753729516613707405827452654901344363910731379160555451104715563336550433673272400059674902571524963532724709362814647013836484626349137548484945694810464520157362174418987717013013410000513559438682607265131877028763183952175179814023762359153871613891219633989537467598576581109346395645062408604745194652863873677886942626732251968027403300094246833143069041650953173452261820479119092885973266813611377924990648338055846689613881832603051979485993978216245470326862508069880642021765237309179001835658203868163590325634215319252945787640637278578146117552872073203396889632410438950232684549248952099878576733919017668357953698214900217060533414970174881885467826728114829558687271628064995592646753383418969230079642315563212043554636278930166851104410805632466791310494163286027694718128162819472092779812285681234219108490708397272467948364225206168592987465828260925643924770610242394036868044727417228943249119696958434112870461009889869784092634666817369056052006425455304769687905692993956356720214618806846705888387083836903918721069887971905399057792030864255104802675073572594297976409952248878044443988165443916876720193972499652228677216599091984160997586575208659006767954934688844852843774533290127232583643376659447219544560188153912738713203315458067575459745640956847514194146882593990893267004703344220946021831482402301545817317009342132020633850207855674390522470345108394012865218742174254058664817847387860384545239775382880536112638022279762277061164645664861144611354197583829478427141163630957034968063057815366553644645446771043618178405491689621364404437607176796956636523295378543280751699287065801550195117037078082424911361065694890054751917355857525882879599793120337364107310379443357171893551950364204821632531139594356773751449636148532386968007442434479531171095242579643856794272156707225366856526911465251257016730265903627466022708292308009877115296679784683106929582228522854357910921590021050679459741859101167688409577642592306329324464994337149133538884644618155343546128179208019666954038429850046537059284073171773120832658266135151298268766948160826146577788701659450164611032983234769989560073549829389146955231293776762608984961813268576171288200838977571638480514429712279160093020049932577231571751439419587654949298925679628511145233191834388556703530110508566834382639178819474307444129917358172656079197090152807420009561326559466341019894030240824256856274451666249183161901974524585202782070553741205191143006481394449710644672096740824086039900688594759081980241203826674922818820814989427041473893302273929397401587730361227756806726629450331774559915557289900451946632922348180366563836126676923456558118088572137993176177499191552880369524066835295174569725135651442477316109550753761517985367695350664411240363406857440768221259031778199768194146631476052735275046154386982418808016107203786069074191925906017155973047374445111149113578177338813118257834709747125450610228229419034802661343193627107900468282726496832443157579883434369901808681985421308950898779000757973154529539044432828211444897906093717990828994931035243657040211884813454041197824801964203650688862981958419662621354560354793576193535063653669440310850574889281795457196058173853500876373334345673683233387326342630899274648597454680179352687999569074122829886761600908612993478151464630252288839004571461717730651361752776999132080044904742936553744388252059908061614169909389108697438865153167157600311589095996186400205556464726615588850781610163253716258046079368371163864458631406398900437881094176275162847442242649996719850441216931004052576186032489421661464567794801039397217781592511246676791329032525048104877396827903261116408498231544686949081758662942607601214977661183761148465878970018751935583599403944203773781005201229585308988548257143445685255087212483359681408610345788855360559508747810252288434117832618760233106381994043468120305744331194005271214315085044109999483917710915838321445416389401236810244433176192601603403579658917756273321422043790390897749974474874782371713789452325716669426357264175293797703194255904389803988932717052281915659863239308300962330625921765574485893077119984174868924868509804859999866292850144609372653590842258877661090448366125753446715989468767432801614927583248252635209850527422598632295056652194592428935493063769390097658871981329236366487976075832806672482892974195014900778750229649061776365895933769182696381875621160239198577212412378625637888354177539589322965940870473086068788296860961244927942630064734397058629503540594287804584280675037637252439286807271048084196758594590177143675172103948284974025045886034948067294827321558681371510324999094977550435726331218003388440929799863517312871618746215091696436600276245998596750811439351370360649217875270125774464909578459109382493988876009374362367258591307701773157685365374784984720016447092096441293677128381889677359377692256589282262186019903475296287633461966280839350876168343382640706062150475527008404648916600216160342081462885126434000200406911580390296254308003717741015631202968912058536646634921907146832241780535688774753417636086757916249037775847193139127612197076092315310195299101411318705820275831460683582441744426147364787371747415913542290524010142352976401965021658353914374454423932524663062577986276262286283348520127526890287937200184120913115523114379797207160753988570357294958388051661589224391407059292893037482782391933200509296560228454638489728019425077385564170281611628676409602603911288403103580723120296709792739722450217719316602312467428853789399603645329483679657215429879089220497753492489336470380997504139033471948677628381877331664131532377165482424267533016114537844523877251448590151704049754989500441264886040543001726765005002443153768627361042000619997837234338470962953773344682215433485096099695004162725859866102832120307619638667325147564444455590744994094692113102241588997715373710524283619410219478990381751393840064815286990989032692625916180264184547130025885336210590174575336495658673309084332310881385499917249814827520659940043655385682818937928554502246408582174502108428958665566316611551746312345548072546250517813418482349690730686250597151655429696309340962935807364926913001102632816821161111638274008505551065068383688024611220143145670983979899789826533424489869508020537086913786009109634883227004762041759332700798488279475418126957787334908065157009383822414891462375077349389292166186590479457956606247125370404019679085780543484449625513367876295752325788101176531364570900163852632511342746678084704593481826549188800966500913221767594761354749046918814101364833113453603494319771065641954309190551858830302353510608606654975836033555248073823329888967569331954258582628081490498351141320272944164453770781730845154278160302967760106896839237130728654075801727402422776132921514661444994266530372460107556797867487357844231552095388962720121306883637520263206350145644514766292811253980243496183561834891157485497866912904735653311716870387339200845204628458732134659763087616776016338028877767469466854704338037000370612414051441335539340062067963051030503863952611999223535467664095745444273815339634582118065452418471976616034244430744416470775537074835812393834618909753410357989195027904989060804022884386326990238494243814381998093699305137663120071120629280319491724684348347492219027421586301792076368143976586106530226283933524537939543392507037179252656890695779844609562851098770644661342960875379681199682591762946363534611266355714958964638186908733981419339725050874564790092396579572350735164623055407177504141254742591391179040549431010033076000847707994264262327035928660769427965868027734121203483642991891329033505256464032630907846651282735675115999569156515137965808236222923977952657801301170483348307305925530619114512498304341289797773559697335277346613234903995581066917386055636442589021810650867747235156563811848972020788940456672904809882986169150344816412256324328816961068406754083608403032518144928962789096156917920300021134718107183429947432083363098248934694872233839612742256116162206384620681896591297867946641325699435352813841542474405736128026169423825711627947422777499756008728754321242637159580435044545898782857609009482864175838637498157665890160301685191744596761883161837065895259074722223739863041946587712457371132141320756206815004000815083256951087947739845466175820160018011386121097521178611659623652299520790702853150483165440255728880891072663734232195195994676829093288309162506060791359915081775648045382040435852444663897718854733957475625756114587714878802692585552070425787084985078936117400132377939821566114786636743267331882392399611127536362028243886755063190691436897017931273013723209915906612825126306702305492255933350893242095410847713298927969984918002102386778288733559876124128083844482379386614104041221585217371203477738483096088682624499434924611620168090257361328823900254128122596125618652262287324168716193254387885642278709093652081613937897100670359173067015835235219263000169798658632911210642837754949063185075888016672067118975585477287688541654457346352534302035388154692490080681779624039567563710450465965463396523913475110680257793556422335559153658183769457004056356571456552949166684418343692463158653147787879303754054780650785523678478124876744031815032471305037869030012694234417617804902788686349709449746360969733374234338289468615607702230009486503044244644023333911266146244579479510424735928324517876467273372185867699101779057884712032159971845962222457994748176514154395249291348588945559942532619250377361797941560244271439552639708387313701158042433397953816276470078448360648207347333111663703469544578632477390395898665428650909546763569746429042138692279603428842393120198444861320005055002046709412874653498975161618950336646303745360761138622284835790258766209236268250364639867228988812695515483328113742635978431927215068168257480470294798229802920427130118938319259306372729211496982315542631449567672204147808798501389392061544646374279634980426362980433222079344903833649296023523512430323609185511334042505836102614668121372148678384876063982823596470222151221478631112302068729749560186957287159116411986126125502607320836936845659755838326604239891420544771084079264259467354699647088288303250303152157456074703547190335386008122993421259463457541586807263439701275928408329772204292904473538637677665178106159819985680918211280858654247625778017416603466086350253267878394495577952326374420002384370443107908482003645921887988431395034366230799134934976475957479266027127597833681121363604493166932569371510509143428825181208192789025316471962927721745354157174118321373520772113769729541623571736809979882426920508583518847440720620874185855877957403102693406633712009601820583859315348602600762399042829174558878583539737928666261911043571458758639880645323626433856499040987072421669071862634396064006095883005740471791544950605600363134801527436092794294192254989112770451768701627837078037021921134153945631968581973107173819497306483844613090223597176017290900324937157082821325070756268451376960502249980140099898940683869076118657962137403455299310908295873997267969357388230332228677597571874018164476274966526027126842145697538571424661430400278092101555587488777281203124749023272889726955226480193589381967286194251070367538111806572615562532841070443212751280812889873370277618880706757435156209758143796914809068183199016940555652074341404824652296310573549772732099361305365362218033251632445730040533919616204406627240694232998128003014231171850354715915858311818909604305746779110607049223649314576255126039213016924537871769686162260859019561121860594807346605963710191747988822373741310551019783116747848179120349724224461699667117205118227756879129186055298889208468659600946072673676518551967148705173925196754619701315692560408429109893174918754549590637995763068748175430907230812485342869833060429676346189324170764789899405705182514701467634780269383254105310983416682486152694645403190392974818995579438410113255284810491796799288235868121158636166246337301158084678580022586374258177929105386346758221136600498348786540820531656293366346790422756864321145191011629307416180144126396815707851607184643607007677976775288626495088744327744200382745971118454953515671330188388400455552834996233732329427977880421649585337948077872668740611204450508327489928650997472717784425838173997118722724050254591672967821500720606995062067660889806214520959037736277122148397709586709360788138962727347030648257681649722447079026271281097490707779960296183672772719909284852966522863900865675396807958927172263985899702612707216697952137685495853121126677211882860166283023973398225749045653144230045278356428883420462294765320031846419138223109808968303284901633824821412638693141579870877141984306801576801056775821295371371815801660583788583303488935045350874325097384501555185648618478854125168237455363201856129833897942561318722015625337013983486869574633081565685288032173740889769038605552467746168246780111251661723944741652589363189021387823460046530904613378331912552028416962901911897917343273644154952179924647680171138586024797413604424537158941099708382214406311843109164769433726147000344152095678073512596839282732513586427678106507601081923184401608500400086105879462882711821232364847925904607762225710538558695970540928984575012350131430229732643407070626935197239166737818786766868272885498393469932389044804106106004011918261171602948291823329977861350595894603997065732438211464746183781528049313873604482965237286072971663987924886806982090180626190823834086334811146712245230379523527539275811635363182626355040056072068391623389470703141412204208212534177621786277280900499653163962845036289190739133042559025992203414536567341988727571448913515759543048563217488140503865095135378250280138107706375812760969554592074195301768761308804832197375237543599928184599317545826153597049937627529366893614524298351599104876660757669096000222227960126924842953246908550748929035921747713919613989237496719981895345047822263363066499006488364543824033153762376245567161320449904890287040475551435630512738884491510601132700354715224305705357908944416582714672005736952485948532111504741465514190001001377303810648756503773741356897050700571540264362937057506495280287115384941503431332585919123239912769217118062704494261648955465672095870085530910850524518870977215328597952518774524199874666933748431732046894785987395144602997428463889062240139318416303230682457089295550809965888624809795421416468078540505585745215339167977106706190074038719339444721636208676958253749796871150294681601018328626974397098470732977964609952838783101550630750282514351362104841880169954437428198082258365827749919418382376366088393150380465771641518012654887605828977608630654848113823458824574461650787099164038775890726130094749410159275704036696124692254476820349258713004482621363390134843638849658167581926825737771458472681285307908118756020581557186679612199322683909661255734592709373833169915104189428537401780196485319798825658565590242226286629375551475494030895515426249511401646279934786703187183780577995638595477420310746212430678766023566678119882653884994639798995122664895478343018037645549970935224561805352645095946583981764789657074221539290036195158785854194670623970809623106347447494757108033763782112665755438333258797304270121306423315872754193296958048509492945839359005399955714731970415346936817358646172193426233291584015671888649410144582161307646148116575219373705265277431888544773353311941441602385549587302868761536612835586125679261126968034864715081101871834666879622098925814612398437261293234693044530139910825596142143982202315825183384912089902974807372676763857697157103352252935243080315328873972376365774838291500012550987482444478150613894685316961535909570973478191597116053655068923616120037513056281307538957249322865309567248150735397831203860711659655522714545827601608339202402732134631047619827385971269507821181235383380381677993755290947206684128560941641241339455438133779345666412490369591144161405614530650529466154369684381511653006753096677271784378271463863031309809913809444668635514459680507034708649615303349757811869897616856042814687481910352248022173403367979446031145011266740875760601452516662708287942124799682608468028245552965575174636559163741667629373336895658051004276829477257289818694184225751517209467924834829915470127734088932698941577496310363527297998608713809455189779786699936915973721764704049734261596862386747960841981153037342163274253350034387908775184862553379384356416858566075688417945188429908753892729501155016180925591149513151563247008430243045430332961059274239190956232858731058668555202886633554745852835280537297454941281349318248843448931908545853527884900904446780181856658249216664997832607106454443603686126951249597037531690146416448666526153580615783456300238252685499799060532303131132846337311993551351496104879661918396024297817490256386735688615847101528062364229906398839846686607761241106485009384702629582698401124762367602708570187577258511055088999992714188622115948535447748202454826054465763816619195685354350408222377750991590999798555611051669939707938870912470929482078409665537882747056904455870774997281542829503333640598572599046264301164016886419262008965531823255785870163464500082173387247773762526077917885511510104868757049221905900816273183093550895991582026702924746589752896331323607943463860326444201642120061443281141928590576621558231573200875785795802332383025486083219918332286414146544279758031362588911168839801696715334994778773060321632653364580039518814154935231624771289606221109635847206066847725254131657727161473607296923323336958511075677150422635474458950124255070175977469759289407835311458796106103115897553716357126636198148703285347551888215241854570656633502794536349748972843261322520339855250120977716506303605695729171018367258843799289730791237248208502079719616971089886865647862556799780241410536298271274116918069778107035248813019414324374482673594971095664481472074590420469428209025853459639549089378471487017376366804080174501934892565168028163978456929703218597766011224266612197221190421178957004056313354056888201933909242018735467437469393525045368277932729793156008034274171694556737778200500346377578363648239994942787317011083925021295704840438176978335220374531830938552409310586390934596535933119638123814832933300416262652725790289255994889156318881907234861066041321716939101120184625496054688581061292305992431731828194995494143498520861359893554841188247257821027560289320400604413266615332551430993473095975158048515702334853031315769759920029251512959516818985586046249855068003575165729075257366307184476947801044763519238829793984884516747482283174201775239896940464197905528046836366477999662899892196060515914345718387118129649118600120545851950868450262618702288526030707907118482953076069395858454769698121171976257031371215768061552849156533736733637069470589487186999795020386300207028305451980052950256059180975762694655314980758845031073474405223335936737980547002272247057091571773664167966332655185159112283208055802115625132030272039903715431203514870913142715658201857535381023030353289213180972931868430331087227635408445765524464410926368252020765005242355359832766052689615194278275122092881771877675583917681069051910195451863936969530878848853324249846926202731096430622744030564773488392858815643967780517698804399097655362332589596179547064818061423078091170545657970576366659087427435786956980046293190579381590648770231958877100060293606805086793568377358446152810471749047655014573313327530802092579758305229877095610504919043679194414258346855570318746619595922947665449359618339266581431934686733588579397822213608540793059168027718849585514491638615676261234543077301642628468407213420005717583371314488589995289598156848744159686142686584475766321027754480269856912574469374086720467773212370237663723955426409289789071160718033633437343035705207087998306471950516574379494556320933898522968573147699812694132765298399889719468597293047646366872458403795290143421037769176561040830051567160622922507227099562508340584336261066177376075186195050284129738458120243476245839353148385015145006276970236000257597653379591390629458410617822086170821708325927975389871573071642037678264388964156040685653683460373254861528987458184898930429025588524388022017235463494532336206605041978939048467027145233683313274807402060246517839285684222923014522806714128140913052848744764274866243325722400964545080723035295305265004681394614658671719864340811962271983434847834426303660849531190313739028141641272167892711963611635615192176794552037001950893566444345409068338360107768584902798817138267442607529734328488044097338454776724583613437488275011295307447950234580946045351047368443083080160813320776843567543143158212224200919921808828087611805710446818766620643174657786361447573461365467468451758301923069773497721377763322466136955965997182602132209299600036691454748242488103900602094074624320114480780296330061535139830203575765912263303586024773771971076025394038455522991194723265104326566138245377368137474560602668508525885773826872739653195521232511077496116380257055378788861607751172236939269226678963486755384836840904487996950895982302452574505939715093352954335152769622429597124334080729360603329709498951097837278394629630114720481232375244666769874037354184756877149741117698030149001964853841422272250775055407177664123927200135252174884489544945241964315182157383995264058578122280380552400247402107159287736443649799986707637251178711265730243935244949919946334654097777532898652381302246624089131878074918793879986511729121022368602764216100487756631519122836830685801767154512983146672974673675850283081278591640961263063768681343625854501873004371243856030418032855032362858380234500372949001620790298493989023241639447215044797679243044519910473317305893294840919169425034885416020904054109041183898594383841346120469161380010930238849407265634518971478660535949774344713096155319633910327405903370313017831418307312103124331717018899795984580137983969797097206626960385171637351764956145937119645957544617527748845710493608961763595052551967057485716163070917617536740036842755078510694546242713010850216041463956048194235431153505318362235985103441381333007559157041003761212848765421968227700770615896074687069907363344325947399580198019588743803157427478568500569238489262249697128865066685813865821058737160820389481804441042292723723783726974667504873134993611638060141403859454769788529930330919005536817403591305511112947515896351346522192185782132984553443533096006233993353227338476282692877306449165404727303915917295943858958957388428191500458542945772457485970084063573885848455990744513492161862519249399933393458516283235792555314769135777156302343028098794290742942743449013724697733507717117379900032617787060106757488379893543314451910709748257262248159122672675480740339162026536025667648449924853098038599935083326838764181562634087894771165328945566078385549062118328493275519525281578529922356409341151139387147684007584297294693971782297613888660546766108190769679735006210509193908022828753663496578702952497136283192948904479888847133944360689270515622782399996570049499668448651083521016551993956022111154259257716111796877134980166619420027358796136783965569844503969746827508884723908469877209321805113139106249639333372863317977212975681617799978031471035071413465538825289670573805770186236812533277040377203671663709482593892152891531647134840380859067587438489209967326684645128983718460407153226356939204316315430169919333765103368635670355232627150386419854143169547474120540424174134620338653506223623584173755588446612975929798821172887106731449337004204798366653679208014134359937561566406071244657154470642261883017414976562633135406514394836617046658770033637721882857030615584285910164868517337115828209439048106987385211103883615830797402055994299579962034125274262873421412212801276799334300145939892690414836661467866217561831894231988156948902509629868053694306032557994379447705137261437088359151889450636367199386695454742697643340101189963165587842549433949708806157566918182828457344928290629024818591655752405620822038496054429711022227998952448043407788135144355616599423525427805859838610752626303763958844315205572920612925260360980714224997111672086354185478920977145324946603092418687571188004207691025567149115586053477774570704727240723083788138936076094959944979865714292571408873449027370745612432876675282155212008563458251934445980380455561347639204443161036856898068055587045344313740617224272377973206453832146778420294033901547920610730712583818144050438168728633999973654428622548784032609321496538579156643515407138904527501211282705565300204063765444687169749322511228124264011100624895499092983725708130751183689477759316143139120083464283950502146556854185938444862957383050657972079067357482307188050632343781479303431902508825082445408325494518735904492659349020941932345763728060521657634218628802514951137032457951828964180404645004298281352951315715182896954918547623867245775583883224828560092883972797973395570557886377155276025725734478818877740778808739131667591084059721214675663509063768479662314746013804385477448115500160549268131118501036976018717804770632113031946555843958786480083638219683586460339287624365108608927279416271340491647752277019018280998640755693767695151035690971218497711192146089245644846672104765648193467468469634571661470145733861698683145369692812892359765975336426952136591356292643474572581911262342328427497963436964867722383437432922513277668003851792975139201665064288366236903239884380530968238680163968963070962390981079498799534756220342251104998718149413684497618386151616797514414318300790115929598337093644852940122464908088622667337161765266287346966508184945535768833034721877906313208542161759028072348337820973453867435757492179312837384032714887338136460406975873023768106226638023010042515263022598494825384536278660295692981972261850427405647721862367170911774488714153342492025881457020468853859681618249351080004556734824357199557305998291868073901818850779280026996564154673770434771297615433898276200954124305152851190594306475502915563779551472769941430845144476391798510233258474607084657383469608796635923792148638186999822074023509441637325711393587002897640946691206623154218702972593742768152039450872848394120504463659258454179846095421759361973796715297423477104421405289801507359286328093433439850914461710298392982256540148553790762416194601687745681443558190015406931752825827719226846456328808815523130254278373236239259746702624735825781078711777232345702227798407832228335823296253052116027810446073776818711642677783864457589943533882558824456913760475428942703467447727402056230731789454445722869291545687943424104684898426474325719537313715795902036359443612878805792515518033691430831083712201977286708667299397487169418851504279003115333034726294441553709242411552952123234716347046802035421213803163559340841481148679464587504566016207259289088392503098271811992028160805319065719450149528053169200754594717686995708403334104486870838867379766000734351160828425407301034194245333025575948702053340169774419424872311641763428241853228120360402333149633042246570890935215222557581975887180003035515531806988623531704664245701555166487918534782726455864454292714050505739130792766372520345342241183321315048572535807287647867277973505910100431939118215186308782703075472597613638710593696360666660137487254133561467173823599408564276919802757311203448934738520550500576679581553804240998298897373373315252200865100115836268047078383807564702465930562909080032014635606746052324650243702752338999361203012086725217293911987849490544485637769455351219428686489838956897741904992556395254393176276109238931650257396383444162279432106443871179602797585516143937201044868541424767918523809966413117330894964462167529856482743119856449762240169395681897489988424384262733822278535990214256828555595094621972351387878992859724094354088620241079140718344846934523385153306863956642451603498885803316924963093902848796410091775920853300918515392925373760945960743855918773077278679470239838213152373751273292273172896984484603199524456637573968090372994642201597448245103767545586066227808193891842402577578037508799608342521083190325139926517437201105853560827302668099358310821086852342317470688680136221739114263670097369012712525203245081001818428463561100778182771183274136180760183567878547409392775996686735407621848608326741041656020052265454045285651496397839283895196953007970979841501137889009295833430747362228161604993890447497634144754309804147327301463547022613395717468781009331797805120166552031181474777049403013694704405636973782876359590161739776342405410974900323569865623736303625037947474001818436957489755350897496946672993930452007398765292996903022971941639065786201297426288973763387466471116257760452937722507384440814065085714558005125127731997899999932502634930750560946894537588644440347047455738957785898934374423808150768547319559280509624066482397915588010281879182415752805052012240997720807474275370563787472812601342748564751746350206802727660699225635243653655268320057182790362671800088882395879362405605919753359358227236291645753680129529176438076913512999765594554124610153441051244424433131064625246665907725610665508993307159817354840143408125337961738681861138715275888052820353766153300746540287375457348190583461139182897023281890421632516884903474571396181762205962523850481944536104968101252140662596751021187767434153394135820059299337290598984594555061610224871355239328821459292183067595627908668933565773086450177828037552946515575929931977902558165042048702418424084294657469203711794957842738056258824016598640386265732705895951319468684528860032737206973835269774979250147440322047746863482671607869711051136277624179923642916064632426834661827235435206851225137904465351365564559390215831600688269874210413413764189581794422845816503116894164067076850354222053475070615078572799628369120732225046837632275348157484461739751723170948507654507295429750494124117408218233983152381928695313211970637449914481882674697668864066139376045672021757633106130997686403333788527464770501035779025415926011103933494322942038813197673505196870878133923084480735916913660864123551876143975246988898547510653028942564974204930681329615765483201732288227566118044313717838345078614248247436462039565071082041951705176059402348014943735903984667767993812243434618576339479310888057483952519133212421286046723459641201955804583775366473648891085903934339659872423306637716393002701757349626345030522604244414902761301910693917699698965577778105681147489600640680230406245133223973698528344583312434198053262635286226869990567625970566643873655431731655999108456150498542202712768127779887429659999843752205950337095654604143063854559286210363096068369809223711146749649969039201935205802875557340438642118625224317765158098269947664563278755637626277685246063373412223901132309063457859503191608829465686566976962243563704437467652709445551603344334585414842141269706322674185683849614307481549354236044342646729724639051190784976888317103360926795387217262650451313622682475346419418124262943007827512823160829692710344427188144980702350059209905082004420564393673765894000979101636547205468707803378552507346841985271254083014500893025903995436909214829776206563682201682772860519850965042476353563539018806874727845644646261729246031009697250744678007325840342329551529910859056852217753783315165370414175099085919272590166283989621209181266489456123518419943957756971804153305359254358832917869444289587755603423269535749732843358191891921656465899284093608248561053789230245016326515976884086042488400923498578095467938020210321516993714806466924428040547077285430821667709964178659108997057039244131803678101455019724715016470659022548787837814815272023533148065506650649979721924326871850035161501859321475474547120976957918680784909675851655132401750172685418785396881364135982714566943540162480186270976609298819143377686612183014796348340035989906866864746623851585513490267957290759548496023122858519225450580992504309626347082279841166722010549663567840792177413436856357801948846987659271947728702802916414121939635757981752425486461268508113666149506313534304773034395573178798187852283971679626630343783621160981871966534505076735690002063004141173460509105383955927262921584766045931704622575157325524232359039326396791178585047729485833273591923788839266001666139181602158682012421547592516315406861623787095143740717776602975258692235306525145453568948910812674065396544254839585631831155958887126980707002588352965659570200795571285860218133845714658986583917577912015184401633472912215345599057578743102986578746240080650301946403347391633225532340980224582777642507214213840807771617188420646364365095572375916145506705931962119847917863227434123365437640171417387718431140718739342003597125522212550336381891649820410473539859293153010515582147342307722992595805767581858834195310865866245280705068961912384558471258714825375807198912265277038821975886336163775120002821743123129267082181388642686200613117763893197944422655165714507449439979232346841109172139820522567379743535101140151253470912768008783968610815706681674541262948900127691545248615264288097947857274181492561046338347227780207410206878051202643764699031039911240651648775163784027426060166766879928797956596010461241172957911027475774039622187218204464158713546330956180871973229922327231922167925820383091741142935270748093603903332708945610145272080553344884501785981741371979381748254549680602608310397780400214015955685417269045230171983219034602030698342273674302681079556388584892298425187547083172298639345928385911067374712595631201550772349645968628758956600754014368149717421967233111520034920439254734407124997087265594814975214634867272979581396597383681345287095486489127170713731021092968184601216461353773334834105995729295537525071278622378951143973739725665407022090663844825387882853369445960328030880172980437490824559137055320046922833153288190901205187435371331567146465737124925445288516007411960540018525356594743870415451920455581047357316747292008086543930711870802807834243674718954025415500610950548126674185406582099426424337276554884385467271909802619696420839380384131368553560346410935257273249296990783555831461645490155712859364012526956044912034501515746120574101286746679796518220240204283293689193497332628225531215262339644933928109932875059090004266374557948320259772530285646485270002666033000183851770286261720010665656825453499886590132904053445248239065020852054519359283697068930654640309923303892851497455163858185513267140149225447214413090239109523676735137273944225452410912970963535374259722933315890372099860014605308927295535414454642775035307538953566483790105803514291468407507939050866243516340508927878835767710251163130320891568233585529860459289285564697985117520792888623406137755052198550977944819410784162775165893263756803628811202440770557522376839218933756706060677916674305103342731534910445232034218270426374091159618386680366038076470751554768970467973972795389727656723235643257765660853810353982158923493578418608502417250160198171253455583402472176047239928618353683641483367509526347872191279399682453074436558939626700955587211916176909830643866845513675280039084677371553796428841885122980633284221353943696730118320180471942687304538243137215994388461999877180012268414380381155631511570670863657059721723258025695727750488366024198439384545291948404740489620252523138684458079158096917048426436825736611893747016762269508555013362662507465277188271300029250137392608297929719474792308609436340928892200032426067875029396229535172371990316562603383526415883732403048103317682972353699090168053544141449126673206309076056143279580929002003061116172901213569125919002701795946456601618360461756199706761776074992409712065722156324417004611024845933977769408835299152289095513069223549501024035704511516960254404637452583057317076139735316116677596743614287221044666535259963893035357136406563082078659942269777702407951366822783633521852337980232261699067539527306964155597744879464196970485442929022282688174512882072627969835602902405619063097096077345085977858433334524921811156989393279380373870003657937333252611334993294699952014155543569038543420293521650225558142504938736442098479036561333398394582952659150038706439480799080457196033071866605431127894496084939487014231833117836539111786390723981994053661046506285954570570851994903279710386548264866276077498252039789328686064585748228095975307445484637785701375525037954884888737000070432960844391648840565825392212059829466839729407087861449915120708060381061558847987750625273097977326281899156420617830282266027315026775527977085362702545177029165633266244143074989218557431496846866973358377087199910965926074291562527729531177229226880338038424559642116699101296018179131838214473870645256628128122592997026937451505592187610566391291362110825491502337728013131772787164280510385998196014604088069928755077821849672471479359515810540268754397892625617218205857985069491271327279458997967191814464933202601386194250485879086456181433165007999927074694904401378168310103311763110390762404195208881622782218169046864708807521076566127789353070497161678645496568768120251688911930430715161235458651988274513768551260476106349108437711489806123083651646355881495506515950482856219330384700646013147805476756672928299832479817820000891637446620446293383085828686075272132482459211854312372228186442002819357983037044658964477569029000668986484321091009344689248513990284786382437039598661370385426286049481749529458766417636622889840246442591666746772141927466571946208809865348111239165833420517625861848618441690148806307919875376653083789694436714953692950630952824154869394394323205977890736962599263966717944905830352003537844159685760065878722005333305495227293266601265541826085048510720174231605860948219258899492983709774964220765912499898763805728060378850456144637098058004824459689892950924932242645089212346347873853071869587482159295627009908068333757688232080427774624395503019854553485021228609715063308732258330350647858833560157517718644672730687618976630416702192657765492479592871005204518988318279733666128547354935146122641022558463620675927471964586436727170949104372763199703015645949349931288285188785486959686522338490186680248644966645845193659751054942209768068893108649069639533156430378696457691075908015813287952159653765245782254878956021265565092870793564129140640457862409784205275657258060000710007073003693242507683956395159892402360252162870627153789689747113717723444563287292482585565821620317205337979933946036125262720695513604074362255704991045603491076610029482332581032579437757733964365013396158606524457207468388616243846178500700994183925744326980885878568401858541611757320177859032147698377324028657419315008444621109096238763679777123478070251370003130084037793383284775498282710147594223740661698439335622950650173311646455857344282395755965981215577452755961170940849956472122027182380816983102533817440055593458184559828468429309725087910096899706986383469080996170497305905180671535117311344649305151297474443541233808360246811933880590826118150557941774614051219749603053824497960432534253524661947794499291435532701799177434507880518366216996286087589699393947434009284355849709140200537700871020852536281307841144566439514332082604612085869172947866642729305036421745433276514131370607904841343250660402001211176377489643666047405369473158952661766104783812127556419061924676676781869127675190663827502715463088469599180936360267798457812117537855362504417052762040148472281298494170429762261479392660217586477246674806170018314286577126674514181941099606401072572183684592470833127026187000857203962350681549352186038900629923569151761922603794097724374488853112888009484589941944959002399664368513699253948080388160075516993860831965424354286118905641805959733950056577530216356741996405297863280172751931816070850290116753899015122642924756878270944471256449890723719528186760082027757174686921701174736171978681601263845651712610380552929553758352485086036710694486288600252073929919428755100816029377409690427856461015436705343889228597905910275852955240915187652880758961830839084299080386742188470305850467293201188336110672897689925952375186300268220711662103329982454277694896703200943751064454525933128861471154028364434377913971587252872925604110090449246008601086855378547508812115150250500299189115791015909442469225883657560659361949632206841556409221397605821673819719361159224452474612335567378692243182225506312918376894062855501233869820487793791446766486061790323156494866044319990555979767327330855944999220205092003091610451051825466443464143699598693841250263135129883638815951457367205484283617481008178913513262338207813639627700598316205505971401319703689361555618384941647535854365211344203830936044770948017708133081171192519985925462828395402976853626323207125339082488042238488128867170717046289420862590622949798846757603237279426498347760137530643037630304374290854715593687019124999831740393908091901593350432852724117253766448102151112004603864673605188858885036408967654927643479702022301048321739020379726693838449136770177739179853047584505456307602010459205583474008646780579947155649023067085604398053156497294373958598567140659568131874375824939912394404785232756615017483684238546997254395722862649638932912130351182430455220406058998886986888996311937086355130036721030168712177647296978921612105156233255602614190357233419018329022494404442283681655941683041178691467004946500282322936403205734434248329333156856187590477663211480422018643954326969429799661654611185890394919650846011205837294501175538574942770521702390521360135154404859218264975764505951224364457409808206471514797782290035044982734030357552049743690668139348640187139035736813412663234432270106090944319651125551385608916299180852335570498935691428462634534179595931623437738189496414549358662524236452398925220750151814458272338943211340200498898793685396422802975318091290157632648667699740485961325075330246203405289018399692443783438916054431323671890187087051486771858076160839019234531959561840786825381894998574077642499681200874805333858009220005864285366621822360423024341007025609810228785396930930647539585456911486614671244938275203674510254546622051876797511919592431350008254092745011400706211980353475734937541252905019904504162784591233360018118353456814450081710247603354619684852445785326846581571336476802692813588005976964597488302284795511535204795015972708589867726727302399589678022437582035672918934098617167429661512789282130816828126402543142071963767641769992153746857190508931108571383217925176932602063592954019865015420862336259232363716802483644059774024717286949309610338214432412429211227181739535538090543927904073397416241901175572804446908698045918915124967344281374211993293398853745559918257989276097179858507274878323484560086071169367616230310392020932008878375073732526573063653647505700663243056991035063510034576117876353428769904474875756161227748313437060604458371092853266047465545268575494536181963401960076558577113760079163228064558235832671617041852112050545949620492780274554226539486330762795262312239692370151951679134238230023251355992092212512108888998322211251012736621903656744305306210957632222440011675892881963480801356362174738169644654947208010402055651358003855003797244952883191283089653980398866682672180033802541491136172875710946082829901674657694363338742747653168794582550451931688300572065905625444218980783565353139056093964617957041946003721734021611838721466059002087504605647736952838419209489248520821054317376316846317932299754220098218446169027551899901122773589864146951884351358149770855366418663912389448803421167290449427734080135540086615598942698153007862972610105451979481308385150671425372778075750940993092296329025712350255797368899378919271795166239332896091429514098712907999576550025591862130939703260608071913822399546770587175248895382320139648676730408532294809003049901206076201078761587225907510295297301582066462404343185986616283568619168291572277182344613459609186414222237013600513862528740284900058329529887601923105774114241866084545040330931432564839984346006193104262243719626236429155899674335506794874353486019866916341535657418892525919912806354152051706588743411162959832975032264400763836774600950018836791310325945243201982188708241325291235570988774144197957525892852839434049043034598525232652677135813279964281202762475706562514382282911540922020141739329522248379137465829945936407892153338069382804502387173807437106413261411735662033327378378147027732751846877094870185565263948117962448282765538511571178797713772039322784000082437115396927184735736010193222915889428564613348282651231342952983372460533223897198478105391902901287786540514135934204645279147853267813033854250590880662216654896470209478964858217947169275774420803942962835647761011657717463226824208426853489233452238156197294216768060082687747914463304891730056350614553711616863614211407412000127351729085881703245290705722985090573590753853204755665833498752759711458805786653760675951352416937516172024259600299150808320310941717310649122442580164284158206058944991648294068603557407129745406430065450398221238103833170029458539362905939118654972306383810978167681909867144277176771764404226642030979008790298158521147077302875054813955420271958644596999083675106839902343097801485806212361971563914779734408610714114067251864484565720389724463200970676475842637488904268433348671058659786234328109869990749187453478308122118250827860992857747297046729283505213167905590502474585183477062927855658354344672523270147178771906055803974967919502423007711678248140159306198135268038920916830544889641306714261458627012735875211888834864002928091992184415605615021267520851767492678079443832074979361633892736592470761853252485538338835429706340478996020444656372636258319611719721499666759502708310114043234905887082121803568739939159292473039476918746806654026930071146060068437274124085888904372543755068532893751772453447957449354032209439796323808197248961825871433786699991206717067575028808458908731198171821632634718023224552282631775038512556690012450031096622586458710738634332293361119934323871067683191526106353007702956104985700965171263994520139704701759304221191710382238329292425512053649895574451723388466281591681024468776234695882755722592598929348945252528757213804275709120722588418385354302281110961533279166738847682588149135472149737260134806180368048512935464251854379912580453852967650948703103664216400340409163322673710333548587235408021720944951987953755810297013261414361038620187464838263287823278922632651906405456762780350818685377415862221535776846200861522424461430137236950215163245293019952213458619454900401196012813891662600329969802565207694066781456088001440314583049354041268573374696914897469229798987904694948655391166512355429589010943493167513119270604962103174352029098419263857465518205778153217481657719732489389157161338688690137022787826313251785840050984603608038196749892369700397234751843436361145418564068984608047589905768095808976571561883327480989526774972643112538729094160256443657559255456918189057982247258414183114531681743871071593269906971375651053665493426471905272710213722708709480366741621008949748773906731085581333055926362602960626259327392283496038224590118629778209338167847775007313126399221321500996143879409451009390519364735569822274168046643639178106708613023569242955779348463361517847991071237148867862799499593452604180782206848966604027142210450451026236747881342853312007711983466101683472253429948606929926645175864555770335817783931749054062283016878932945482836503577606626201767078307338903437552366437825019314765728620330751791510798157683378866247857456392684887172268294679524273283496160930426171716947078760709372481416006748922892670677285884389067499992911136995006736357360389318202113849323058049443594861195518603491814426613537040006848281717402648359386975557424376861867416046076312767259710123578729190378007003770024396862788213251038405291946572403228628252345983500838404490913483184740657914623393163193552586685651942013555725910418588482919672790985394217563731761008036021458351441430536160329065484256128187133042333483847714309170638413743444124829239105737984948410249213501069913251218588358530090462747889805444093236452756588232783218103121911726648962162974782476397998181210490247106024895343329430469686775298993647450434163841260385467487974087245768295167515940134863499260357934649447531553946020142946278179318602055275465182591364227326217491469040751060025998674490884838094642517899313001625454256898074585154083255442913323629596815376443133914316529200890966102487228095492913627452524688773520030388375838055765687744734393163467181890781383118472781045379771147149106000548196106261328620580127750639282793844900901358528428684097655353772685998783892105796380208275810674739677597748375068654883833081470966914083655261861703753741598622517004309136949069240318027510874648265399490669253307936022959284048287182997604521935721068592196850426561175787790194408392966606937297848808033135138456020902212089790276886133085860011704661789931154928429272882979886085613702680752109304994970609104939377094852073975271601837053278168256944657829718556562617046795992858811112815076606557830973759289513734165818920067524855952048643264734616575830719268451582672550045842978696088919839296744116760698299374678322430996093448982640808991599067922756806458712977617400313497722407446004515916318883991601645595863981813614538347471985876182700610934862275325925520213369814827426371539535641734985009061370420297232323636196142067112506798968240588631006499248846472779484836195103117627533849478440779362046617032560592613179975303475404477649642198001805153956747606612912716852574785399535169961802894072705948271182041578616120453996957805389402775914316653304604856450726027055161919891571405896242867496239746438341025001326179295671108126611213505784991529695473530792823474026156864834891724506808327398479669425693784890598989036239735441597959313194910072182387240137976310123240518276455501236148490991406027628434639674403924102648375071444527827663410573365334905470344363421154562088371896573072091266063191006293794896147562026319088476134924167240116801479765910754990074732615013139030891573646969580734630408586326553534571642358126284214507611767135179375715063173677840047470583041016172668630478373606953733467009472570713041894288983637075341369206456269278726896941275960748470738252626109484627738611817379317116832379466588766735732278497216233261152609808621910152880826403658414319652804016608204385220675726685042197756312097266354998065132234264864130152310963583424365745346124048113989269892917136869390525080980578416340426595793370192686614951874196517195724712664898073148320744302242225242489575209179644579067230063808749139919028670674498846431606347205922233287160038257717890894508821869460206105248099454878057978940628028603634259724136817165314561075121823412519028691418417967591911952886518874646873267381809308663176883758234708944545217702525954543736390446409328084213341594710889493695493261748671721715762960125195051943855719440776380351287207548991406706774670703577352089803266145004173752027255713386416010944415249343334730180765292064569673172928397667700606275682522527518007722298413239806697494419260153742556791995251227018543951826741912540454125626471957842824239079077470078430726374968979703570176205628028446801470321495081054276623710239426729409518918039218193626241849461606859351636997178864071861458215091413841847053214202295373971909326893795227973395758715991914562092171669785813398226064495365457392958143945582501473361988744963195338383739792977098173853472720701015317566983657664084096025054434890883300998570874466992550787867490042524294422530507860055226410608753330339863833155367768499762292855660650975989228158971080516887681753729479441551517509974717860391039399482532630650226572593096743264150975204964872512163598567978705971749729973002819302118169283443072832015230671754157415861480998183982358361403160510604569512424612023462334754638059314424649101289052383624961893948134847110945124537223027203644735507924173839040698923803027203883914842135941881166607950694004911584099467133715196077118617574437803139888340725527973731483403299500906090953716437684771997760813142031327689407646755015878140311662179158032077664056912641959566585752133417485974007117045791283681422965500988734032726456680139537128239552147490047692261987340036736628613223384783450645526999699391020529468365186930056519446011321898292728206204403423454584506526252460737682730308663994060500145017912146118641296227074815944900373735758608802659624799475989389019164266076553617188257889020040240077599436067909738087422559234209713428479112168758359930995407732957704695904557714974353264724053138893529039126801250071311489480986328259822658980380464395711701678746866038026118668463853510086896505815107885859970597483727367860464705458988745009851776305908966458996523808646027440988600325073890915942883684017416115587952932248529622830357643052274548034402110881193168281785691610123600142482673423620813494489918124933579067375873271189345300718830739727239438604380022787138009833172320138159971945996403991026768645966151952166374290837379448814502848647198511676734934656704025784823675715887781334335995608959423778274176690658450169184011257348928080111737288694378565388319916577031093227444955084137535958162626334244808088356323647404755077066515375879735279803081327815274366600472673386577496061001630254259882690027473431056894394194865357509696251264446855562052667874460818054261342182455891554405421449915772402196213933767568531898429248418843842624959056170987449771003331320306549170731909820972163202035537003602925428370062078431388287063474192879836041365071683712142256603584639686153429270265816441168221289434207652985983563554704529595876968471998246449546432468470590520750953380749519518309495143687432502068702365341085941859169204438301258218631360934406895084848015382033435847020405566551522588374449726232896032102753277981173314688273669022683069136141761708556689304169559723622399764148206274338383258474947418653578388033761413708068655512966293490312490592233157164109583919393547870670549746810323163970575979141035772541785845661537636730056278424289832776727306283504591833991063450060374814597964705823850726485399152169163966142759783264304679424455920654979437098226231710840497284738637036566569453783229929759953397812309873188867043243883004836239565437323468427458919981436523827468826044038838439307665693940988608387634406592289566590448644305997319299221476620689482521807095588545410086469926634692220675824858510738672864964297667533880940729489683620176254236559763727970106134107028409973821608568656578174034753287635423932635955429757383468936384221846017637611243280880953757046923610806967695720935359098755365239719717722489710122178054131576080494219409770281957986461061451519409881821340599102740629106362851376249328358378195236549130305667273515805205279716989702402820324557464652777368037917815235652522958497728204916507666830921699699241421116196447917546960305884252747001981106538582131919893528308644894613843381082810643719491488655624367655433613186322167848863462422777340820910468896483459367562066260322176042827128227702325042803935106589862681153880989089598425522421994019621715359490028938801643306594965384303076016091141947277747003689493325096241026957710305973844370140292732544482906904910867973453940046598504557653646789599029558699992231246815382873211665927291978337412194128578875789183512789107675639799545378201647240358653359517942386935410580764882314967403561266576474027606173607127660739291486736183194843280538378311786561935651897864854386844560374287931888907214073532623714799546348963141076347015260248317633168224840509595795680027535665327830039218506829362455395085633905613400945803157816918096395042935212465996256948697446368308368600432901783911750207593341596921570752346190703569746990276348564317461310481794706760744463594335221209650118343164041770244339613605998253434059443639973482707773762771364377572484912261387148343852230334756702739045339321947864141119111803780700625862642049662107412515423100957501997705704004116624251711157102373023450267153163823929513280844740046184426880966911985373822371100337286845327380863558780613366536455336238144541840474309455129791290903276590909836494293744593845465375447557222700233989742012335991810807769792824542870715908740348013159986524415953397577540655069075491636288240134799720167639171189614396039151239566527349116398703509058312235185295460727357771836890812229303487630075477342277918403424390889110519655342636030279803915092996523350992675678947856918480334844674059020251063583533155655624559259609866183972779841457657048026590347485510724765115625875125815250696262588951649480168015978778197646419141628200926147638621444123735136887455621928123554416670332430661921891256384961211955819542513315683615093986096673179789375647363284527574570903327339309530471815037307072109684476073048712179684207110139118537757332548244195282437544342431292536203818339789187873105316281793363069580316439386314532829237452637399551931058055361169543708788527184200871972991914778004137975028520347068401493632299024917024326429617367332169704853398569454865907375788738874656110531469336091097811260710093756749850178442520470574726737346068423254601318584780138034859523593995947251677937107652332959366148950696970778206604116184417666938068719507098274759289130996561001122181347883961734944329291369291548625145186139286927577000882621977118432666975490788362805696779936694578331244779431066076341391756683656048088204765831686151575392130830121293016282170197712174594919797201759474292621765733788606119283150506567473903968801805662342325382519699968498104192685539294424796316030684424361790735110180599365410021398127036982809765722871647636628502109216460777543140365200068158278855598914292260424569708109630417826239278643575041867808115648059984118447301212919567518288687624877012623918058396988560377813689587376132979286850200422038198903905521086292940730578067521375881268911626482943932140881479713526787685711241356947446224322867305788571289961957232651257063429760331653471572697877938339315658181269582865847255652138623154635124424697171280790869382921691888162438761875867930843925572119958826782997783719998082007699000878573005795035481336762106890491098987381879089198141799456245327732201747387346523745991345164432482064570741235557985315854953212684913624325493370805527115053607145161247679770093289524472107007265685677007542135477566531835334928544607538229169544605810333643240763614949059236848577203084905423977889378879845251327037551452148005672157100869172672562027152774055418072244001055317206056402786500771076705944880648425195738491365957991989127869255110517424952968115579442852065060093044407356627286917599813780607359379280396750961094245893268487571721143953138409010167329324572848811093282781061018877757053732289672912030290967118718145487862736772887225522046581153799365899671283128582726823202651988420297618953028391432252504709919369374678898232393588996456705145652568768124424005671759026476599719339721845610106443737718638319029772025013891499092486350978376812591058304709578066986711404419178200668611783434519670227602187195042916090629295937991118278897418232506173915052722170798678211600495128110975269261379526203783553765519646041008422145057107874020414204179794091811188720082811898864512311297562573815573050157857231316282041873036688471786710539154945334635345697440686076268531558022837476620894992281508064923714933047274510959474378717390852798031493016524129465732421117897885821819306629927658549770187421437050733788375554338947612140444328360051024080911388842365030183294099149199685039306418093418346755368519340059111480093657704522230374520100702123725012461201142796120909637198556909827842956903497828896844986921116715832764867536624035070075638800434573193966382020861664612806030065595889300164423634150338541417572589700528184112370391351817553693955162113270461416472720262497073021704743573660098059510772009267977905640025381498016740178935852207518792751147225600807943670205114850933787937285812027044996603202908780514435307267608715308402719224035334635540665490261105247709493545552927003916849988087979251604309767561519719459890124557383267236725893141308322361060741722980911726436867009799522715640856600889282299399000323712859633478954985201678605193253398182190251080400079864487105139928409889181645529920039995374352764628232211117613837703662282333828267186472016784988581179790106383946955686919031725532389410687668689047798961628642419819741952204560569785551119890796431706910843687370683494325638542319149091457417088354644418458625454520792504760158741785280763520624915100867943423983913796746005323454186423419077389122715106799030175754056593362737713518282862112848395678384609096039342891564824064692275772972328931433269567283401097380950966807362184874323818541518888698626330485137865038597830407264275973710755578790357551382926135030372416249428880263922126225589359292727401872440097358252515190631770122909609899904052754847264463813305744029082355342934079422736241396248873057765465545916210944335840482182804169384928373506780761021959447556227169324896117639917710279618663820457750814874748785532454148871140226097518252152881683593791003978487953853863019972336381365661467419382425761696021621876966446313378858690535196523259279345151952460040430615437844350473269318016706822715631087366510003265125740854027050524553577526864422180658455177663131046980854861821787237312141062142615194040797073218540487036768988487625203287568797594766583040936701761840029087679361739815904949775014245999584413606828769574712797901833140873333152304020933503784654163892496501696999623729978036552460729665335599649652264584207150097338493903165025608061951045945515644517399742956555560569356946439905927658333660864296524970336262797558463461040094534612305055633544120497663320200092562488799813518432157835860569076251151412616632823404554742769104240463410465487330123232594232044201196784936911153942168420711646194547935025296210573312999484337917187706218363842920994000590889069585455010636570873485211045236390300094246003449062320281210930981353183882813220266945720428923196124164452006998284134685061829713381760082219382069222059855666606160351300356941801825751137488363104461724286544234434493916633812000814806651087530234876615667755548779456644659161971279750804069240213822316771229307109460554435541532700510694919979485607162928032100532538003423459383329239999925299802359591604600866451375413464838075925672718511225440005547552002751414921657291548042532831159625575609437636415496334153713138508128682455014969166243092314383569496872236040610151503407106042466389830713469879843447006608575094314782764397601551473080299705550524903018250996522158694729265922931817152246796849488796696611900825822203581316667472979291394390214600207017306284019326444992373801664407794730507511430341338637266208837116440369492465932733232901614330802919875966346902424269039856001959563514616302569506310000518703864275449813103993923851499658988288097453314712011947579475261744903838838620232386329055304592263587830800095400963850373361943527730828998368997149321461176899639415721198235745902064261203824016454280078191470250010202059873949844641313721948331804865381398549398933107322015660644204544964497361803149695715968292758600576792795482752590491647029583723798302711203091078382689277494475532182458444472120803510602028675936771719472136974417190112123622394364328754106213239316534444282391085216712985799851010847314356434706253335905716821495435758793993056307343063410771222497364249290401699206386515748163019583692954226662819542335577547383368209113670677832770076064776049314559103837335224564126983269396889907277919817936149293023051490269218822463778668870971164938622312493149742777963276294703948967886274785643630032879425144712209452176543823684396367121719218495163444600833275453398976701900186644937662329636036841864575296512083582658561622423042037462729387210425235463207168473719324861529295906646326854767478982914077840745697960900838888074977539608064314142240755841900002829049914462196567728603503671638221452241245556360020409813722554699156587238485353614432275605678039347311767686008775404064050977517064343236203179437967626551003550906771670768276186967572621691011082393354598271216183429272705655328060544978826544051649166761510244721765704210715269242838898657555424047548489045112225968863402856379082275798317627989083500019898930329281915657148199686495144461955575471761630010741285599853961923579502334379318352139670536813044868642898483484198139545653517720995449336664665017384066491954335055230794120797595795658971838448364345542247776365036608991243543411483005130181406940566257733327029580247315396943700631840371805674725659228255906607258073596439379940239225863827546701109414245778317046263458502813877610409060763612091632119282810531530074179917256668221312851955378591255586237357362636489667321247718696907450408265231938370398868826938792606446791503054493591199319146445841176186738963673852035775527799535551263916481145938436397209781502765478655349869350370332726031955286002959732678207578913974452312118069328946728835267244742259510623317284238703664399560844888916215122846142395438531906334156334739374556468701728160527067936015758231898059730945403486406566754778851339589214009422107929231341438220980353070948573311522351324940740422870895643760563664093550720133103645483063371206773035710331369093709645998604103885711743347566242047327177590006747509253532418470015554313264325229010809717925451207822925781065198783715432231536886995667777230019220338802455595364492618692779699905493645879920964637488030712145289944347823464345278793545458186325871449040059873447408251995868650854291168412425753201364292773910080943638088213769512394697847223478000806070709631807877243119023483027569800414570296048091080617210212855837378855445961995594969245955370632456922474801748228838239167718961413141077173752888470668032171852931938947473860056971754756674860973207341501301097738818123564554181491295671780087268411584654038582935705526687078102573314825215303869561038222386228252425343518426101119663278412072528666415814579955995140452168323735475704092298298007604220464613663650783331340776190238507277166900905068111367075004253536936606190645213580246848859881329665522358564586453806955329900525743003024362988072728616310673074892660755444696064338596217285180012433593731619522039881257642159128999714986526069232407495222623854719388238544215817862566189611473911926016764605056949528522359410319988949322859145425452177085392908980061970053417400635938433231868252672896069687840527214894968271186756736164123871339615036008261526620784224957352847664072701650513675925133881572032864630348079896090233456385588139649016273657345586441632833080731404873708505769136319523410616600719621875835810670409067008165007917193316664680894960407527640892769043337136115563992263264781217276031770690310902024048191992300487859458319071115165539028377394110232637367553463621668668718755695649926567309711063537544708181269819683625981379557443300915712846218187281503804304711191009516222761224616805628220155498679625554167304950686733504160271084653240794305333278971606820783360705702119785430655425563608346320199501126404726149395908526196608956840771948151425962861378751086329863514237757145836245135444505645353829152226616311059391247491152326047435719557059910222344199034034798562889395910823586150378691907867623933234651629372975466439677094249701224603920268320753488415812726395539386038617522669758799325021805474371641515623274617373324014715092160975664079446085293984291529074874517767602700707092688465073384646295838088333582815282026546826480685254431905157936611453300489127888678125899359969322677165852829713533045021311670737190954875131398180264321258777661411205355778993137362200263330509075972348509382743337224534051311615845201292903541710296551610633976640803517207603299398021070284581011194511610329166436583857144750539607904266260508133876291755232118128630521251896243161665633622677085070840017428662555989601225604219447391335518361116524123409347954019479672086712390178370690394135131309067365763997703874094966070190470054743101355254182011032498708034821371380790185691842461460322274425735541678341201920312741066174159575104656627341704300962931364789770937353596793104949861158894388851132332809105677385600541431174194491122445277324284231331221794407154370875103428148151159388247262277901139866519119179238859582732418142552245198799813887381610249420728220122001282029370949402330709341742277984094492204134099131924397398465434379551271774214857240509431589067087913872471082110142041746564195497932319393904414678107904247127382732160923506159850151572634447848405558415118246685100690724226676911157452745332463962139697584401613943758176995088129374439946197541313903325549204121397193267536674446148521668983521084431907189862826879215764957826354062007845215061038557861083987172568523570059967595272775796791563845819085753015848096363719288793308831223155686107227719699792155171108446884014365859740918007878414214725677486234250386965783097949671699978034484960690875368724040807440764819326398105442774285461169901576009653292453566987827727713364352667861736491116148825798356428244229178715972983378090067341269340333723070018466379527643798321766998719720806370774247107665624555297778726044154356920400498808482823956049246910900567409902467399286351970350751032132827058312364421762140440186289781836897366568126450739389114544997848935353099728893770075671604382692635028980461443526115942302751533268138105232982376452426987472047023613652209499776948459446445783494422475874501732264401254879935611420855907513686526462770067752913396057464229084351636665188845210274196326029775114126375508935570553734798257805914986318555866773064535940967999148046731849265329925964568151238533585652245959130853030065453587718610100519633785926077259467303982480107277651619009200305538098582826008867607733321106352239227446598002388464755627664414653893848260551102985552291205216760813270731855434059557155576170557772217084938465261580781762156144336392761619836160000965700617542460467975004153274111004748590387693442154073744501101965753619591576690939476395529774845199561298583798658094611500483965709273892773107375616825248293372144706777184039115912625274593095038394001249447247482024283337612637014121331725162585461364779801655648046698746152868831351721847653559575800863020180154865022711384925763642121428660650248931336345039450337536228127668350531740664546142420029038656284724867303775904450631422644077731749719371575661139304062268580843589096135174780994018301569991747628767968166380041422640194243636718859438722545628967548336919709805986071191982076636516558970041437033054530067674100195376645352180149716001626891050298310588558709535342801348992276381014899467128012390269530687803184463422801323381579011840388299445589409062922506137822039985898571023378862083876213879676114046395144793614419908419111519585889278171010460298771612216085399095275228371034852392318483769086884281663863352284917125867633031641740502225471823637060813756459595001259994987717246210450845581802752742599806599002904278108460735434919960209798761833419164533596016023859004856224270849050357797286268946051645294077835948566151083912471912455660760931827999503913742683049408449726598197580163793399742910587947009218264882338927164422299788992936554459347595336949690461932060771048673788023281981119153643454303772256883735148309510161989860135027204466589344682460889255243800374644505315674446111365513000204025968368678129177336018347661564500846334515841015635426365137750707852542671569022732356699665977937034233973872693642202684364516804577412542692394312908744103598902770250091960433820367831193818399709633778855394593958518225021725125588937548352167461925027309025644184332961848488969482490953895838314124424043502657456451021394372098929591764180718062698603049869145064767601663141253794420344609637350735582994068585489775473521921469918699736078980222646849160634914872972553682372941210820008449372555892944323469453475738246255703461056355234358978051462143488847087516859935753551213804563662617290996139088427015679594953476626726230575215012615735367766979543855817943933177576141667360654928246267510789082995566934197863211805702024090917030214326006537781831940744497981161749004911988139836295582334953010099096741067131770291841299590551446174455998414672645730480541971572128955836248438458804869816201491020469681597970421740957460991151417400140813158348684199187574499359366247829440053789896765994085948602212235823500836644838071042467862494356843242729199422667932171841498823567348703388823666402899812107802299527465402244290988859390673818437571963586941721515609671590803560691229130494179459102572099825964274724278205620288760137416551284183901134283705821254743831277509531610905164095963371137478753784270042382583454451138749719035618439331893306195041403291826565181619326258960910856343811753091589071743805021869594265219030927879434280191708547059973919141037302484346391918926412028031858678085797039579361642379429259479271913264415125986723206476938920843400507850857516429089810237789757182510035734330992379305001189095922618032471401727066069924500533122498708523056454175062558165468071406114445630118042522385969682291245911599536648196242643099250414814471337482096557293826762005532539545154846839049819474681211921962634215985344023615805898201551002860295931976779013537864684303658622238571086371746446577635105829760279591107493337559405102651900596906024887536153844450038315518378996176109018053943922752696366522486863185424147534745552901998259493780800294158002214120822347382697674216716248771829693350331841518992356583045833056676827239416410220271980243685134489766483649044154724599461039960578354105373606456191591956326778347577510042197408616011513406815329739997945180961221803715708418512939807452425330382132813427302947057006148701836551712060873801100519415532477440490128453478144493805101296579384779994265401923627278492045208094628601905336733445571585728935545571594145548879189022480329963360076435031377431638312212713315875294380419416580298434873356165040111270799043048358492425010930890050261001810418778647516865326862586804396483249330737464478410412232740692112207652385557160207293158008080197450010341191687073857889855545304485655335250531577427361363281153195539621137453368445254097152630969933251170124359221581656674522426564870929966882557316186936821768086643657321081593678483193832680372585472892534469514949791699691580161204713250014523994808173751941651666168289840492605547539957824729310030038452630803696299341046042423926887819660307083477513520245804846155034025693730033148430274707326643604148107282347188025139151572708970267148843712579542129256387479143324641064003716372112486505318049531385251134841405399386793374864282822693970273368295548903567296305154911307158839822224760061293333799231576203268789302052018763808785679124876219804040909326157818135906511343545002555400584502880032249213938422611391881885349917449436085099192095841928510477571074935761881559018072812594213914304725927814559229279981779948730815349979360853284076404465146456198530708006068739052980784337096151610883663737466588396031629926201027897725666566248147134723305932884250550800709855129253872456942717091131697367835254434184578065792597066332051417349611792762073139905825196612635406733421298248908460228008431310893926674428108412534343230865382661515643895108941854483984662199123100412964779831593910951291180175692775218941286725724803094719782645137027403448489561115622322613924669637831512798156166723373880433887177389374447718082093037438999758333161881506290116010245261126204571601450886155833752989739159472054904281815991471666567913524602979613306767239497127070406882353715354127411890188446508775481646674364307152274614732846001224992038218470932336899991916617407560095827029824582577532997733273293332835697342022766221195312515183320259673277043185745387079674058496688017773454825279414982962715978264850661002436666722959259274082462814466885392107665648643374005663302788805165285481719429751147062866050889606697773305140777703234700039737810691065304464248653418621618618600371701127445317530954659565497211803666585874622286760465506942312423584672017152552119606859091568001140456566610865580007749000238943722958121709717938798767390485202019049815687354655666681499514936848668733853250886032346458127088284282580319156215229585459480045546555761732866218725798806555614659608392661353524302423877577451661331991197113273346035792811374018194293898917553108886926613305379983455392237516773739081672090694060273955997524711508600910152718962047419450957002965866831411550382326538989984377851135254302938828849724541232259098921519005788325684533467595997638203236077493132189805114161740373225811250131020883742674458899730907587744202451722148136927274752194601923149278806035196843519500340002673477919943756557959349271208036844520368238402664102821737718810299980801489332951663417284543548365219271126047070347842920519186562909960416838306341739086473376093045691593635770277925305415135400325583480342434331884232937496578913054715878085315435067856972288782695516643488394810349344375281601297544570558696674265298004055082911246597979900458942237195433934483285289823372664606281161615269171715363157193473901776213958034258434542460432062046448086296820896825853268491866473207609461698424793459926964498933989697762163722235110399916328749041754629219557512533365754930518625134132222610856355914698937973955127843467871322896934600055849850138486631153314599854631711833176251290161743609024795653225362772870081345150650056875144951789189406426336618200706798070430603203931549932453123974884878981241657923623940518176287495095559543032667427233965412280335029779018712980667112394622059133348710062115947710971656779270557909409746611770132785066810807780436570309621020383549807129045639106838397173654620803878934546549100481549382265284775988514088141560487307618290289796450414504870119910133989888033944736363400870700407209086171259997692826128178436332983292496940236062733908884324782915182869860526911465263108989182767086272371491717377478012245113867158203377550894410856897155710232167800661312304525310033875753816192381708703399546216873919084126399346840327571330077921827628787441756738806277228173343066307303674221873502469766758850051741229089204353672472362890332327981709961959318099423235437784703212838943119883889024322191853705741200485719426080185761316669637491491669901302342334503569243642166942977474338303678778349051891260845585435654766098606780994392210010938282776634329610931730956651925891461766692992553557775244442812246091385036385051983579068061755273138691885245921233365058604956315639707069991397956238824054352215995744870785689113559891173484393647414451316275380703078485388831575755534287925284712248353271235669278962435370643792894943884914353573917203576026658257661305886001233376550995658205366415032885988269677958651394201018089650793494398135911542034924881977097078238750485011866479567867248604920185361131878446478957154404158542274305006322750283935990116779823462228301440207641307947172452874104518255294508491273374587758919685349223734044375017287219411767182713110655015330866847545574640554922399449473943438511928099533907069711140637377107187842645531417764136813286609149448600738627752868104400931689703946043402136695531237766489653655105648374051771032831836636984258054739108874722719704717356000340644197324344699534989009497602561489810388826486739435340374624172788911442642726096573805675896265185164827529813273622582778522720286107870705884884987006206143576653196317823228767188384208382710125068489776416883721484417427709229164548288074049703452215709422434119876580640054194776511203024296704964095476917001971865616316803662945603697930853708706858589094667566502092647831229859760827068601358221384364617336481095961248540584660306188366459516801084190478601644415912719700137450565137694201955300309899275465572597372688260676009846923366853454806986122485251989133002035424213453738925085187831882044625534695118744174467073813019390901565456885935603928435215172088597383753529235102171267810010184256582749055022369792787008401094073370040292712844105294161192373429297993868021393651358359437853428332656905060538605352354365095669538794348236816199227540458769551978855548069691633377252884640992843675719091554840174260702592081424854462694184469280794951630057994598939745550450954096068451046630805413204841563553872946175924880757222872149458494590063782863628503327824804846025456015204350131029855268244995518111692549868640839144233946527999574799408203175603513915745158411943463517927753783158056644293633372206371189656329199733558603069389947535946501581322921039352171855156428044706402561122781739817422824045653259691219554460736917348593959392336509296870130619365975204709611981918841805272771569933128028918332378174288856634112214573527315099172892722455287681750984451088836946401074338622550040767949257464460371621139540405541999023253261130162552478226118184407811966075302535209443308804615609400781816123418383417801191614069973644735084910005636299757801349619961247525292331782682847182492396700586508443319945212535748190266649819880755517968592922494782340215766557384139208620705733456801863944149896894140865895061053499661857212121719061239212550809550208628596349147577627989491436697491141323678236418738030207558616700131163459333856161431804197250359401668487931585600919077792114099498226282033427605150047084968471497971696397206236793965796649943596247641201521814553675978586624058604710148606874671286503953501110963087493706840137697474057995081515143656372681219840124680583736143035109224888495325964223698764565989168786569533751528405730072171077412740981648289654349895219130351451922274349108978298967717083008860082416250685440988364301689287178766754297689451336767099494511409180079522086409564675571875248894905269569257696015872080817212656057845903105874241852940821936617034289845756634560084510928795141270907257648517898468438038409922454550291686785597798081695676039827556721078419662884399278374642185936256634028442736031651437368834571834458948426347318807265444808730787454882721541765942158036148214693654528609594656711740970043794611802955831358237222727677069374074815212349585229077299464014125967159725940267716402239480885394012436329792160385163290412226538427591440164975085237971343466646450199269842519505667963261477207316178814405775079363548423771901609583027473505315450457277011996129046235350211844783034788499988711741484328681642350476283854764244541849759310846495661614891368311984153804755234674572986720357209690881763665378889103832652170992263249999736232183104855629892063214120105523374607061977511486913529730784162907830139871411177659677417969236746631217918961313257272804139136417011098259904912480289724845064192656405047119433779555443338490564987895340480888637613010352628164328908443851079229291357649140274216291033479129904130150890412218940535282103748297035542813132336934707362267892571120219443937571441696419558110521844468497213359911511483067558414234836559095676243369535125990317448265575808796617834547474448961258450559842516972989168703187967040192220802780563112668120303386278755840097344967882345661858181031553852150188297979960385866555245638893416923100699270554965488948853882165701919367066364756317187161906022654015375363027163110103206976663469531325346226128681574178536639861423358987696182265821771912993339075181475947448587721665720318749647743583782649050857217097809596353772221631782415457590123833514823110752790439618866797882479950330942336365840193912872828288141475452949053958473860850369072225361809338764775177616350287820911562694573225091418596584628065010318185412990134998664237410973132071136902509570064760859895551990296267957318142947763977597715952756872019164826523135883814113552729754766172704126432026286378704370736288522979577958985476865487593559835828451078242833007189038909988443366636715342099718534407850998647844894704957780962591619387801260657642812036334726286135821093154264657922015035586644488844139586459336848955847344452348144246627259521444646077651593206060547264190723437963852557509157481604396765430328739487025401139110848061640100127844246274413575483946075346342008267693536820498560153919573732015421695026620742996640309682841237052118522650385958441897329393612174660606692035338455380467563325850697607249897436748220127176525608035894208816306398703854879488142140382883416754394285046825130733007765426113548887698604983989568045145067420587520803320055660927154773116873050590788769929449202091254532364919007182352509703793651974129599445795705910518743055254378041514696435942001977832009885234861976919562562538370988283070583162416050625277675375176942580118534187756473048600980155073778753817331954284092946671730875137729341117262080354266744534936818506467013853460779565557421009233683496620364822331775123451565951903131957942819276052183880648855830712106847336200968371042303859034906553701062234274094258641577989545626100935770452999341573911829669384018928098649358213731451437902682975449701612006613649019122137460175387703935929601835703848031171054674725170863968381994874660000129095887060804826329542664404108383334504109056450614693195284041631817072200018201042227312057187378337855458036499074072582265644084433353225166284574205703469335793986344163548036343137036372608409798456975503309461895249607321915119700931458199965158391691907979507632482277500177257443931302102511438022796129476320116596988241197940811303659154031115219017253636137190715272926224309494643874468556716090009009989022166263684517588904027679215541218901098057767518806551780655537279977820267499420394930404378845509649965147934229429311176594261052649304894957001264579130734730139178285061967475585151094622723458768542515290306850487329081729780901151551480291012544339466264957723421039244724312821841271808135947712103201791127789727485747527972291035742274606407782151994456921914026822060133284498787178356925651879365973203195666752403710865188734137026116764068915834605431657842809311077879944962581404916746310362169906088526310126839883631352273788127414574388421173041732598621940769934702739584167727396968035146847821754814327880644478880357235284215245254269074857255579942264000104365816951553249483785866241142377127545821384601170590884711608092582266798747508306528588248898719669915084782910528861134080831657230363565834191283868961775716436247859750915531986428358764417790675720875290272795503835865360076160666278030130412185474005485406399935670056108077552204317268984608544679336809139893860830015114993775282644433993920991574466155232837054730174637428909460539811641995283181810012136723278168992408912354809011435583197048079715583402478597232639293100127038213911152540743285557820595035496811272440464839659716603691044661134479828163021273006215850906891910553632426489923418607933557481886556749029274738512558748625773207399496510345606603683512103288329711811406829344867878899088069805034555147325999612829315083444987348190616977690509080037629309772403944445888512529798575531592678853371963341743209402407180094136065016554035666768545435037550545007316469041399625587726152000411896444979646526710183900153304571118254190539663247719312293600638778711391854503713747722692452567335593216516782662986769210738385500867423516034778090361009915248450173724345773486836979720385614617237649463346554674003169277720231269315887908485585457572970220803045768384093902293505633145440159216689756457025155226963670203086470499017572709338611169707586559745265885300623084294600653946342698826919472136435693780144768887643905412277906375052064505473663854571731113366577962665964365539285372175823572262536405789347696097249343852844804684160519944018673882179975162714041072484399855924510678228772542462814767209647260567416343476717776599038861680648688823151862728423511855875343677821453548947249587037141356454549297159262349615304032342283508071845394234750666172584832129122732216202541407082092013559479002396170996477344888903213059460488973098026310999215087241925479267826142154019859431427315889567228435021020311625089667599440146322858806695380963799472892206812462629531345289939284387284492404740239003435815366023767974035628911604691471482106639098893953546706226962241558418709928108823411768430791354031663571123222044882351741956300323521143996786274597882661195767085723162662970417323805560400462537974631386402472964620727161991824081748964066444097536975946379421860913220232456338504865474056199586531639390536288170404913516909011612952780696053027213415988168376720242296764354010141913171343692158280941729325242868140172844277374718382275531079541083064326578593797863022664883942346398989259324217690778147171507749451128701352236087277471183321893525917644387236665916028413881594277186165896402879289038576001106850765129200717643935157976421710303966059541108406579841296225850175206101891783098383237652828219350080688712649035563075973163713426834025221769673949371390263577551820493337309316298133765169016720228069195083964279012024917744211257267893849394949977729332519595409097948403188433060961098309549697072977213205103062969146329237355071985601447130387170359421432032199555249885054806344775487502683407382476731178696157473113046496412743929276174178632513700736837517496279378673419114893348680616399938483095227839707337404339489231409766325836926074345120953040829430943370804034667573202252855137513812891246711673629663297203928500978907066882320066654275463547358440771908683015422247273118655075842335438579632202061847120810374880288471928434432738818472243459548248408800965870089723387318273669270243525411264408052186177996956329296385743961132716821104282557618202267517415418750693130257355431509940006148644743354756896635576904209228763178300711428334535321353162350770782809329320106972880109063792347002681159018995907650454818486699149290762660498167232232758464139271189145227468408215524562207440582856660682564408270176534723182980183470229933667722210033867230077999266495174081191722241903930451013666901231508777377268057110626026775496860060400945821857111600392602354901345561092235217665931824647827039915072614409083108926767494153104425122519114042365624096168396897152654811940970505044892122313597970653213088980555142058665133335555746949009961058287357573858369734212901819259175279567478080850328421813261934598962224090462635765671907152193874498885661711730810105175602343026612202254539599292069106785984034491194102599263503942810100316713648907898478377325914991354322335674083774912448588947309020547350214071877218112217093005135119090499522472719177873589223488156340542890919723254330399620724334475570627489896545749981166785451672271183001895650924634298761705659410888856599482526264092174129983494004219103346492626365634861465692782930897357063565669699682128703149322049304828612420194744819707807223163794167726597204441618389299971724720495935612593605190672748185331568152407614407945334829528809626889496653934894704809216150064264976495438963311282189914540181317661822235699526044274844116087510615114114207032175663099448450726667579679277469359159813886481233815276629937679765187267872739452096371903380473356845778184058201314773670792742670669185289373908103958960266839557509171344551266127246886075794902525007511729282710651116697860127129174831822730375136006305932327125110905680895448218841335698692573002320749904238201549726804096030055501574294488313458919293384360329237612290571777555898231615266875363805890418525980647325147099517733158503587633850464908974514346504467254557950491646935180209549486667383167871381546376486488151059776936495549943476280292866907391949355184942864584507562538750209602990280687784805962431392373611880562205398424723051012182104933415200573179536089828451205089266149737632376365367141161863797156515585940642603565212383232370645592872858571955736749061014564276689278787119866782287599107594468329461663185684729471504803685386470492887965869923194285662351353678633759716725442247203067261367952333683255449730718516605996700329054976924123420229688285087986421856588685923065499133573297998653741766225511245055634273948244695815883374612161094329876946424949858232811539359718085389715689238537146704087188813832254433894755766053435192181343219276488887144444577280782098466754405215763930525660134675758315896395924856560200690435170955656837674276369896828595308313396099913726783835769109888301304908847957050935084200948535626240504558289268627289170615233843899065585940777163960991762563592724708999789345381905284665749841883228460930934347998594212989332543220127928439222873701423234383630533093910417509621388010620725591556920114526858947011886650226449304080789153436708488518941482201913576770202624367786009543681658252445758869982261353175076117008443400409700614998633000381042058608984215560048563280794252828131963125097260693527748814521664682120686847043798324812494635836575065398010752748833993314397432160170396276838897409330775873683246229258336079128532920246641405889832731033267695714186412947610776092181341555932180192248442521049758843058206514249712773496818480554782807708335043708962499868733512597601317589830382866956211029975324641077786680101125408188100087853220037547721297903463134019709971346568476718275469065556791859462442521348292943243170520437240520009718515111671240489928161900137111753429037802350040229441830653778925099465326618658146884042611969380866718853503279673675463865954982919971997195575165912239714751633401048620258351734991414733150226151454537432328592750624104223310152357358629976370472077366506210948724852955818982062138550521531397023037397337813399575980302891148081080039686183515766552662855853006082441978959502740063937458097249562151669894681633908289228045191966048982528543136990926599563045459105767103337077835811397601135325634658448964043777466376144761299406955585637907307699543455159175029306129461598815005956589072444235689623058203594384833362738294310855403551331402314521977329503896673593585681009680749233824522573546254880262074388359540703368517703349787203767532188516295908799578011376494205328140577021317310276314822180633643873184288737121950731030324304658231652444426317466445114279696765571860105679921200261805862233838849015126510034971354310742159526445682905117436960073203929370681192294928835872429922479980840677148262315690241085730828660619802396095373440199074414411874927351559191318193965714061316164458282508120172696753272172968265441073852017244883210571411243456097932319834387599395423011387044862994623943500400380552472209592268135448791156015115104114433945654861267711160617646787129334131596838354327136087306556798021352758368650253105593650669525983747166508313465353609052297328109194677699967643251528634508622128791793260813962754333935756684101856425180275464767645237291821745947524679359285427919669011914569158594335139743738385155277462192640278009333643393519803098663878717523821633858171889867777211745885844543605632392115041217660827725680982357697822107452034063370879579273968582187227378643176869503285222621179386480645294892215900000714762939714081886581737843089493041178067234568092914681930206594039346209282862807928647304338793400230867794002316347717735042893724335593196777807206667529634579553566912995121363424870678199634473504983582887753758377968312162924755601769196303284328938171770499195598662640734081023102858584361961118387487825780604142304701593756419992062886312883425862532936694273753493259256097134127722826459129961391377621370281374572299810606987138427482767342229244810164438229247674077331916517501666974816376745848132212655638402538269879382714418574249580509477698110821239918770158898899991872774255950522938477139350001566929621423165708542159362788283084650525898330945935000411397622885477698584177005474624713308534595026896716393151866871139869010353897345650979845379538801861217824461391533850421639858604379091577964472188770679197931628612912680452737388320378360480969759453004429845294935021276296525685096420848682998121111551461711832190069713122639649134813344451747864456824306531202333987972915115787664436493102126113452724986635462372805514731861460002729561315505438433584753898105048148726100231538300282632421907238085023214654097887526988061471732795757141601571277152959411131823147568746212046759783101648180238460401097977333769801556109827371384240423325781196619165074530335735383059630916029996835601468837837682480351796215089923121428501787098627318794512497396496753737007689594294855451908839476677298169876135777876840155399517112349168440993496410466513450490891861605671471642568458062858268698091787382462300987111842070757259455891254818754123267698185753540189191470953310151862091306136379537324364451592337994025823429189549820311002469467545859012030856253021521766098826074456178580675400132203761961100000497396097826560912397502095979249251807998628249171352436237794671864495923785679322350450513573461804864632880977745992384966968334150675864441467096090572560174115703600514824256055567447734270048844355565932883780511094420218146850013980972752767696466869512487408614632009260860987998894827664971974613516310236134094625299338425104641188915189514854142376903979000654282371010991080772585110577329989213950718370196076715815302237063836657258108540867591419724771412853607767368058842188900467912820100172666415242063846231418337551915244654338910950960874906853475780471892800038400139871109383395991235503600257594427057017099486374351144172039862613356575084847507658220817021660254494290691396025823902923005490057069871428538623552116859363653133797775119413983222672995811048083755279494498248669214361786660189040555206291412805625651754720968873748773288476115113699010597179190597248756810164036860548550976168908179179729333894892047299586086650951100281971494728172540586587707583300752483998212073771046675781549062549835906550981515713403214291452088582868613597081906112680935715594229684239488332054861328556529330144245831292202167313359242133022620141002898544003134013511183519706377130339867575742443885781359369441840417219309024139083723353648166834925003403733594659087207636268368754851828649885087529985108590944639683734414398476724647434958409913287624281292276779917881969398829318205468348321819199477601356878007364224878620624302155632400453951865442461287656235310122393792837628175090573083743572495406449894116853488083351806268585548715070307944446643791336997609193556937619158237484352498446298419750314389171378621598966607796612660577932794874657505195725871488561400898902951687433981851813886688761454497886394345193420842288254046964288937424090499364226621514489429002862695961024262625419058147717626041807570668048969620110624609474646942629880009244273680310777448122360338384587567348481651357343890657865778427184464910267649073694087262936406813035030838771273827468924838317263521472867665756958427685263557395752896303539992837508116298958288563166679932282722788471116860003192063701311885403263504015875332797792285205551516217647043899387373610965406789468970255169277390195308867000112905744049627814659642983544280075162334990662283203006699151776763246493192976872544481213417013071610021161620260467633090997142610864913564722626845602078653685299912549017329441275815913681810883724590301651683909480345617259024991533545862537251509145110301174335242676838124631417563583485473664580219296155692849259057372729552504615129576911024902762144166961106545596460253737962623763139742967715906654535484014989424848788028003775707830826933114680081445104460595920548682115921197646612196909251524439960468638287054654675294331146075257839413350928565134589723708744444842190375478203987983965398687502444696251886550470721560022340423353691374910775198150786415163255401850655492715431792917210546060969383286760268356494523316276432937210972072452815219535630914726956029685383291491774154354495602627357942219395972100901539525460322937567400528132740101723021832486843463182900517186960565260699859299448090500138023642683258256977434137804458137557768465641672978593419832619532817035158999453507072238113261147137558706096484685110270924155234566578698330516799594293017129249763745693112173879295746745024289421237374284046596809967447556086191147358486179056158765017791522965167770248821750547356382615591450015248837672310095314858813299987110724907371096510369674754514811082080694747703473660112160860063154946167225091975810005942475968040743879404276213824678423516415708877444951480721314621098044341758379509439060853385151908050577295009127337280422922337645672897043505804288875746782913521937582250984360593159838783404279364657170025408646647783276767743165470411638880500169705214372240228728873950988517483027211394002394608680696089311625101452929150561951837870409953442027522654596410032843784871294709622636998462073902944085486863238810438550213348290374232168515843547917716105243566859674064938353440622756042914207509005559891244212539747476166494848997641953768718283325313360211894142383952275990990713741545881909736549869542157790598600228077848855826822866677497447429917980059412715984145550949101021049444960342772965509522592794626419221447428891733878570729920157074074609693869881707154259685785339706539293883259982914086784294331728460965757053049379725065746360946335830929866974817300419470681073738087501614995490409397454297915889022460506940805884084747765388279416176692678049638999594444726623956998663018292277250725713867991964106408293336559567484831953472448920964849155100541798874446844791424608515710817272470723746174580366650684375696595532516350726096540405359862498256007927380297021450344951168941127512446143349925224890905383228787935952707092298728487324335737033582845069066490427960214310430929926174923321016431874454925590306461897307957685396904522217964158049239877561482044837373506875939346587005154680230556278846842535639826977754783914963888669140964542698658975317464249179169264368775293717936068129868367925334723662148577860494370937606543771810044509947224886440683913285565749284501446684075636551726411695558653969531694894811141310606559788853905898147509022902737251055764093058093756125254454225277743114324686777132756438090752770856945507963906093035118282889209377601738159594351170852741765555014599165375774179011706958545044338060288805934680494826554986356863519917637182939790737803229330834006261413802582232595859437907985100104469740153141768565098004857604435422634940077711839876420538173466485673682391486376272277127211061483183648267790417422477576271959284352214769955662775630898807408141223714484517453267731789582060519894523370443794035771987686412628745326020412585507163463047809282331555529718279058931940137350112195330491993368776367460938612177482926360686030979469906891775093572451344735264882154244756290019683577009320801525385986606460714936594066633924082388011499026327190134690875972805719397107772775278850056166765000429392843340107031962097385895462453772724818902424381720514535261497356775419023513482496132631478533573559722640958384134921384748909294019492587913438891344748660218219760042507236499025442231545644878886795652662027834699666769551134006266344603666589974639371327762322025391037444502504806515683175784772857977420295515468929334114582935416247045598073525244863408784916692602185153375093721622502444895889013281349404530735473603425713182723281185417128725452833269913759215504064510450548648969085289758819773224023643830223151058292118474450092743954087506629649471391608494749046548886912636283690856593311519412507819925277245403951103569740421136020696959955249116729869675124125514322696789477336405996606066683089959594013640825262069726892355899282376533311896455188965817089504512030672368891290356981945245049546515706442521278707121566824159084576717255049073163695139162736114549594910934348817879041073719410873818971248274561331299884240548008097346822418661355215961029780600104685669394144270883149749855056193400277469740520950686447785065225653575490482758845140792579642345700034053967558037542877788823430545605568178489887649659553713556117538189359058039377834243859415904851421022108193753342544409106400560314227809963284917034374867762126364298118840801847313998370598509235545283552884738698791354314533868280302741741987668765875632905477473248821286342797889309325852580073672506131251887907395375892639657499862036430988906175605047597114240331635720988226370436508724787125189433766111596543843105250982116172390887166621686537182396514139222501100718655570515104040153839095741841219964674151720752647465492807866946463574696021068840998744392096599064826377078473880289356026850933101377030634029330616097709856747634217590630767151545846520903250107946114421965150287161946033825991882173842480340440799696032034459101035807741602251787826596646898631296686846511649743853301830554576548883166386989848962709129977878974284453669797092700823655480428467293955384552209846433928865511511455806174301558013567687802644130958089963195284389938583395068622700017760877986804369664309157980970840857107340102825697326622062682409757914261201555542486171880454248271204595223919508834847740696311970108395257936410189804940902369700267234735904795540225248944190036241117056900990934323863976492473990371842436394610186660654599294615105001673380660348048884729292273611658474376410310745554885140539407402879176166659403799178486749912876408243991316799333138366315000823893541927910791254910719712834816718664766704799786996958623621281434865471221111285181429348260462786883350470851553426489018982483487141532473255784061560504198665176089496026281495774300513511000802400785741670838861902380841900351330873276006858400135290288814895879211895684962758432022749896089959960927788686487607447931517929426585319672761044707801694973872321907004869715170701246829130913219269918533520213832536021249922038403163155565706734011595980136757966221611898616394889823306076134622500135234181915102004121035436200769315776030447301175287995419657518203570352616833662864117076693879853718394181893514730991742826586231914031936682229718258508255241551569710988857997191315888278852470553244464052014079489350329509502839419008970982536779231925098942221311743294837561122848497273531835936702888685168602968567867849100610864323608921211922328743664711250593118877676899574217393342419753521817192402351452152724393239855202417121562446185074559753042810736981320802247140761634614847348934528122053868405611122426929241026319074378937946910757962977790398527832738880589892399172887900158159833594858390660961805367651077236437434514331864842324217496798908712568648535133676747647590730765924926284102040555263596872092234881050834193157139331948274475080267446386660481932449422089546022839258873471924988162563092613917267038968432889385227137892048218122383321807827678667839072048568910394333191166452374891588196870676666654705112124638881085239652987507555422865689192170009439252682172388570319754793168971168397915572265152342203083904273247128939127803568618564083934402701514137520307273721482603421224277931933378559687674777336018704701897447239384351718503824877158737162198163374988961990746551663106621062562958577068283017293048367246248556926571023155766190292164667628662475493598119833651387347786289247717555066130663612400758300400026065983079365763919172352987409568590023404694822615760881526830909436541916719449170055355682995931326715025742178850850686624866005982101957671377347547086116967804387423657572610907369662763134583087931573284313775688186393485239958291025686591158794181589607738681096471440263806290380415655026560850781731110388316021767251388456356586601749211084471758405517083692206321672151977461044475086033598896389489176068164154294312630803709700959698422201824670094390481807673976294335199599623091631904156968683855196700138096019905821303745813560349796294442365415010558553617289154972861314779731190678846663599216077401403533267894518243275570905371825215637924708581163573147175120184406528623948557276656715430355481119263097352126946600650610393061429798308257770366620041867169189595480664456848312998790288673102282526904546380829555983055260145876936141047848106616205512533379948978390011873832317684684928693470380443165579290761568702535829818138849139038311920839515364566055321148348643623887165852068155688726166574112148106419439724537050253292576993658527153563075312496242915179105158813595862453420544484728673546571614198975588015614298405603141092523106233111398744834249790239073576700424191629700542381644015475858591227362540060914333754931259640170931308493547754902111829941792332301423667203052211543268176661472807070245571858685146095571327928263077333421845263187971767711373119797220979597007058280807611934626165798345037976118561012858330735316668531209437115757909552513890099913700387526311822422898525903576505641136646284288142997150547705569347484114524639779265373669445183107722899922194401152331463045237654381654924179990112119883886421278871708944324983817073505896537381818277274480287637512525746031570184734842534799498288433101944537936006442910512968517785644069628703601916081407924538420367688953951345227369075189038783431735701707296415935176422571234735301355753790780451021158659075936311727676087123960414764894774145655601248008920514526014977451471896049859977708672325487248324039283377220097045308065952578206759834027901425618370339689903667725813773918871484298116813743632012970421753774028585035669682100006983984037828807441364915706170595138042490351476892458149230131611370649307299082772796971251564988936673184390152604646419414059247052600323032939222710023960413073236103507483611809274715512088367825050867238564289608269429850781913053941900473410134203216083271664655654244663218035417158111800341544442299829370506893012363190560547458709953246880101128076460080461847431721528279409680284078781017871362945435450208405352155952729952620408705460977592619330189449333127324990507266339545722839389519480798954591698307036646676013822840978253442726993112521675169092766556720459660008809997822911633507299982711042880882108632236407806014540836374696181198570418156266804780057592251011545576935144825780402247706639048076358904488537128131619456730929247271163141588162351653684851793075556778420479769465724481689935891664136013292319151548906621748912187033094790386547768127445647586279403843781543540542038229132421874527431543814236434738912847652150575647780229482095107849209352660013358038472389285721868599800279839052421182161858520231675524672938120168177670011221838643176938902107466716068806117241439688444294719044537308934807878300139249745822904093731293274043276408416096616892071094513647447394103671426229455036062345609331917829243802825081134399192142322573057425584353957057866232962370588553838942998845628715451605543971295617192112739091119494119154112159980757138829812329172940286497109297786515432535657381508003636862078814379802138331587252707200418534570480257894997723328439515359033721624842287533593692593709228494620826687251370578842739259045044562754648797503707721073417257244838318558380005167738381970457400645404565476802523235185504155981401985375575498149197049842167223452488970004667218248500998696541888487831589723495447822710075953120269522006351643625916746972936906509033025701690688046137983382091854948854116279545261510459701051705242215706662550200106345951606949513130748062727731267501081855095598213102533788222162425534181120741857330585920943416241637041423644211151654288659148891005133549354480749675285215114385057049470929869421956634588048446755953308157334312904080965565414674254157897402174974902925298385791400884876194500662417930710063058513965067416385765602530406092669416261082950454615036418741630214282491264645444096372060874514646175679796449417301016968465128086265982791950761192707752500519686125028977711902702158206509361609979914593331825462617387537384522632404041323083889402445922731495914350393156876317672916880687540803516850171083999484321701351775401479015722998739972345888688314823618724642314632588354318617787360573285070940222244852515089970743810885954698733778002303956919754665172030436104157920037886277304096696036338688977548695709190890747216037852650026870859290118688206213286153037900179772435593637281303528310135922283100375403039301972002147388327311460604487141474238587619129515416425693957440790219711212585363159916269202502553437136335962726285955076209722313049959155045055391823723569556223993304267886775434425883781588448846323543814154251283702658233727565437395142103112075899017378705919519527733853166273713582321006429474190481908095125007522780387220180495411476044482454823479723028934883357959621222215987891138918339416238025163315018468850684351316511678901086506595550060876173424115487907691486658720167141070578726347728070259874579304978779485885140673355828005735598326674761191848239592795729216238326424776328220046336039569786315826625708937479212270217889284194063126869340886783279620416736605277174233127563958735236687617881761530776796235137408782292519534533308137676110285767877348980690189162194660247428559530072599785807206363460617286592488584426667939036746672117684825267075185076229738291809062124969303357362280133377238627825624209086094851528258075208459010249027496227080868821582400864217962314768267360578505346833371134665163267457605146285560667889344597208529261354587963454767575936050546150995829140976760594400003021259463499526085201397272114418798613820480313633422881473752434693566241667927599471920052659152120199594171687988682770039711202799678744198556095426220050766348650517618535967029630704558553480237111857883743403102272717032896020779620135904792452621923063623855457784864384608227777759129613848054043986954681193153593464426178195159555928414473466427640953760524741433333560519280285078149471092684829199748195103323639769148979516224280151198281108113734318596184642599029844943490955393105715880061315760739837225526971556727418531976921072017691098511009570757291248477542000725746512922249092930255810162629493020545910160473553639113802990478185053989838467877049146823064068040181538712064885562863494481249058888142452035403211579891815602087605048904740538403567516154239399955957762465997046142735046938455342653712741275852898625472428108208064093261755911113263183461778539804349617105473306435034787551349819751573610168023592091234587108131072656463325788229708020854720412657833744513162068673563785252858963427620103165252995032936448897929112312645989837515492473758413625584485554170594094436553940094889325475036731992931159351528717047844611098601498174905488148854601229418816033597756810187400695026058309821754007417759367446450803269570602760532581586966382561928164352579748277526313934129047145561036532926360760804795526589299314274952500413422549100046761882527213697188719554089169718620330770264289781962336599363131113467424827787962943119544646312173990764364546054143452827636262335875177084983959482077464238959956209431456185911036245201277116694615617872813648238719255386638187641637076336991478277109861153859371120792087947959428037303213268255079081770350358247794505086886678074328214530309199835314332145977221504790969780260900909645456636767261671611793506181313111232684322289258151699281344199201353218642376213050712735623473552060933083212114249732416067979454174384286077992771868389675159378573952326528127403526408380484057806149857134811348317307716811471046652091522789106416480342865835426125972813517979111329340446907212108027413701294294693608058380592770427002475110721157530769420011830871700113003277893889912834961438137383702044420371258954257689004402948313247140418862915796957998126174525116559276800711924752660362527297659090714577391474492348605976912743502372098393529821241795916367608935639139564281844320091971829916676867647081032942790700359250127094694639921609856851726368562108574814727276271227826225421914235347020499423388717028176577979066549157850218783654149724919025934280639110417032427592403982743541172097725088071401054193950196008594417656849478702133359121589331756076339722571021779841625312193830997062645016760622021188687266598122432369147615443117198802751650647771368065083387046184849751899153743361351658640952952182437676946154977038409399647657656709369283163112033131715571286988956536053805933076244780121940253174687381833755115095782021384180562346198423961186272337902879136539868706056262649051821817110456343568629699909100232507607796182033610693180804717169368807368913791715741125349132280316074796244195844902974333459685683943558342355588649770527252553356135033082039506281500993249737218393436425507400324054944573603405142081717801345830775112602741019748934672391798201505135368409611858407931891975370399816407408026425763416198259758799146483424062373814392587663006275393883436147746492740820416685008142762057293849278515036555646047075891523751047338011373784855210247083865357428578747620030170487159213740324578559017014773523905077814418582909652919654240688303903412547683983991672895779991733636866894144933488291358667067289656774821049559405135462095832192280125737949161461080326122744761868440187434173271939924566698024806023594682412894516749325481485629326780418117799164316771308468107961636702332446865105420745827947054445403168802530541153090962073639422691423343609997419949417937544279301078434902686775620399285835537284008929933834241010074808674458152635251124482300384267331399855442624604839400067219595536015935626920852187502096341724150389739100665176160983701295399786420764456762038726270912388139704922027970080115904172905329476171756454639533438131566907580427368031874324693845849580692841728771508065208479048143522036812484970292884550636648204377377482627964388119879502967286125879392260984239612013275546039077615478076511436082864339813340925539020519073027770186793271350503511135114255157414807813620680106606965451316574699246782591305270876508183343580391467021409193213221731509982586301784996938993651179648167771250553020040725534039143886161926495352064633973785565089970043756900831234683774660001332756349426703963628598442964650219011218046238765704181151953108620896538817070841965517404730977419773091675079213568663082475272689305282053569581276082910566274275970245696835492270596693007296674406340548283762074182918386685331350059699904971386486392837646154086954424563316500692356587459786581143071731840216138408407755333069590308715662706130194429960297638284005492770529432000391529221337957634359274425690810469029223898640155686612236539657526640768696031943890028059160818861223558602318999927690993101521232331271026034057408745361308015564184439901200782163556888864051552411456852114892714668909816699222568771406993053581561273535111728861357744778928495613818888724090486313374721437690085617929665241481094654503185918775255518612423955620647125170391692458510280744345768015225658736729748158445354180062874703278250416830148313814187520093241510072968501877772134994271309455201039076981464046606442946513258176102786879088183115236375045239913877107752415343537282176345788064463649759934461941646137477689819467823933163319468103820741454987938202588428213370370074649300357410645485440389246896005676831781771877570742888259524815972104026166392337131992693666179042991301205727683987030140950427484551633686777338361033021877308131952244124646905824470136871408956649489551786981392471595545176304028074405615673839890069837527745693667465147504483343552296563159670894415658207921271746724723771847541076774441080461931776044809168099103216404543364575753256557674125340811368585938311480495557097952109187658822981139076378199944273217334048232833801290182015436427064038021301163047661608499039427007076586011571669884234781890093829904846648389296045054726840275430108735998257172209995383203859196253364440976137914030884819273464571295012130905641545974703809658613018934059922316294410809113563062329321877916767679458434786757872088433844475547807005762801960050487773113095589783365162860894128791430270449264132976736943696502349832377529518681737168148404694649226017317487346460208377998328692631810828154720370182389963598974437906815728742721319145952306449597134216405087316636141012092017369907336810041983396889132900556548860595995114944700415676247813806933856656995197862752354743282099681361435019417137528363276309005067538665273602905566266559483655966207475110421691520139526109147433003625873829215078739398160998645547022965767869189597968607749564421268037351661561552606138912785677781450928961364970658361796182476780477943855749071023699943621339630389355793311217761282894657640939299154350557455250413908933245881192156594409448352402844628084480003956216341694414590091295704954488884039594147258314884035847449395125700200622004964904808382483245623590772210153448222603545809388857479977472095236407021005829288006688839200700552552765011732730948853917646182371800927211524973110179250466999096462236626833681119248386434096529390317662120773948929007242478932518597035461482695846932542616516147956035853250591703231065654974770908565944321474441541969511866364295946905405390066622104820395256691172572768403945282172361476499098313566688091221960378853360607886514717645554009463498764864423297502674920300643332759473211679552734560332634938545819641593645068754277075759610444029630336009711114247065197929980476099708074864678487188358055159146310505821065362209895388365261671160887134121297083934251946838620694659140698568435270601772424510154230832798749082160379913424066975722681295922790074915726276174495433231421640088284441043959189688003824832265103752483234260967189216701165854694454975988852601000543780694882669431377058555059818250631206624313473417839166440042856422059963800882224736096223657276275773627972271928979923111163480331107202309702411563063168088664656872226504904095734506299170191999551868058546328827409738017137437318737071850216818841098388339092881972040027132297232886593659704163203811913267056522142870606933829529393072326069994420508417017252658803327538543980219932771633331062600162603221004121995053405530242488478300982715562353370851823236052981251810049046492714393667610589844168453537393965072358833088651925175197481422334191484181139121434036365834633525026595860411186106965438202421758406878210002433953774244558307531724500202211287228270820420490215962984438619454196896882865063644025658157021568608516773700086999349617822790157743700100641120626454131470050087686528730922793719961093290856680147308624028013476940423126466053552622625800308683565542246852985746301010774244522529486746037800490418046058927657641594764802807713405704984663678780965633694746883571762675707260129737762486275507476664025347865841060634801965129058987023700175310603868409470355386649516155878933381207785757957321651250018034434653936278316447644662354713815372333711112598908075050388475742544201194374014649601935551992931986468883024193334298802928065713544268888995203275160564251496323419971370851310457277277681400487705237823315802241668096876103588504330886767442250111441303940636962334999379659576045199221631708160026645009862722165369981147181846273258521158804145712428693246738861910003964000928660716431893463696183454123892904638018659420857821647922907073781220967965566599679217836881586670329300497742990925304442237252747657595324870948132563615266769557530556536589915454907165240577425146079360609429296161362617565908250190690917103438973994523830727398932753537697618883702453802839436442558866589813766535984237712817995890905819430450996751617993327561133989134407300773564288363797856356003229657787059517743005148084265720902130810403939877520672166996612715335292602910887220576257989753810491900810776254449081902492837188860564932108670090983600884229579750360709708490097917841261224944692587829665551808175008322448106017797415770138430632891383376787689278318805574024731554675593770519847819453418828590130003096345476664325492181853262016540636941058299675250261123878092349089565447735199934157032349291239751620007201047720273074866468118595950655833162320929511783042901016449965514615284620991991636081254191358999128546878796324876781863672707709415521605159024252885824233259150246721503662358252790313433706737269255876350712216529891803901872140723789334372631217363811353768047278589189764368571480424938623770793375963255350313375052438394600597852352218935230399695224354533841491363901086390325751458936865296809146941289446511802682352617815691998127914966650435051122938695875122317399462550222468247886252042109959511706884785726638963488689513862094172236939541410316809607834410219496831272044966904845082668493495767195287536032115736820515162453569203991876088408416588632507665053359132151790161285504840087613283322135604548283833924940942253360917870253113843254417638410598289525723075029947323862926937709606166541652133064361734100249506354614689522560438583212231100739386813157822005120752972655087963420980473715053988589856359340262159199441156583406510491482897864453875949144835840039226186154465379709959443679349403149401554178475928820667057052738593837411745680856488432660383555889057286525090712611247934200739247601373903029990715470357057959369777790502878889546086000633240450708975535675196813828111725619597620582327208891192631736225005187660101210029967581564847256813988795346338388479442347285886244433823836494803257132260191955877345284929597001558721505169426839365185950267653750336612983873209669502923164953504253255680376137429302151237024716559332592319429764042094232672751231759957950427715835984294782101319340026322741446114648264988954264393484506351908102671779739746089605908718636479342897770268052794904787751362568645572250525924307777480854790526578188486092154288607245454233696192948605813771847984572503422182495944278865622550587140798147115848970880256044003668434829913771082156875699535691725228516356644442360782541557446200204863978932008778018214004911556655972437016437219195615639328913469258359671803296542363446604689960023561732888288017635855839235606511999237859732666175784380224893015191620836804334869562373042144794325076925142226678055221224362759849987071282012253310236390494719187839718692343731357723423816404851658925857811522684773059645448278835132825362971670518975978549474729458625128556913072598612102210004319370907841686941005230797749512451892520713317068376201876013287608701659364817435875240829197397880668224727735522445287586152137180667733680499711472968641853678694920726895389712300098323697312675469595408435083664908559731577876399752148998233452872245257122741883154920081793855914154253243587122172198560763192088197744816894969489034999224621998662904848535770279332981389767488166379581334006039720934625991166415867830201481670622136547931527297815433060188065572857901034151390433468769340082684575545019751013983202261006208397096942143488283363927239580207728416177801290252784723111822214937515081129262528228917470918074258368078748823419705989154140480809483635553702245416362958616729635776177484149856279038669915502356397169470943330544054770024218285979078556630139600208862644393110216637902127115833552060841652878733863407203464905931392379687019373052656874397767241545705492814966780355329618594822972804036412855396555694834861319392338251753711646598542572138803693978072190759479375400166287298060423430673575472573020536436863653824225196531070265759990248649743237904506470569071542144238535971470320737348831563421141215538862072876552518246661801799711563127621507373409123679055811062862776225216525362655051889727976200444714764187042048156146306528473804572506657136455156344942396237177284681953674851614469180337782266162188616209937613076712627952554376703619181835511056115882985711804823497398388334112512381242260154758533252573708544682155858639107672436305779249508914727542205795683232391860286687162261025454861077468251469651682515315684796669907145442962394868969108336930346651412730321210616128996552275430091849725633111575608152143373157931787041458986164626054588999260388365849550993173832314607949460185331862244570513142643691245889710569642274982691456636545118538762566538195722630452029467019836226710317304634926317794715566213186012648244700008382245748772087649975488136327758110074011520496315845509238483893179860418942461723945200731721838379300369431842535197849846335566137461674931881503895726420220447932040443605523047867208890317102936170672657262460306254304007775781435932678806672333719794278879815833609373844062604913355885101816383886897751353853408771877944595212244174238178201668037336228536321637332422593040571519877228424215068439406200996483887860255759164297959106040868570115403375412315586829677947154441200746068832666397714558657758928537468832461833260091905603796360087925575840699089287788526550456929368012656044091056766673316316990499819681860969853316511779117524724936906050658254355096695976791490143045396655065882630438624286112054277067390454214052142904490313644125556372485357973756734978474718426363090674941694303788911257667073048770821924323239665904338391687427267887607973051302695056680744554069728755304776903996496293792111922676242027000376474885524048294560950149084058995522706683762015128407461677632152572632221402044696546125984118300498321777989155961007253558192347348909245215636468136653113344782638476237926016173613878601420268760954322701544488402242110262568606933648344563922890162579854503282225951585837002169702751283437261488691343844036755236939839300892577152479663546224759971674764483755106614521797945123021769206757887294230323707480815772168634046290419326350226003341713160495650078755985820928320394322149266868219375866925467468000521597171077753395209176418297205811879614374501611089864003373718046973286297580712788037009145399528841685829028617505834423025275168419376315860140341050910459669843181349374754307938134921835447316757560436884450975977246628152643488252973241455813328935373371263326167930657149153297270751203012108852136054072936589622559679020190958971434094883178753963278316485221890255635641267043306399411251244621720007351417572729238665377779487597247226418920552994235535564628597967102422861537792147983401517950768220983302863999868485229172012322509789931603777500273053902501782300310182437727749156759137750178927369688391942573787701770585604792468646416535121714466385655459955574368199191579101983567155133745402937532199437901433264629874627707895020496212808190026559221255803963730194123047221818355398367172977546437336064021882480047371853212367382704857082520082785201179032256200260731291579443483013371016609229657626832786784886023179949544188137609917413267548206702336601521514884981600518615048397196582959184138500070387200035506369291184706086769807150889689906939501146826411183081228228300463355572376228692317547172057825308170869898342691411907170918887181855529257281352390481527397384321997910886588605629501180627019628263999341194723330037595157245065831787605464204336008309926851861732405170155312885730421638270554438305901486166120976264439085472596162601874252624724664222181991653270726567989185662356210671860907658058433370763870131638256064042719235739010339697626979918834876072226485078515573721080516090553359703505085597358260069312968100503257153675259293948990129984236376203122954281205233026340280236190544857133554802728803989943030437935868062454729793961174977355119345228278063805741982806684806649150452644503879245503381728165082617288695626420637667948394387624552718857927343503157353759156230747875628723518828730846126748726216078780853670574365384574898362157579711354010843999045612306526513278157692931462171864335417253308001422928974078092016636193940602016752124253543712267393520818486507530261114946255895179913564578883301665850280700267512423762734288738969770057437776526828596910144953493487481157059976282697161213661473194914478489582579261494166469768705644633994241518318801950598947005826887666886585030633684940003525620779095977134124906383199325136929833236883496173467805087080937497435127580613735980648960946934057829479142044593689611677304892337957788455299793176252278634029876916586198975687870195425060246321844870061334882514897334315401103813245454298670704561007547605514715563006860099021317200628004930804401765722730908873748112405126392495537802819548262302619277620452130812193161951028614617291269620785710636104415101436207213883100423662718450572705821534793752815646822234795342495514647063283702784763125893798891647452706630160249518547826756075887611045591656107978269538032240199686398985824339673403236279499704199001583691690576283236131727184715555259368615165198104087975909142319414882024077068016433935721412252269716448023328884608601501170579726835662910294766274095198826912258727623063969936568735450838080223700749235966593488410478274181320375227024061855259008188022862394385514897457108710138368707107714401217410349870905981516448416293462927776272188938705967468183468636487250487622955239471577147891633082252874243040801465891557967289294942846961573147794387800961412081283632883211168365558759082463797300951990768119713736893255548716666200753944143081008543749227980720306689987272539959203046905235687845136540111793026838879505362967560617496071399844758817764991639357695066856373084374238935149315505922741299390980410472831127570907479806558011499856836959125261373317029782191323971467772070585960005707950949652975453338337492995937443514113535123238195812738935889282870578275312255373005878199869753425089099845777178859548972122610741934867592271547298379594169466100396192899799291285847698290915066079019952692845047953218893987901846680268043025430326131919820243349737545611274588909677705637474600394266977816191656923473791397894989403977138101908786618873483316686233209506922486149867733922661927582899918763440965767879892618815520603965729192730513747664931673787020481161244185905251221641870194198089271820394796857276677325580641148748218843731315639214743706820301930410493205403675323222971121786302032507867772309290878931273329624855498249798066222298894166922323119693523126528685038118112279979546129614446352696754241568830867323075756119802179275245731807031943965819907463211574588516037304523684940354673674007468925656489174715786776634842570167786569262396830383236078859868129542137423843526112775815575993736319341813075955133027969357128538008737706291856240398986024558703777889332354251400616521584804296101762802091806675578157340204402461321894325682123032497725324151541448670080315395012131700961027951815873594453406186629918591014867741721849523024770909850194094467337944805373679756391607504456412163246405790110275806086579457959353113218531538164208742944832939609919933749476064313656499126273601933204904187733290507997220673514384039069915158205121704927255401273360529403238089829146685619352160557036467858502247568536685102903464908136675111112573971124162106277810108164256353471206034285238574058603521323766787933090127576427940807986179938876603934842284269132109934459024223883310132615710401478045675368186126690059765577475482989630279948725307931605788953897576763861183764968257067735375091577854703099608818734326807385679690673038238479556115043771329498554012775209609520235671468596864921837411871078720117014765287914933511879579131900769197225688969484857173967931682350759087624558032975467555913371629096946930052050184266737308913095185545895767499341372050005078816350537732868239911541394103822043224059458478901818289349873815953863620460215358013444776399633653553881915956052647912400386429203576907474720210123245018884627490650144036387399078223685149632250715941267523786495011942828957709539453175784490242210336958731279265213271326280600118762082321677763510247872025392944631051550472945803415286150152594860685672092835501863603762504515936973844538189799126855491120404561744709490431860521372829357937051348607019999353555761859401990573944899664766477943397872936615616189668894107521519021805072455867449684027070948334433704186517440693726828545347269536730014843963495504008494808797499636026897371297272156180760793269085870557011348052718005053368900576713171932646287842950026528959565694925503669629906400503433407232682538771925399922382638480405408037423972365210198314787954278183858832738311096093073609026888352666746756930774275057290566184331852085910906551158580447831517008998270672413937413442126583992059005563370584406222590013647087570311244469550571973634256348147057681584041464662756584481435033385532598316852704294363854172858260673903645964794420221309390982941880131413906443348961057907467343561024885808142692971881983461650121062593941215421735494496478398356876055215420952136849798183393419272652976303051532870114181578551878604773569533989841184355448628838791938546359600522479500407000098004947170681891911198201133561707988195327401751255258892601103536971399999216954762435533846116734668439105134604295175514634134142009446595903678741644189176656481150443124097639009985790709439697105662784449856838283449702094877177983447387571154881776956972396689333040801499931614636425985956174747053602962898020762589541427005997565886678746240025491813040919530272488069203686162674971876662221111736511636730475851686240477949301165591239314765030786877257519152724554031614560437424069435850471774705301730553927517063679139498540565310370701831781810537983776949461237440742838662974441259948584425951146594729832752104096851162003950684977460253590206302329532719485002076147057933034083201648445804110095125747191194142664409247304131696871023625916801721212045414865516235645799350953951392620627477726107810881877987510551069889521206833003264258276663968092789586254889615987091387144800767593768449742785935470751145161343718894942482614106580855794330115725113244801892257912224500716239217569337581787406074645914985072286933048334131379600916656206197829549751703389803961941655484428282535195784083409390955705210845738240038287950828584214656715227669049897712344673474790668327396133050422003062476437368441340113008936537246107573065251855336743709865339010473604772402075322163147285092132893592080786246126593642155132145283178786154372376801779803075171286974057636966486429652196813205919740256728433643751881440039626780880596014868326124884017916186802982015118364525030563649135531665978952968332275844761750685414680493250622341227551967056930365701725259954587361159378794921441956602162428107309393292426576565478063820312001988795184487923440795364822266795952517321515422150248702531777957662736978974849386128863034093792003253203886998164281559910119262874380216703050989192282545042472361461734571855157038156729684751473872295130024402138964353634299150136618923692581255107536403444901429675314124687886408729982911809956612485102956222230312126661156514367893299932507274588441883609128285458017120243651327809861641378907549565219499721759471368940628726333162492248482712094167268554038140781478413017839786327681426523279741208492003165722295536784347285617921007251206010083609038293538528929694950335753593221066557495431742200377898281379257644712846218361052488567735305678471423263818139405957405159966310401718767894041849991094897987698042069211466335084403183099221965432015329215993901380873788809907326236466667427245470693573219977724127228326625338178617496607023671461151674954023996363633145276843117160263998336195052579781449387241689978978972355761106511510163510715853826172007168376363303362074992086884847049507706187307794279724301567320647465074913828958921999846711616293383182803093748057331535372370928582330090114768137550950575205518555461907209985901805779398932553624133141245338878590219880433607898117110218926337778124957656945963020428937841051149175270231462465530948815783386805314499867772064088758285014585670367819931109932357191610235245665744352504049702052002117094132816017446292129343291739919597958070932344961747423726625581826373157039977544389580690900060615953437228240285624715617151261181311601138977580479999088655598163643675093753973579041394798428040324218013799581259761594101782175965396407263329120872254324064128616647355184435753348468067597733024306262859067762158114744313445601280845808305768781650412097431521813021821253353115319918900707397061913540899110335911833794519499110805913654052382621215644104791082798245448032288054137347987628534935125174282086169947547571490778553955953194606112930023652898896313256785767165209762526027292857962823572933526185917189691637397635918415192573152926664170387867579399688165036209030928529209453867238874309271915671273614515308929329262810567352811210106602391140903565535884603848841739642538016989613887501839727794936228152629225059366463609369058466516685151636344897996838029776430083748293985617185694880846371989346132578585490401937206091478989675913934346845350340489456974671458921121563209295280013855852917036036551926904456334459499274317872885136118853714675642742262270900642839400069264243375699699702568089895348043789286498859760817691002445515381896704469122250725808632894637463717836982439984260409228439970413353437559563670275144501864203422518914225466786748770340667918062763996044684118427189957201188386657150446673610014838475646386471901491293770645236082583552418883369694849408038806237306991265402343168398895795695000065529514125880013820803774427830246072201765667373418767579383522267010055824460734248150748718310348724889087365393516719518632784798887459827175430928487032905187807729868335833993379365371996623914634724003539172828810423706647732056524693087591244601730785577819743660367676085191865077517424708153340660225532940626681209729062791234115144769249255348727622282334156471849068334942120628570125634244972036540738411487340227308257154798644792780022200698977264236610489345611699258641834179982737124042874102081588317040801503569242981534574058652962991312869357770972519671686343485795040287756089270311018622161649538346919285329284803922394626442598000391740300776527863795647589022438272371906389008448402246469058416730539665051119350914278157850751276511833868783313660023257257171427034005239395166985226851828676896168238274239344092008351564743770771917604192049222929978457640717376780587211442729844343383893319337955153225064111283287087364977210043915626948329380156061939601188325874792361744101804745240930255822571287696337179347333876926012050700907900404368940257703977832100016892424063305233830183521225308735795649617129525567135641135483098564223326098415020426282240389880818924246336770109354736649139995689431431997711912628775835989206294717921556953020027052398752296820926681890012102697261388092435881894524898905232416681765672554039115730579529290401746019440530705741897384291572960012947570682219230491405331829503023322294578922856917028712696011161075900496991901214710377937579375224464960991111750603852978896783852250330044430549503154219447784855076956422239286373057038287580220140554758339611001609612005260421478071217526018687886784581653434569337948833812661121176781679752723807679695948632550904351837353510757127323880674015836772745017755316849609798785890949914628383836673153018131604236588151526526889186555132913559298690204470795056666220005399737403405504296276615123332852959860038242238470101410565996843642508501154436900645959984261667222997272730121782844303847230771919938318999548413658121272525860709980596299718945015444374712859787020904199203880569785132593175241919590459539326275864880358823466256280767255662216498764330164793075028974483781844238937503560855385638815246925827128969814233659403756080064451693791483398615284185788990363907862983110880936131248386053350668097061130971548979086222519509192536100032583519629548558901899536620315176489074264563863135214700894841151251729823946648320667780812568333898263274978576461710627938297499451007118425410798766622881393061053099468097397563131157131818036000363454339754933585617578885724059724411623048098103802568801849884338864517244619172938726902608040792685958608552668385609077012460861243804630062795260094445029390098426873308654298092179190850144484889710768136278788609870412710227554529172300267401484388811137938377431079268669601909411675740220877773554757351951626153923463906486746731980002383375150577228063827703288644493303694373615339564005685473024821018185802286888616872505040563376668327688395843959067199552744858339571526470791265020869701547924473942404148770274135422679326036990353676449951751478355065867820568920668499241362010103943033941321623639840566672376091650867632152401902467942782999263667854536324390180022155568162624347572841445631188929945206128875673588291654264495071310740980935822375850201585103863255445478501782244880588910650030637335781962291362157997350222726247934751002623178861752478497980058334433742141994930837577966312975023654940744536243520734156290129933793941034671285063571378205547157626283536883443240085536228775500327726330300431706998243346001256340254995079941905439135249863923982235017226755673663593009280023084146910311839529235679792185528209553700094979957639859712094225269464563366638922222388579316822791980711542949034585479420655556605420526913154893221146079717299512685189548363115320720363107740591937936303345056712314520141585852051175682119609127796806126883981906172880347512912505180158004432979952383172632510248716684216093501357619036852903328083520364487195759665206474395838732316640417656857094836635682066322732388051111666961772674319515612546781162143844252542832235582008114220208097840041109512965022192516677657329787688506393762122353368167308009953559511355315291482745304734634999912138067805542700497297784786766192685032490624070467828087093971125926660651994798316780476362530985488084854757040307132928271419987966061959881143778632541305087891978182200137342104245950972881385059428936620704916525054714503190308565358742216140134412404043553691245147194690323424421087076067087935596885813327030530858453999489960999428548811318038076318484756674440942435266003782756740235890776358908948662942716240007220070818256708325079281830149620629301023153462636912318129443175952598969125781653221067747611781226690719075190328561166779310881497798568659777204142810515025661202033762076505838842778040347253726146385689815495780052409522761777764140660949722365919290171164250912529047097073541834336393459266168429612190373996023093113877918747077166659673121437919354954364946788059912402674894473052485319098619964838806691340685109914366653496332806199936350199802051454267605609340735269834967167835522312727653968857168653658975995708221979973103430162953041884366856961623317729451930907993458254339081590383270632293463258480103006098112161266090914793430632507813554795399175163435763703202803586438707414974178676604505899023325216501683933106752532568833067506551469282519689031137005392287280195652354305692256332675935329740970212403150368426957085710844002700716254605625647255440897808341880262500620944199442516058851879155545650129858939403115333850608050565964066200382088213503875730124187285822064045437170981192749075563089799912754918339910601307602536955665995754068389256562627224699631932693194445247713071856555081037854030743196969737881157810101371343355377445361432563997930802296567099125495139142140720992440591512019695673586605771493177074038260241623975478687834243239475159628940256652857694640907925282082472813555255962907538917325789699828956263111706606881620953692948400476379767994296491120493354852378192064391754833300464304631336958556873212695928660768170211288343164656189016772882709274466500344424849703013280153497865051669339215640850217177144329731901600124955100477299529477863593262053690479259255291520941337950333837545055007149098930981149045068158988099696101581581885432585206729021575661758155900268288668306208019547435033756069245994774916421024944274826784305593896819032025770671906516226703788758083345217685199508956043431217305672975233213972475507753380589894621600928783417822814009378295202312819007928106896561487167558181787077575872707356686680931979712145740999475158307495707673302542431301376437588645483168395758898409964665730626122114068420352717753602614938528884741160926157438372440840452798514372584903166972132357195071093398482375299795746693800105332005677520767122591912692378896263409327787369092717737616318060644526354122158785130794527009263411745982122000779441690293929289668240210616020182530080074772592786114895242803322308934677469907959326718799180262994374083155845093518132583303170652146896863035016059543280067981491648728858999331728950276879923183264860809319830246409856182309639590741464192318111256050430650483157922311668013254095592039797999332628587506612068399365289514630303742239743191750122103116814222609289614359135587123367462997641804693459767863165661726026334353551275063068856806709128668104427379519629578521548065238817835301181176067557978073144826543837676696560092362250423560920577667262913666263724485975786439999380151417304152014532968738942118141584925934521569636840554224534356054569290318525722238078488260246015948928086205131026561919908210220194327922278654911070916066877028068476239044151045870268556787409068367304905396070439750524635503209755135010199665380050165079937963077555925068762417609238614703349558171240576461953646430642109634749854441245809576110084120033769755059415466100361873555216867946741818766761495021547033979459250312367704873291532875917209619625239119459549935801566684537001719092842328496714402656193931840216975787608480851271537288110277308151780626460833748840393136216333324615065088300863499406211537780149160905232729654940846399917366688997825181407037510477609593163137737595665933654340628034573346320735815287966031355876996777533665563567072753398758235890254851476382006134825895348168960872612670207218410680607413327584096344158265388790523610141942214425516087752755456796014285079517157079554312555985358937106706734785634862160135137102791906947713293703856830270018285238311071454972521047984380040268949651592568482537279792878093890292642452803258279953947129523415637118788992123762977175704958022520344542156616146655734178162580480158628246176225450649469249105167025563408275625700707012093741896808607472987544868784142418392856844226039179602135022160175761756227303994800436548475243996676619319571292064026516563233095020800411171210578312942879372657592886997424576529153080567265681755436570050769706973835133497038167211299207804815629754518062846796358838886300750484355344857769283219305374867134581912704373763643575860797476773012427801690223333167431283411506231298271182186640776210715880777110182999696677970137102210091283090281083374609726133300210654600698601907881622180676792825920570388518428998580405995161412636162777413098364825215122864787236817951069838188545206522931286625620050405324397247615965209395772813725844956515392441513374648514841202078124558586138374302518347219182730178219535636155622948605371265793696365588777039825365092612481428930356113945338502439503319810841703747394747644714310289115945281267032560721238662663248420559964807993262036567980943477542368510532924274290423684427202018931920508268862573641625061969719689853356573723505858760820259831071939788788749912174013068936560118801159652212965900509014230499966748752216953571429935699096600852705905363780109794285100135941147012552817790208360740750245037829627531028783357218161667631944338875949215332368244603179958013038900702566561512101096544327823344539123230358961625983168387311832901443641593393292620214467006250757983345074093987756767447459118083713497860339285563505228608753047078809362152694635337883059983403132575342297095621763332930543576095712578834428998518442266327107178949322450478834410100554129310745027656550997686717550128204616133958429589888395847186514451009011008223742883357384394946562741848934789580653573251955887049822868510161622797629299723043559497868944762012594448193278989744226072744932569692100473512141018053399613565081292758013739807876972179818179460505327205375701314050843913727632400139883468197232214130567816770642489317874777320456245744322306576601560475379585212346209961355505939326734367638540432002198360304641582925632422853681039524313494557467782805114133126050200801251546892065463328162408576084590651284520463673859039793251345988816372703754121975669843372403177167597413248767011306731227712043731349469919996010024493538258080109096633757671044425933364475363293284074521044703700713787678497617605845020499961009058127366037240688442050272776641374919321215313874563898151597550760351464088932434658522145855206702692975780062771032960246517826323936143686751216163236420664314853932755725720528831507488390624757790508919425395277718813421079841195541216450208232789758217056561609127784651473027828709097935360358019362243315216491276658410654830898440936977411531354479725536410841830876448457772460980099858090516367028098215109690429984645721098439714392507552361852060511671258442984816574369028693709248160967193021453904514688225973646052048965269790245613036843639059843146557747639517125895265605842498013614184655618691286012216905480961942049973428565800039433238941644172317160418000777610928799250273824716766989299806754399664788142305565623778199832917636800139031662733627553968026099427000180345141362873929049856694398278415344076644179352745362431718025953944894577563377941921181826374808685747624728759827776821208012927198680317357729563087926084582089139046770204750217626254950815877735492359104735065806859955386654547555049676418363441553090812695127195767840813853975804856145728536928622123081411513366001188151738789564312891358578909951925560581518135274699953799554673139459816715841399005707282673386954670384493669684170476897048039670626150025372740997330812202932299411382310710799085104821703789268775071301284655159992424735862422216915528407437371980663178356928452276857280885948967151359239354260049617809933134812981827303163081064050339358071187514293255513826440218905699528084522588881105031859886623010059371978773598619011805608510757382106659223774891575596798732509879674720664220019415214472185127162086068679242908027006629174179397310101438764575713061214220875395765054772031878707224170493182869990393432597342182865949409541460951947913611459420232719181560253502432573461634991858470659528758352684235023916787432947582559911584420230052081624555938527573071258339173062834583399463674619220033212830111218341454275918260298061398062797690101200711219196155623941816447621584425887100590156635775238128663434271647001006954902317546904584763292049924511738761375640259987265742301965359644328975898479673159677865403448525486320445792406793262532605963188535071804171757463342362490417841456353207070127986299184752432259999221980140426528537540408780961669286933890824302595733105970235518872261620791744419649332165111559623191386984713997075389686224655365384744321497665684339981877171974628057413568586764968258566576628978059489475321878081615123819591493983147588958994521065612802800978496039194917870826491495948814170696600448993994112054397881318329180272241305940210969650378372188260455792316478205810974557379146960954383918411433812017017224393815454172323318533033825342330981213539445464733728796755208958211395424074143104692517882966239635207042181184687600987691170273268810286004213108457068536253175937585564712326392492275559728601764983439035145451401448637751713353163012959280399302612715742784374273720518030607523951026264796462935605326949684350400902908767112405264920530581911362862495443721585572603492491384273690531171809644043158492054182196137332860757878698067174325376980088886158066105723206419283916799180466193309126297875405715989335923968889450971374625230848462399680294246135690468344802841378567119845207745916671266584646033557113641056403375160705527512650645816577747669117647925336489779471862859053500177643389471464263620250345405112971290967132303862408638127477313677027445436539642248194362320104523201041320292536857193918519877120963398113353476306285210385303042423059984410883794866488319679484740769448725530521306307930838435800245311618549799838681237281956589058550036340987187190699764514400182307191655577376718851576409070167188912581343470924427456079329313744932887074482849943939367049894852985302008545184507475899464473021584179313481683832400229165458541468527023623343239465386373840679620724532487468369680400141772944668714454328105493247046107650480776642833105937187461261517305493789020168601970725063577399398628589982509935484651636516024866751837697709333013582887568688885680437925201672269491876780475242304653262602386233667177775305987210841524957529962090876613183120318648055914351872483281768874668579520025014969624504474984502007083430681678239798656787963080574755548178388660073286098637372777420513576436157022461682088134995463927710774021827097650126307195746015186341158317492006162034020362340065953775289806158526537954529773562577439954776592188492183558639643081049483140660679853244475474421349307304963658229653199151529638046204553818928526772572711689179243622270653222713740570799160878476641334171957241789043702256331772322146296651007678230519589804819580503096640427971052136907961705540107497717756762230436534394750095212836978626874830651335670891248692953107749593763993167902699392807351216371665053583736984486028668065510178797263708582738457662404319946907083145193487502011144753602752375156352273292634248650037985378078915442988277376206852032002341248496830435640495319466735744101956952747369090406382355296949834953047430210005690861433687398109176542943201517170083455766444789001325087574204949024457962572791665575867622619285903188408000333124754461752419222485499559878141574123820888096119113072105344377385400379505926452543244398724324423852000554981692099155592457932723206942205374139077115812109125141786862144839671093192708498024078624977132928309869564851825544421275131047658376873539552988034483970439372237510312381125533473414036944840987488620588300700789236521101031763672693307126795663486454581968951089599428041034815564354771990862040708950178187050087111616967991369399896196427016170788945014908737357529951643695002155931222015112219701196896892753436074893841684922505954741018050700171913199951281147036112485636905874543358200542737805918847274891985408616835696560128478188882666033799005334805185408445436111800470370125487444153192224893469612241192321670237056064779855778378026962787732115411381856341384310121929864018595663754533278784176541849698950662427732214127326876035214923294867961553235359952548252785564350463365746244452103591383926362238170363198341882250635823676390063462673924955901726739114984941179757447390242608438114961939009834421717469016824688366915749620639046422592233044896824255093296820034058131297737219422323325786939480964643777144932585367023349106056132064547018349597086949101064959052603357149120706689646290572572906766315057549668594438983999423800720044808981543345525978336295021583678054917727408654132413862725806449137028508052574104701495638904006274782237304801137658687407745823390899683771554436472747122487478454506455307336114565557377554266960636117747103434194868159179135223492901293600478580771680582639639988152981808569495264106631966824340913476787955033487089077013276492607192490857195546225782783206137304057482333049013814752637894435487006133858970439576891509059518690105218866225572945935390762605268732908566451290220782286880230873364838896607300115597015068597753801414960655712924564905558660033288622455048206392389110698215611257390724964177517422104939288680778390735378690898826093637733714738780699233779452201641946633522043828622731400803113496861908841673842613256468898083298123101770438761485677526334030258907871022820253977354912717430181460898198752563516022017529858934920308250113106981832530129035332738492833363331285733435259835831233200797246981694969528468801920135944597020816328742788000703515297575844352207301306174908449246349692274537269854169558497509579503366844965189635452179246349887303983508685304231826338657375390894251888832312505514849739236555870206698337665986012963558992533602124156711683175681073724814889279518509517336825440126625802390213939981667300802696747491943989557490531037172993657069672555117571516063799806705794027150433334576305352149306634699048636542117017486718942780747210129403129345992083984636438777095018490139538326380120438641577201702539623914370553619456520755225911466831561658439288186308198862279767027959976657584152322783973253256595466819264164726462004588049676341103203362186348349847294403664198920079591463949569332051846591938467528072314439803248735962064653829968040593434997101347785334461441942085229346316303691155476843277742634444105382882513648540267131552752529669249518247890462893186273281106582052955054763447438704553372722527656383187964793459922476325693313003791259927831300192574066563452769249968828198543177444490934192239574106289733902395976592763877885786158890565700109984296980668499017922224208588600853902829117824682143360964660335357776174003986023889398874103387549111431416318120978656778947514729801848564404349212364763974301315702295028632157763521976431035073559558717847336565967967168599454871074896434106999677853568055050379308605126936456356173952886119062497223540545281282869197610677657768099089130816357527879104939984958709301898799087064736793989832438899989923640486543574490969056941028908871924469307816730300573031315700308000717436705150587362927074120531461324388345883651796329793134200570749964013971263012078292281174778259005138730496145700081565483396499988168928340567339932669621437698167075184136829606586914177432266346172716542996106970575038424679856499153280562629239214018964867229520452377183932678722507807090681877294924042714122976055501573762064754444376885791757854502942147369295613004472385794755219979809838307358057700945567325554106520418463951327604187417290576342547955083848609291402473872431015407489492730019894319165723578224771497079544202085942584512115252761903232855072687058950659082298435426958928965378220448689795301703693525344576135309273918833612169721186259521691590059839233379348736408038698611715784089953605825571333842280224104608729829714425265375336329046784753249912090531111016762995288383881577605881400350352938334886507817830264739450614725797921060512345587077886337463541223835859266637977940111762528373550063179147528423403248159115607356420399230009903148396552232321146162801163848645783105171216020785155078949827124447111488374523725322563305129198710845918105867644712546510875345747735732785837799016217435975143161912329638720211542945297467926561615682524547136873111210611033508574581983592084014022611178268677506545267001958679470113015267102962386334600016642243171681743892971959965076278049927710857819681833120021639052742765064457688693566292829106116718557136378087365680198560304117233044400081460489169285123539261386718884916873406225359917527585293934373572444519400801339201601843811464179851511672309157541066095900789846356202783213073109095288473241584103452903153752442803272232830228915067463201439025468702858576969509201335916728739321493687935428450022329092282059476516989142783330168718024260801234692303602657309143372367119449772757831760513407292506039978838793895616922773791909171094326841706583346300696485568745311539626312790910090764934037899416944876750685102946345188120956976342377060344643131365346294837729379016434712179031620927719567288143794486611413193430878473513706714748521273177793071629981802777031798807679262413424884373181492890201188656957182174893255837622634827026480605078574854123646897981318669792707338060964822275153064677849659593682947800412046318039147825428198964662121119110654521536051295821079954085109774584726315895059796591219298013053767053203035509114884982915637073651794945765794075268594919397613490033358077973234001152758594898116507444247007597320079076584401734193326031036808549650182758573113148780021925598858007317780671473070853649334159662847562814711340126809810307096575527724970791109122547419863154217158737653341927335368115280734056723800349457710775991898498470824838374801311719768151073668616162938053766274763344374016728400937751209401092725040770409248053593580471666498679712076646420959487481348965438106524413844146875432952309839838215915511453841121050328984218020977090196087480128863480506095139137992429919195573754975750977375271331840226835586317163353682574790969052577524506778041858550978074625241324527013416605473588709638459776963973167844230221812186225321690555337497539790009381752504383965362244458210862372872100695290712088829500112538624179259754690155727878399994966341775835123276526505300420460372733595251464860532342080259883451589394385673024533259155751906735637177896157931415489355851114159158131476256500632228567202948945882450233014084902152656193452010085069358060051674928294731469986394339008342611713203336553183079534915907486216068683048765722575103387586757496602772176092436426390009274715357768492259155265372910503623877639219138751466967070313386357631409240809775261416276337315113491811948287511432416788684929470770261911785831367714261574992909527345245232550178956196350644169085726997684649684301818656247315624380080823589360676453843119362561208802699298305873888757976437460302476700008169731059986730015763353916559474913366677233490026082937847839432777307038801958174349810275533393933855722125473376728323339310811895684704816923925108846494221801744038463459493071451286147514830751281686644945988341808790513376695604604793749164540384795285017364030192931084396066215430414962724147048613196441451394937939488320867765267827722662243614252869069139125148335194758425561556239017413365484330759947858511779078303403734453876649973003991344259788815666753659977876131281522706213557911327499094028224427119378514667597971789126666354460494890433329077649626158594988846604127370678456695085614501690976941607360016401378878273773304935881468616874867224703476169929336450931700789050939423838385619833223737171958263059183029953517452128437484405380271285024912171166772281757686187115123048808337146661206480195941706068067765421733181599376857346447472416509370423310755511490682685884692372497375177291911887599442226990341911221658733106716396716962591879897669497216515734784824760947880541061412086669335685809537938717133361546966615592370982276168039176189023259666303100289597186048392396383151832075435759173366487265339095624906253574360979596275314237343690819153127719535351686449482568279095919598808280491158965326180796693045026882554735657826798142390381823474662887549537435377854914122217046595784219578168124382844734285584017171372972474334124542282762989612920711096003449008147162070755710108773049878850104367925558478589087737821360927956145830507433522120476654309829676372283579277783755850056503978345326690243781109432715356337123739290274723980799004623677879352972013840310283011781446543482563449080261803362375975128008048385544081478613300784699091475235893996728029201631370066980457227333342285930411921024864903409537753469303821300259472596883429938023904236472053315312947149546636686441845909009609600132653810318296524331209508868649501269061350117142374170258441501061734493841261551911522822680498409860957283006258546136132118713651303725543448677787719356424876557459520273738237773917390563314614202125800477058693817826721899221753430124176570006995667256667137601721446914562738440041638392646378871720719808793241309873342338528346849988138873367269284441669847469797382247111151142493929888479784506668753715581799373058155193325947668180558612765479709147801145655355638811280146804864073328587837675113065582931409038864167886384994466193182957014468721249244086681777964854360859836627223280840033618297150278336658666356842876061949740203576059051861296879577715458415548100519756288233076414044812023835659243563271861865252204583951915492496692217109767443897534606121815933531881515118061930160215818292918839180558114379575697597929879531793185549800477180217677323692993491537104712751124095762707566117297080910784909101874194483235557256055351407735268572822895189192489870723862893390922844547484024903284068658503176435059787473192101928713319716407833814607787972197015589617555558922103419570333659382562269121654878245486605788323566108436656088373492380132351316825594851780045799762891599455734328621740493424704209299600976665151504450005509531711889309276224964896597039720648568303873593724107952488349691773233468498906103958905639267184818476591707251239101894094943006818500100561082374305916775725068286997940116850958936964540097787951542927033006796023452730123381707288775055038243143090423401997940376492685996979816822085360205837391745401731593015542017353578626927190610543833780051042569359205136980644765450577803004433637383688712291866458520006067265322925121959141250007491350347022467773559867808353113414887487865180383687611838992217882947727155855768704897650699869161138573109721335130973306586131545023118066584845943258673244122373836649753188837190483634825266512592068189967601816337983840344824368418066272695140238083624201478564192542430979782712555697565642519107718925426285942662341087436318472399127580886979864075755587356817642329509257713967953201865104618320862190182240347231018332793380526974262979839465447913284598454028716335281734960985055649715810269272995592837645730624676792457534008273068659981520145528988479099918877302351125279340925646968380127715344798588053798755720058899621068780888308138536277740076794926335822190355399454859751406776516549733697738225804584151995360608980622858129790756895233728113211319214225554129990364564349587602513677515181429215794989239435104879333575114586736902284090247525086280517429708723092074382984766943563552354117139384683368014935238603912923079641007477712127343391597678472342341046686309746182076522758205687928111089864726306835676547588688580425649891668933946629326940548903242603431158233179684637727240751886112807820399618813920120928331118341978510585412470403749067867679230531431616651604605902735528176759269675782340828185642940359576624350276829279666653626384338419813130270159113038464507768924385543665499292941775736374382499133860148937577962810709763644613889591213238159114373022204318421074653667578985039588284209135917827813193567113215670216325753258105787431743358015316173011086299352383566224072199754017230959061868886463053754859131241862840306503445873415196087333702934690815289521423023004765201417463590697443181125734171179999968813277503024914778207454201137824605270228175104477836882467256657804173122692807210706296221455435938374023343223683857008443642801171448201439884219820892735235484156121248919850092064821138576366592168951826293799155637728038136138484310610866318127246892263510968884076302428702888638474760603814894684830288073408959974001588531433429035086238773046430482014946994096979218972664103772265879563726950246549308998973796866460644773185669782660754301103178072408445580287108502082471497787040037691205579604169639202599090392516642909387919435685473399791706641364777086704897325683828453921699060623633169281653328698142767818070669303238894641108720581620030916092608418605183343594451700502085714170655107111997829245133049228172261338674739305714163026820563115874596683041704591611816626264959990402286422970057677966406948165583687122668717562255050093296062791311582600679551170815553449749061980319386931744678131713646611041774827031207512257332051243004401340650554214082131939248248873468579844015043950476977357265060349731458048552518621585427831285205576259681961708879120843092925017447167861377419104542742252610569095960110246751465422767458791751579987585604887578769636236988822589779976608808325718091941532122643534389727931385660275465535485083190146126770724912262512236747904968292683804396179040874173419053810842328191072626224327868970717887288209007699997798132191178021392955318820979969961034255298323790989019295751398583320525272706003524642232383717844928237230958267556697648633623304150529883432665805387969945250826155393534855799411461203645106416074930034378700922704206904838012726877643431078858036723304311862156285939661162363773221868437001853889281501438492464124672034800416061836918270275421579944771513110511326917593428591971612103839165111925297110237972230734274049646559307511018538050874152926552094746577969685306820195524003954477517177948260426990657250272668985210812022173933951324902218693156563836847654165012554103821127132506840163533435743082300674782713128349423655314027746394551015857481842345880300845573088456784910776618233391559884388130394681855303591737599834737679219239690340694643043879178495684821304637060680980338108757242431713237340338630097861130673537214443908225562437592082198125804715283369622608480439994326935094662435988336817252131532624558973734474059222157744163093476588337630058364960911685128889189013659897894922729320835865007481697520404817445636301874529606923024923585929693261038605605012389775137683941671571308969492878474230646839706987528649461868602623860305981899308666142794028004373496988525606345262712606607589823415330367944230234204717026291487610428670596660821643110646706582995954210195828185163115478788048736970426734709179472985981765212401088241008405369431336351177491466185012521594111698930584268340099449792726104057371271211281087624085746558416244053563280601270272694936489294563723227444782250999940837992062317190636971249358167277561159697677592672596098768867511198992534770643631515030312127866212554765120165230273963646426966502808562105066787244124777805873204991385098162542621993876269038663309596163291345801103890633359857418416174592941167290070468847942940624698221366650632221211900914281341325136070605197528152794107308065695710736356490670488551013701215076503343917018466448946192474399458604085725418993017818139627324108088377004003351260893340604401843721086532439996252672575685241799496735876106069528519161026771171642102718823188026517753707076534148181986619110019198422445598699607052145175044416603637946341083737318482361241954809232278076246613743891789030887485901922029157805605277265176055394120559699329457578023183429510445256948591648700333416537928547318788959613905209211049467832288714110893507144373042225468798343642084000568994522269668061847079007500210908558248065930160935177930581434264150400593095273885969991573405950215014822806872275772578493609514099487880597167079951295693224946197538634181926044840530359740558851121762673769254731168915980588382784896624705791500129496977890740367427097304240394733274768462914949366344802154061062637816855713231785278985165564665634442897508696635003260116294900421143753278897698153792084738117932702242435438490749838043812032049115141065749506484105795910557383684521745229250361622131226043523099130132083339246596857591229790230314427733273249272782666916092024731149065848463252136404285524875345036801475172867995594412405847743497481190122076050588931920702721468196851862900493125332945097533868969908869874105917199844331620287578187701660557744226369543613800709384447508996610704063287856138737802468485208873380421695757980295966269427757539128235544716676151174262947140574709636947739873287264477468863902160856788337070751709854923742885850941069113201200121657842565037917258337245854671267928789290513679620155304340102388373375790864846735813165732759728930675891779609077732097572156227117335133806045739475163260307303637866016846152883092916390859426931326331417287689992957709162569050139890088717290934716726293074401464078845464443761827302772461408833677423619484726929272120031614439463200731212746199827528078978502077240690142883179145320696063873248558293038301579277128208415816811929150050322001615945862187394425013691138286381441297308079326286500221231211162743688594971141144830147513880779715516080571448225848791170743148304498688411644840582559995017276483006420409151911737550928770151568551061422785668274146010467329017643500306842866062685672401714317837175685963742824428115210373568358674573081752564752453972011974394259456133732326957572576717738255733241743897872802743734504097257568517122363561560333089261849671534027330101314047428384230525749958406898236034340827744002014711479365374478742644086890757838493997665776210194846076676352325090836997544258080636082163859034814747000659642314329024193749679720442253510048747024322972678658374684505986066589923534830367056457681422639302491466955716539043163127298446623112811659613845466911910220659792384999810857311550626913245109010274726388471975688629989712450892955919813061788173006862262346928142621211821347635249696073343410620031771294787512219397162323483773375434262204265783516145586640507387113285309351025417568497848385576902027885969462938029142242529313999221603896622488355870573695904971650302456071814231724186530036470236365877881455875705363433995625821069057500715305696174692205138540829067049438967529383532440021919688585424873561516239891128941880923450814957711232539937100506200003622312547475049398576392416216315991908328287226482793034829655529699348891704943305451003853230577966073886103109019114437661141652466944801216301849415835103611428117295867177986940218277214254459493524421479759152893348541681852269921359544122912484268542099950226146782943924930357681080867958694309787226648303982623707304875897779630836976639264822145774903813400196558866093201628645155674912959391226219468150295546518116899741299617616656331187231880902644048068121527032629086988915470060918374910446589823283056855832436421010560204537563231602092257758089306250809223033025450968659539862362088720313126207974830914431737445189009370705999457991400518037668715953804530844421655018290942439440214623807854403539018954057243577159084523181695976797438371662695999580578565627264064481012501440517851093533900643873043901895662722946222132296616850124525219744868381833213255221956646267246938938409033645201552146701413986586528397738607170456827852132667693881605077603371382685950849674014809741810360731334111928359601713659303341587023445294356708881012665253045341141437439847543230417733469062372941590948085258168837117025253909857123879756705764693941610531281298063514769391077061079977796117710069365611565522253175484206654875266586228322904436413029105189294113274887703043553699616030218104199288233481379207725485150294083328519336571892687916665341113469192076659086583343921525931730023802429745076461425269168088983718903600761770821585624904080861383284387986746757874084902685194139346945434315882795872093126474941535800682962403471861323562115248662454385299355715848092037855075872579138547321924430585709413861756309373999379812146221261641805696415586736839301861106677048278618133825796847986154433704314354361561608690780888479852987248852941925687873826140160108023531392737335111331830623010496333660630240155409812017939366914723310743329535725301351942528163307326874537442861084883012792625259107750984377009109589908834908682411168693153488980371033666446511094099866076984981473889297447917821196975807236068755266283231891077181709464223861233737990282871092275512493203160826632173147009752533935894159271457515350656044906655438727979394625604199031810371490813651912124160200713631340344484074723553468328083753925900426823783898720395944901805818803969118871206757217161793380010890138299997618359999395032969711995253764635851721323793097971302820224573487085330181333592628115759585469595312984795680626670789497985050663453552020439934975775446966941031722869446449677629135865588315001587602154586715344946099434720547511533521531736201158696692688798738671172102529174840245855020356835799253885706225464091001301586366558682027082976345367656820527898645654987050716523722371869913236464236590405290608218827455529975095108260769198177783541929953335663293753329509452593919878315238445029408195400683201419788644166834017075902291711597332034717649300673073986247918644047704273979333176371863912381568498092927326642420735549596906017448701847904346544782719523734567622418247620107900842108825471036510650559735489373189833314346740862829653302283374161406800292850328639105182662801443385156839770071777004396153907997940931437819410786980500391522592852108752621308491036712255556551269597766756726595128681968228850587980643161279529031716565144325487847980205408318403681470807067098419153375538768888611864676708137372509980512992802371902898844212355759612397647765178689302399269029053890305224496482350186428911986931627515714237448636061150491866448621500436161516621721985190171486134976540343696018722687422531133541103320787233057211417499305085829012377408551399711393690151203303689119719689821940049580833953957694173068953325984341249971526584411613357203153058056372033958628992954662047234403860536769885218768030584144915140168018112754562158256242288679090998071239710925669941391686788028751520246342466397996523513891638668476429168313472073009562564380229749101530531451441907859391791224967734768692505949375538244297472998029604564629115550761507325090221050987615899031151108135719755133972006112131147767852824398609596231540189705657620280995980286210463103667640412096006781643590800547505538028062644347823881745391844571752653278558771586030574610462606377728034367940113292188357611934929691615978471926493528901230137343890114764452381761963600081960871788707017589064366390658303406234926137995534585617181151785686831304955508738961743261062969734372455143435548128817571677715268001477485654900779083712847918048606167317472065706709839788809144278987412650372940068054590740177274152963962957796606073520233880992891494605454176999211195715379372018231177320814475898627336369587974147397212257096595246782803405643840152447329003886806756745726319235559378280163304701101782798993364535327237601143689026294075583814622952327325896066139565120153710492754821961667133838401399773526809744546421842860914820116973287959768145347210151447360694233438576514314848836303404103400902346938528368194029411367421297021085043333055812365521355837702227103664854497622082579918731735397581033333539097620664826060664281310823535091869109646506795644184482393185359993366058908684990850439139568576347996558277400584185124507809864912286581305902804085561878166686503992777017900426524142958170986295003316162297052000499362325751868316935596461011898525130777915103093541968369179814503964258095937393810478933636406797314660477125036953272445109374704484827931567946965331178488537969473245628865644370796029509586052150249546831348133865631622807679983617180061675776811082891127649905946078693559401433078805614511997517447214916030436157308305940539829804160735258650575139881810745720445872838126137880068458800672834938539428220412457650823595313842907363604904756828611411369112593329357479646349185015065058175042877245567024952229291800581643995667606142476807155170609326695754830411892703632062286884254182076396749743712353489601288972641028228938846528277809930190559909770447737429849479601602422307987526568040505281430840655684795953224134087814924745522752992323119852358060953128432316946253620735691244816868234602786655978815673042622766209671005789796962551290804296599049963827274276144929311838238514742348082281093914742570015465405789879744022551040038668026867719631665621132168340349405011899038244897942043273354886061638431035116703600203871972771773241499736119821453196135398049262071226702994926173660074072865699260206203548712932355524359028900220350682036186197875020753905258389162534248904795877000035024928288661831788535568404953175163616904992689115359983127053360939022092459529095107203104746729251220816596363876069721469646253216199654724441419645504136827616376814733813247064957119868670734035569757980610520956353261310809512044403076312885552200823349203418289788647186757258475256184950042975082697265722999842843812216428885750392309085415985305228468892478562375721021302917466021158079044980146730465064958373815204919898181086313882051571946732274493708465625033860368022124488501882236639619232652114192881726326112803714256877342258690243644720989071702300258115887640672929678322642716541637393493823531545996943573324017996535304015076902157488144657245977829021924804975274988888378359689920340987980379912679817705791336410522391293775516463932000444167962473379736269035354986436297380030512696975514148506043857639479294936525802677342337212949730324593475544696294461343710919269131066029417769250685881143374425034760382574216190229873335563379589569571397431372273991575084239584366278305345979896214803322221688002670191991228186607844395294240693142410459844136563601101950845075183407081731249358100460824009522134702599803300919534855612526249824017264383114093399519978108181742760962529760579716950960353304022331232006501276573094503740174746150291741716023284318115939781920411912720665449378416670751217646464085016651779776205149190447853459065500340010927285718515885759060393706260281673265812809538606633683830824827600780551577039671505345609460024929008112790304021509672170759370428883783171165278214204979483283190920900932128198954022118182563718986883898860265525755233572524192852272912605135520268356395861952909359366126160267778665255627694024609842017930080429610139008486169295519411218686550232047762505844110430113827841591100839616503777472117539567934644786349661961711457452875390830683952084426660739989157403163711518188356858581269253687745155971731717699969520386638059977756201241824684769029911017132425599626656081231356626123990313185708369497174375302952429087306804027939159556432067719638383539568493569887048256257351369309939516061647377289394716814933770142859778954349613096929404239071262000936687178243649033678088013493069630796924912711884881205011290766610118063578563423200753187805601161500566939390567106520353679966939943164189607587607751456948964462963778336411146739654828389103311261084131877085941367119080252819257566920934100591700899221992907700947282219688953837457171508925331570103163036608732027918501450411610621171963359767104340080005741393167912104476486499992233693802449097738089269345859187977990774843005680686978969085000946779839465319625254626775556254212642485770617478745509260457875259876169211399521817717434996545330174177370345995765181735699232506137499493049373566288069219390191004098910774017263831950857006196289181542122905182908558914146725507701454693943357222968167826459342225567128628145896776048668027366964075854322485189409304204819750419225436210308204908824313534184775311374792316037454022562266804249524802273087627731789463081548357614649564150834586932834390240261919522245431824904736988563827437945013098888870473288650150344146489743640889557441809907939716384346007729090991695523570212630645592734637202141067902377594268385282127750105018538824343624082211749433368082400914332181941315494316404539833217649012060886913575684622200102980527842076977080932579202020409586595608029745822126165970251822727241788243448930809143924598529070962072586416855390630539031793911664534704928238209367012997558124302322866219299172992625212286675529385097230221580869851431757207760800345409650693991000349290783565564433915144601719267400587987477349817310913459839159930325911616175838679037620146418264808793929524392740717029282108162174706610138729186219646170789321669438573047277628286628505152355023305988166785597987161088399772057776438236445444802447875856495362022923685297002435519029496952917511450868682452244815952957075070884944560229167413708218119475770923652691767073032686569361935528648096369485532460601722402080340730511512576676828633824285771396010965538706017537501363424512788153317554389200349455788412703437253895686945617203873692524979617465470928763395038523647968318718874090265157673151156302475095497141493772860290835610044713428091937835240428678523835092176680059647996429881368856215803422853359259682686800731165327846962760283645228177063264188340693311364097200665301401872270460450959306332017215175416111857326688521848701140765516431168380449592980468417020882683100168876448564659268218438195238856285559185255972527529770690956509321177133884512734319539412491642570742157785534309589664052642020967889146861035620647966258154580653695484562193139219509141723749677089746883345175596579644188625808440849076194345016999698225421228002768283930513238285494091253703033039846481554528436629251708605775176334205154599201984043249071880412000864374135643622937440502934711592962341753237936776212538525091461871762452819062090400145237171483756548706527611755587986100439559033146892437137733771671960128518056585116354794675022826605166813144454062209018482243142919241643295204202217208805160346535123090776060413937360755874518308087920909959741194939839219115507291725667720901352380868150083432026098755621781927345511146135368054233868789731306542159844781592125405942496299825922771587242524845305399427746533162197148965523274624781382914792520260666625598479923456566242162105950352281809248236117107986365922671331757549641113282501171176106006185691078650531031318494625958831520702467159913877514840805298173112409639714838835603089410030602332439126151860252078388194762865572096741208895324372753774092758737812817240991564808956911543436752848681329383614408866010661563105419372618745908952811479222043372641851812512190629320016590164805620488677827108655672753967003849424880186475482684194946871547393346414839884112771207450980215939895418826949064332907934166675062218652991192979286240669618772289883344590478838544354526515504562875615186153529839429516087374504669364492701639191834964919635194950884184353983450806607231141586939172919284572960782498529767699567937596776488760130923017243632190593785137199377838005923886636460358621946853008219123870751412229899472670815637162022464577524383652274120950386409614785711395489686301669393196223099710635098932493083471652750826862733005806737451666902109387620762567941366620021602229385028985848533024229653953889761913059894793312093517697020898806034906702634597205142491299890318317199220233300668913564251170896332751510910683414761581586134795779677274335162147817328235591259168325540272151273874064425030450422757628515819195649814094567047245022523846136556978666494968887358198385637939678127894946026788160184250262651316959965608486639067791431131814449144203002792433888288225949255937948860596119368644059134186535943775301205188497580596579410066105233152833853544198687837342593522993755530862976170749835411059369679373833421427279927843465930040267448205694513267573300060293665272462388679872656359189695973472295788474897018790397748241273635548307337367266784027411705931089039888707924884015720264003029272250959565322066597585065232128910423735029733205328866662773178388497075456488326337595468476317652086542239536128256136793080280077749678556440797047471777661577245383201856929832091981203151251224444034657025039985858908451478606136347547669794277294236103527865327123758923426932746260294813316042793354749906321317354622775300447693962328068625260363854321458505844240632375205771128818768622689874851859063942948363323422027888115512402086994408292155913875440657626666124032264691017249344170252618866991563492477938326161627902535391914022146435053207637957684127643758479992110371463250039915096781056242740412394453923789347220348633681437049272160569776112199891231710770025428675760941478975886628606666813114205549737132939767353989640459493866937894526710753375040344342861099137042164273157413506128429979603771440690030253792918646306246907754053156978869946890489254045303364164585374175629322092416196143526936744143548142472241983056810593784823146420786071751276227150508218504888782408548738941126656682061213019005075236423261110555025564592804194133674236787696951963211419936223256929914115414843149775944804746380959090654558914344986706102744055837837115798719679252811874914577312150147711112590739474474904856064679843870250110914143221958246562615861318432622816700892863767848046666716136496502342033689178040822589179423124814575502909062453955310642255708068931416327932755426785148517350508146288302805050446071163390161418989223789390471213082980738880951074560155282123043220648087224995273007682679193121343636334143524806154651130464355768012850535627596354784888740336128035801900392900689910495648189934014572442271714054186250580618716578647082895515068723760430159799685720389705616592278673453894336280294930547568915238205849466692309704400955441477002591503922472209185019288487680514272442597037343759788009496992510560853315771972043015835446684020517653600384362723067408927532275731270067502255290622688194237090344877448821317535137297287576542849332378167863967853784596841870039041961928624542238065803111324075618971292333030347503097740640000941733832212720731119042928425425922990640342185692803891407191517783873503037302550118402787486838083392530252921167730496902357741603200472563374431203186234003080346498603668043624154453426018150149224423623654563294858926710500626216249145984966949882191025259610658239320134380915617902114517051490437020644857773492591907988571128698777499232031098531342369670391154740065610191511545178824153797643722532733443091857098276622156413393430103486420892707250345102530380511628444239283921151589911509714794000753746867179347942534715150834290375896242793148169157230103667883706616052415852951526939581440351456734873362389915712665368976415414314663099331907736184097972870262592444279476724712470042549539517607317939960908861484947228910075894015880619473823244848151962693801521013064483544000151283466873867001244892533278100720064894398634932242298795143377221256743695499530200669945867177932109050464532278346211973158671863312949241576101837837568350893419593817985210361828201227660594688823400524856784278026507793679109626166533029042493933845809344657341940888368956393433789599521895563390201965361577499490408002793637153085424019064830722047809477565838389533823149668143985822549176564713016887991835524223923871794953522779964755271457689724975286437706021681280050132883743149525637139226320046521229077061805206468423088604761587014327485403085315383919840951523594106104856449810548422773090658438059586593414277742223956002225920060826606404993307610202655515759393985850588945530977741871714507376589752041342850015119876672744169262579794398352043199819344068537916830813216588128767378420977107611469799859305581363831679661598573818525011023417609648401197114535454208637564605776002506351901711937639891206932104113626122468550905074599424888995024437690989043156821882119529322395987621614825651053180992743919314282141214620554385083344268349353627339866894966239777526577402573201080303442412200844711870494126589212912949643043518731583394882451993616571073541984026434107757407608293766267692897409459820654913047314153678690885789302531239377404946993095234128882605955383066957618247305780160093928278240716496101625439462005287920403232923475292481558128097638373548478548694462815403090901414594354638272327342538550657417013919167450852639953121298973818475708592829622144013899085890821608286911147262030947181746803919652890612901005636685502649339809103682477651505626093041680943307305425916231221265045531297729222671660174546222083404959971486872011062346551000533058000070178750034055729136288914999034965538219409684373151423625451371335288527462388930737210013630050480972822987976657174258521841339721726469457643516630226773419042662387099264024216582231592822829893253171236553201877113849846269616001814512208211264900693016193386177375094482602569008113668768038914556473278952256344485444980431469332296521246148538446688668215946777613505818942507402368665658648478480837484430908715418580783518000200672394772867377979999740064482735946561534781766120765810727935456843569713451739824351833987179368291344815224124211481637275447166192635206448708815570243180968078528562211792323999150968847936813809102531997118172383541848979911730919718140745741037058031402754349756726538015959378443527992447229030312766344233745836928891121724338198508515218009788566123986846243620410209082919652884962502241567452413753981746106309552993056513938362413718047308511260736006563242492950151436797260349564227580383206847417087305050644099200390653636597864243937133642292849520849571096091860396180966712814379416571461079835266177281784704874690809514303125788043491603817138559180495787258849985705792224099949071197499186699209062590888478391624236069861948249187665138984815890340541554557052898457800933631687176113709219865994048366307981399412066268323426040906464139264052889192143157127126975993431267779528189031192260987384145260552022768538634925578822097140988144578756163578425801861706635194393024481131249714692835524701691755838790756957195340240485881979816275387956927130511385261194997089309733154506203913140967360199057131780262244798400541140092759149972309368955420264330659182379469909553631521440265092287639737295992497025127865537785855376414223554044773004056634098360993112616226488602972049278276040704748847401744245563702944997567568950351058025811019423941757553944139126129501083793241904149897222794782233683178914826532741570350663599284103451406417519940729272187162951459133949349897913476680452445644524184426735401007802804022870181403827172977287465515481968703733644646223074750902133849536808706414287656074260210619351544360832321203764084061808273480799992461777704329493642595566434741982615560695980602389286903576280265522552492747942880659252676069838577995643626626784875704744325564586750459913004862550341258684301416482597370052211295043152541371534860712935287085967753439770045624001110074868091311608304174327224241302163458955411572869415525783254650210991746879117826260231789610602200503562424525513497685862328211538724746581565117755807819723715959678210798920228117349351742659532184838119705879400329146037434264606479754893888780410951445128187064328475473008539036998165273508041119399680730923354729343355182735241501822574346646194493487320437665368611178198910750810296948661637355127323926509525112423297614159547986060503472111144986032770614481935444613674602674557740305217934490688567940023062257650615669938965334934374603062960140960698940256679928359317808084372803024220061461602952020250687661604716332149882373175230515834218169995852568507405828902334158192944506429697516075408591951002160046750884687649159891586396230810307618395976557258556368196171278711358211241993778900833878953383424230859540625784272291597913107000258859035385058526807368326265327667253433842938544994139079425912624013256363230295983441013866600605172353575984221651159489391736872228881435178706905575127273944634033734700358067535588048624652618800184216917870498146370240842793227022814785100158355255670878414559511362050103101548845407894825573682694974854584684744538379672681187017934726001686676342692660179738552975700757971113126975987556785885021011812589309361451223311576578807949917042851682935695511953021747302710541034859359774741115149170412720444455844463296700420637215328138572234584591552569347854815388014561286649154752983334204582618121506128373572187408628378442556549239878217910200921799504634055773217932104284110370811665434219356953801602545041754840481848359346696098553917544273057659087706316560801551962997281126181112004131139698280948117027628652454973754768525191731108951028853695449670886378032565549171326579845035786669822688962399565873475486250480082095618803849374407914882952987613572177815642952404422197290005127098712290885119468286144522057834590824131751317502558483425736906481120883377183930158448891960557084936386738902600261538892297999021580843009896315224488133647691765456121710124184130749129164313084749329121824242165731322512022383223769113779430109664554020348344842385881359372127931071445083072122983594381913530118642267946314108843192743280743283293062461556887677279517738906864302883667510530982801966977889224191550051772443473679192678848700237936812909657514211533131670822617837623406575146241249019682028140732576753294629287224621880601421464510724467565555919085335387276276014142537364333118693234710117170656692371897760710418444391070179933016078358395540816704288421591540561756619439791738457382602619223473792062193164658317092347591016731124366886434229459907294159520489962406973710205490658031468294971667173032582279813686390342145903482172587381406049396549588894862036859618134511636836509296470686375061805491003342897207397970447272840649532243662084003913807894009235256264270334962821393696424598335925793469154905699365358805731737154874935207606859061037974422337482881566545553437742959619928258187666662818546568174158604736748914120665682764331081643791794862403168011368057786936167187521275674304044582124737778255312306461830670020304302149165179168085929132848356844781617824592572669072833803762126083455353266826593876898567736862336868497603909929225407142753816725079823323022970003342105784115881767838269329209605762962263373097302184913588069705125278382804105780226535201077173953247452868262213425932401411949841897517294111017056165951187855421303897440011473507336742841851010208276014201486092380279096020357811444439335494334718027008918957051774199253625659490501867641389020014075757172453966941570116595393794117674036528576380930979529775565474809004824650108808170465934741208694927597951887749027442262831571893472222930650957339246738243930376121694010919301951697127413379159024459858897919317958600082572165676829546858469967228436159341164621193104211905398040183666614048530682972313269724955872650536792735477938653560741602094863933251500261414809968233800003580731517526768252651367522451424572530986132675066780318961733663295242766069633146078517989430938834746347327584871424824186097714426780473914673406515641428841537127331014123382450366646968931025470238103377934834003113125321025258978260268216254688720824143588601022538738812873051127081507527359236446621145573951331998219799462070777728166071565639346384003531209265974369476843187829664568537370331930118124627138128911126048887252463055021908414183295875338941127039734482011054164227859356030506205723528732930613551515642269820355018058541409116206914652339487351544435361740254541249575194009059893360822549641049610226411385366401675554131888341635450817855726747409652579917274584878197171319472570207608506324691704136161184706917059718821796266239980079040050658648330408773859133580903111303797057267463498218204303248963541344806582174188261802059602347588415304164674994717191908428730783495095982683641691800713236190356759868109393434981544919391161051128466201202305367629770161044694485685037102233705003150538851787036723788904139472994460947197304770152623037944546576916648352864006576986902350701263065985029289346588379915806238877599816512811504587412734057472513134654778670314926356994977843141886499673539524469971386405447870834232847732672316366829782896935273561795788227284044481290807695105961247180659929683978996765157276424246895645344935291722641651735268288286692714521585395545141410260333481021799595850566449679277626970011895319707328563938180772134582253441553910833850793113732902753738878901274365532684035399423987882687109514915338984586528866114923151144182130705973092087709231517952112275920152505244437266083331918488213318707178807587950911107982610897942005245580119412332693384078106818649047994863489512304306138458028014622515871965172671600838940189550194796595804028004146294131779580911387245877887029770380443324335740917884357188140352096809387476879168207142769158550429985936001877784697360106189109185760425209973845640153979103108787000072955854792476058694049126891308566122397379086231766299004391976271921610264303497364314628305714889116197375731645697884766137666117246550424884670351225915219976700677789830871584554682795810815430208730383713559229380902517805257823012953890615219537341842030483556241969599608185196249452116148972641470899175941411129809666775614866734302997011787051127200004615431175111917838178548644902617944036617507604165470022341552265074628296158917291406035051053005785438411737888343615802143005562029180577793830434573027329069541916034887567120336255225647376998368300176075709198029172363607094054707647632094221640103691525622438958905064727015564900642041009310125476305083694873342617631392738405637925244542070438209343590056435894717437481989785308470186273276420180227521377709836263492014140436653371262438378682405722231070268296109044712967376694959784351034136403457063683817951958852297475566688484131475489688718414735939317744144409951933551108253679312386056619118040369548038267527295444978887837416498187584253092891410317909847502169469248209108955982448197401913163440985880191003541781632915341196511217689421568267098829564345461837562081705363593971370027105963418198993582984288653880775675432277840102217851292290351528934971606416883720647399048561475011451845775559682806665851114755722633344493022981838513937365090243589540961512955875407314607556945160471912267483657114329461941798548071155212071904783563515018539173599975216202015229105727791379082379526018260008733163468475290134196132850525229241995707398984698755665146466364084561646448884741104418594219760166348902496158738880073214204711075501957679809744583920788148025360090223243138806975877668587737301884312561495358885156490472554869193077480805364316244046265232000138147089400787593306035868136951874095097696363990334678602032228197505848923122723402049969766240500895231969098630798959638607031711133773869084668982861485409595904886676543700973566880876689343136517996653869136719267168023863842044251712078906082194871171002337031264191538437097598562196761603784659532541928382305749519643814635622136687188787960886998207304984253648930938276879707411570953640274848294732821097659589862190909151453748254350291552875618103246021278860967520133929052912955500729964458592060767029023688962343595673436127461863041217784756250648096946876175589452008403769327975672186241390709698597012935079348702044954238508431631904784841307161360890214716877761812593392628648924726638468406030109521403090973837278609744546215894947504346269415619201106699083289090903966163545818711190489479566512439015300539384934115620401425148534880340222553904821086390506098657404503645953908338477230967517234420059800786078648289949275613797620588846555619100286498545095558483320508223537258953741107411726823469195982489135047369946119355448513244065244194338371054732675682531713088591651983625350411884564841363398070250441234479844782737467212056298149179005321017988399465902656040754232538063751971263726490844013989650548341955804458767011953825696222944371279211652047164265729170183287014589432236240994835393026475049212682506008960962257442564618005925430402665109683808008525237575413891626254606506385056114684715275052045188510226124830565131921269016037480073033342150189238517715360603277866196036824752787195674972767889033244811757701994618879805613705821130588902087779159303896120684953572342112093354348725388426320316080493495868866852848285441442123373097388553049318061178794460812792080275320738808108123858968617215182308941668271411290966280804021654894452860729668525631841280037839059235903125972780990524440663399010568494986311878306852912655729183546225696350271384952040498074811880183205674488902226361125199923375906917088903228222652152441108294214027356002337000798661688572522416849845403726783054708178485900249417727215606845806757299994800281949092038545803246832826198479705746919531042651941318576421240295985050202875533429805839508700609231312589304784285463918319015122165516666502983472980450211770201183995380687672266386978993912344690889431804846327149905731946531164285700860486374950644730018608894905324504563063338182680543581342180767346243240295636109055111419604480049428115787702180210118803662151239657355360246829219586613490260462324926006032611251697019428236412497048778464421893372781030520924077753438163966374121165964823982015301358486499163309149716961061717153103199564341484798847504533786843959538706349214849217354575424589430629526364749519547032219140165250419509716651130695411810210342515455962489873514370826638342179877260680380158044847442408377188975510463414109688374700848394039658189563945163856602891482400988853065268876153957627015993605711965276617736680096972997755325267869846418359807038260671523608367631486872717262515632921849127001828838927263804229913322554059261712159181781333812729212519522896282931234679787264111284668445185071969435054307282224282397557409245217431487819603221468601878262437562990735139263686914929847743304605056985773287690024268159777435380710096666873134256157702914583322697829494425351741404300030345732514000091163269083040741391531574569353175023461236838356970898448108291019077984096586564716663033492831620055807515365751139328329552633617887258757616497737142167192026321341458163985355740455253449949436304332600835138533347349138461204876915092007130320911606905321137360980771422348924258917299041141896117838267026696018804254632280569482130498681812236806332367116263536171366288087355788391425533611059728707590011399431835311094232993250244395584091034000075377133052512957892115301567155045301360598464838506260849361288297988442581231117480224788197025791437772076858806022986286693602527112742901999740952244276624102142894821226564289236470567031033520117539556664730631839690873527311449251958080476673337851233930247533949703389722369415439222648868492851608596474260880375579022881622208176006476558313662555150429614951001380082397114328573873278933451980740626555760313704375560315028606338099341616439077921751206396825837269807842843942289806388065723877082423335292899104853253982792832334110971414651967873201168556695150962600871546598730151953341807790192173237735020854452978493158964651051780963803346581871832639205995914084879434491902342910841272039993692380671253813916919037593959999300010622199272243747375409460705368641926361132067152179515070463573025974656889409380296162265861388896798581232764874254403623131616129681106873537660500904349980887632793223614529302182700969794825898883987005153045006046204878281544512787263539489832796545790811269482874334522034506990217581842822249369917774691855827764882392700337854532323860401087031273502949107872426119651947141760670953669774019376700486285951757316300021922985408256255422648083002912647627662752589536854705803902133457481231007209454693009056269774299435969199631484143163806318515549768476842599442926009232193608368289336091223361012728231912646673465501219805613398684320882722114820202962664553831318631592600917399972985327482535651233715976935498146832375724491066211441193435852459463361366142029254874950297708878238732740041127205598788268465824712834666772674178689316707770816463720310211050179809265632605358517365392394694921041559536317994183986272759573197224922557805981486814269105717673736609476781923602032601782996672499155377239746376037877221891430157015543912334739702072550457549960589892135100002386968679629365458859487457315706821787924655037637033947365343664080852932589064936319211318155038730983301395031900048194344044813984796345510504706963360147691035266495661356181485993447043700630312207463224622119387941718664293075827108584535236220173811614043310896121735290527119458728227129026630690936714088130344907401649960287519854697188919062614472550489963230980189698779075002964247509290221422544622050797939289372540320892509561205765437684783938785379988022432453780977837482832113742819155568909036830335895527383267536995408962117713347245967320228026508032450659745330076099794283954752082455753691978467032839456633710279461560121503613097330289875729489626713784133350947258651023403059220970690969911699607605981745833804639660239848193087899809840460265763344189244656572398508159304823969323858735955708037545616702503280082460286632940508204980289397684321398048410771538522096006106539516230500674062956006514522476479862690280727579180034458216935293271155197278556750209240942343164735440157443092144052904137684585622070291480334829592282676325751505275762281796930710648729773769581978457416748964688775170479659816313583269757524010552389790849870317469321273426330968096566575586587993478250918692757396179152902339795340409806651417038243738373659153030941481660765951469229666164739285191324788876829981607391477870571300861363897445935532565215815477446449163058545316220723678990645983815654423400268322407677466672937903689740929146969369050936235106567240675472687496253831041944175139426684232903462554094043946796899284245451241263354394521240235137145130801035202394387684087073135563769661029176252783049042607336352374490580155916386292911171287492377133864034820134545067878976020002641417524103348886527985176788316244140481649935967728904606388149357953472128711055964821255281555887720648584427153118062166223139234900986631913535377566811756104092423989655785316990658220192721987367972138779859859060423490969491060096876551899589913915949136710533334450759703584965167541868170764853345497065520412819963527014520390305083510527263296539325360574868975794466084670969427111479720028530829610481125607559095991065421726710079708188676842527274267395239949309141134467992719675407569179450503856222580702109669846362436428329891097210851550220661980295540106491844883864761152582312384267533657745528033296229370012980717849152321747286113946418918552219787065963855376814222596464302437982789995444968169428305895487891617276983788538438441455647155394600409094822053647075303594727900673163716732126560060377065588513808984655424714743907933080671652478945224528187037445903844403001229872465435051554785521734325124167597105588651781266140257145073150815360817202986927125075727268028526642216404635249921246799118195287940083598351303478760200733965353690536272733958119942493898421040420116215074845894251152689289128083245927495228044049356221808314819205739894297485527337334554161480844294800880717261910444983287724598390374004986908377690959650595582152850288171373507499170856127026611880999481593422833521573433944248429216021499784456130340285581630996947046740632213310113226840995350253670440595060080509622319472648815591662910213621913262739285044826793513885991280011532028138263074324605345676727165708653478995802368878213390748113545075599163141661387451103873327598733938069868318427556987694349400708077470992532102277435911089636120091098655630884097117327573555657182963463080477638893184237653536171796936548679736752414242727041531461146295604518445146912926025439290476183142925195148695683336101439846043432123158693311831936217514658183660226258801182411793218338542059524702199251113629867579617077672124997854855215448315750337508989223931856573749323688514319881848703144347776785051747363226350359985307351184127741767665618989157253215952439870144191969518514103367219950846816015404190584823952399841095194939259162036467647670950551278065678640256417357597431596221971874194889344728642280412179171611300978327245666247575959576909709686387674550860186868670561724752806485060402301589950284443305660696536840644424646743283198457111776473341394506993797916601126176775723225587956628891665942360264690305402678338849317024471915933923759404366996138200979326992146866205934303554935263772927845519026402069688807897061570194023744702854539745354534257697459486209231689948071025630470232773370286749090162769427281045848681532341523718918992829516052048762422002702218767002984539038449414546265567719138046767898460617548811579266725686064210290631624260669370755714327214310101361520549216862007797030523054496108778819713031017466977977643901472686056053145111181847356946315471241274949691142075554080891683175892579897919467797823681314877348358763678075152931016272301214192238925193819775847515601075138430258536530331942060335604245472925009769292615321219709477851798523789884838711742671548447601715266803889758855159654175453024505640784556710555285851633826603925737211274679885669790689341897624502576324712461470345479513073267620252255074007426312818593181490763910628727313315125133455401216883275672912512100543526363673642914529728246333863607564169039096416114600421676365826340235956460295201373079225734636882380424448129465216116188671779136224863245311248944130506510321205404601520607293763791735006081996741879588661644329511919620386134902159102329388522099083884880305069904484702201340171337762461592398508502926857824281854788076871496104508948681891224759698308116221922969652756829186906832738579021199100761529867770139822118662055804785240382817786964452674731914443517491117004955483592604919571844711165142201465496055202104445521274654732524255298836050069598659264953636127515222041734311916954517754180376996157047455597813057046370289889945685105343069142037001722104188350054905940571986789471974335331673429410613207631653679154883779832717087258418803311880444434476247678802847781358671674634818557679539089103872300196315254856683151097458653475551776310345024678527531903428528540211340212553745939688210636625620330621308469448791721840300964470975911831057553970877757757481276930142549115112465986299798238213448674479961430943166983815596161546379645304396118650177857191091243053652560853127486264562584387390360712205045663257864519143658642483683334953251572062657822107427854814811985996911188888090522596151407272062171733011951378707836422527241559593714365129034951122721562615972587379500767215196786595375086118950168397278691662117547932247518687206062697685910288513283673940215126339694315919969998887633070523712832420141099693562265208669644832672922346294131856243539913281833000559175356926218265367821032617233250860767459119514711552006547249630901028500240348392277784297577852792960229566531004474462441837049645753492956705422458955762956482186658327693761578534621134632610523290578837554023018691786446519165859613395033917939875644053603014012231758251390263163204076651057247408390385759459403262581125735368825609679410181631004515745621765683756500722346098243976981632224004981044722113865763601159213494828568819719810229614875267064657276023224801895668901181342587965477679661409971266943795021855970339451529320777278639787184598446811107582477625466174805616751854776176458005762854612166002412545218763184367720675879077674702624819793480336905627906896394579065365531109124384881526016315641418562729170369311400930167491397804713037314163468080440862337264375437665030933404854991043783704102104304933506728898868712101770045831568356777762209973973211671591902516710114902124995164337145485236998635276784806656597546440843258194747563431589582629550014900320589568563942545285108847882141708045604119742243748952136151833987015220919028200791030621109733838365961840774778436838931712902197552822566820730931099297970083955776485937087184567166856411404785719594494997385165409555431214901683415417714537680280855147975258416500931744092798788153893102352916969677471841119221770552729481951447860908074837813737847027917147824668638697964910046479093970331468930295805228214910366879108546343248632148792030162009994259230338507936797190260190910609963671942295896493109803690492798656700486488367586350085183556422368116000882611922781724401557666103931596936331119499186610677798769110747163018348332596797139319722549061411509312611592106821049573615623002936915924314680541217065695428337878957236555492938619440944675411258204715722443804385423574761752148603053501074136852427021751041429345117738346656925766993125226766657689821509469886953678945071540126730945656659612357342036280757432759324966944571582217506871626166912036271215599765217118142738381443898803727713510704386550603592655737718959336419333496407156823660398567172777660902689663423398258870295864851342556906078193935938684434303241435703846792465958359953854340127552481845287739722116461252398954967540429424071348082788089019159439078899208486170319940187404304650742630038437527162067419755239798214160618215132126448176496696737385247086171123903744708499388522633451260772726595227326424870437605343479863018370971057668372362603606502740499499972383648709459984540246413031121365432506635669175316906057941926101217035238254712563984935486819228201308409628358206841690496598619571539045205250134167658931917124829181897126240011948883158017080237796276258297464751404847716892652178184235487366275259633207208826975244437154990056099181192621190383990622541507511433738751386408578764064456591930781935769431230261405901774180719723711918886047503671347940476302073014940125735190237207410311272833121848707091605908489928178841253856923048871905474513427174251788843032226986012892589691599663914866629370057082815479020486605100306308152707123847756035182611194896167257773360441696635835653127211080427276181954120978891274317127725000623321150919603260819887362662103601640656901739918854544367903189026902548776873768398358397060839166642550707272715464064618718676412540607024740936544438899633276042123492456418283560676344479725648595808866760713121655565948294821694194648934609337995306988530894620629268033594468571475337052254151708821043177893451190479977224304986774336404816677188764618333417760064662507596151917943254537564843444192549062324994630093463165280383555001941545680370422640148684166096236665357027829216429199225837278581464690544761421109795648544840088299574082540828384464092281849545621557559846604229853177811370448204697052725655145292678072786009326093688575878654305631834043410361659029606411505370020911468505331676418101213629593080786206838188914049276886555715702110219968667841944558785435379194650615949375576518818444035660710269985771151275678685234077866100111423198736136337629282932989178640200445947509613284389309177536166564507832985815792272677348151340161254778159861757381394625409569682475823092462687727248244749695206960620154763323408242325705753957652681756927302953162715368062573964939561785380908159812265105671654993314307152541808883381432896719066835486378389331133401178232801711363902227266355905079624860233904370463331338566773276682691471252827517324099790052308469200799348183028142829207490567854227606557559525641449579134168636434355502593866251766361499633184786864689703541837959521571666661755582640248330335060461475858974296774376559131002115161495735629979332349259988205931156458796943722019651362363774024006274053973779888327462921752579269848311792244767166266769726467750291010802091538102159559704065255125642997198822849413220557288223598656715887945840968934527524621804284933627667748000835658905894180818825084869130187584012519294266729031421054085024827270780157639124800371405438812843080848281005624407452361477258590997625904795824932471900699244313451448158559194379962013810646675878028064770459384273668032661654932285938294376056247169242028671655610555624353656453552580386050648478850842224227786077101048921720886430682109922631497430103349251733858783850056744116935067808946284287146553243017295084683114890485654871517424784013407150095885241841992043663356965119016924854004108337388102278564400811381223724052050107787830170133605049800382040421692838641027454402234768072559003153567293491424144287375787575307582224058213647464183968124107344350247790282288895378037623452212042159038139910613404653370971795907623022413496188233007198680384921994855997131101566863587837476585668356523532179580638079939911598343474607301239974623864075362375454698471810608116901121216297847185182646121684298887801554323471220232414986813562775191999380519751077715608565472068895122431972905388292667010083710046457308851950857152638113393811423323826933274721454333667275501735669302588911825958382083946012473265578938715647287783531802048875675992156374344852193463057711476931562410922556536151727426583030027638963667971631259864241101762659817682823486958307234272167935493257568137627836261230003629667725616803236781591725846336051553255201653827242270770270587449001251705869466429439557956808730532251410505433263082617425293904347993367041614852949146569435524602728767459812315376482666106367136340896306603511478403458477877752637086216766568054037801440360512020017878683408517138017959730339309336783482108782972240858491270597264554224754077346680617803664491171466977403091443582617293800209748381388541758632803547598925474988381320198290448465036993178968670955684681284083086679757074174902434792601382100411033774902669090996689433923597540174524508764946028808606574216289769112665559194791820251767669592140603166443994891973776618269504520058501651572774815215840045968322917664454770181935598226533006106070145012618401112773314295004684236805164579797964174430034746959353793869029647117545223738717234645900511307034367565176825460219697345192098862779371570809649512865132225137527969564762108752895746392848465458055765702123600195409901281091939712937629166828046052622608294858930449011222480691945109248747218081471417902358268044004266685099880394514302477949136533608075625679314418104567239835593433073103894073663487451591307603168871546962470693176693250461754654078542228956827186544184841093336944418652020916853945440860696854994795897200967258908735129855527149774590262334359950468018246620846833902348031516526957477392203803956249593680639030507380256178582660209302110498846385321448689967394419509458100088281593558510811477042452539196251970421133181957715458521577216822937872432478999093564680845032169547179441087193414333122907703460983066687389504731222010530003298525778185591737034478998429142425560756771943250106439987530682902517175093344417307812326597520556279895425433564297167128935301281603208548161031151446508565834365286808679632562314846306053414798573434053594706126451720664541910519651788065511536479268044439253471474002553456784301404424465583786663578804567597054544701442948111141674261179460589733320369381890111266817631245007951796887780975952524442927495263831808632390694340165945206185358490053500260819513092617356520056529307193771227163983766953837540223970630612212073832287541616885043853949585261783557378465728326502424629446855817014133821891014693481766534590871985048605074688647146589164121487400769158549188424998620553951784146482204977220801699150796093852793803558032660051030620109481541461464431295441549788927677959086090465799909350652725730772267389996849923645349148104564460059873334165889587809015944647475285895270330717813825188370606161339661876985062365178995013179771718340846444276549368643131086539511577004964334907614584726812867569428103006912081124224379959521506397134720805600952163474984286187032951413539528566211732310317603297703859400428737018764558005270250069139579667378507184818562376034730970852341450665091656005231051561683465884433908697433353420280065444269224229232618503162714358511614749695460332166292772916420549229202001162613914669563581829009253401546731567225190314367413434693274736393382356476851858197859943322642435609704416607968909412071872345840049469106949388649864173490013847117262221619676356549433960883289334383055404796670765043384086208528433949620360407266553286246146515560119295561845683937873114018034698052228746306242464178046298909343288533295419374529507515933861542540235972117355541071968169059547359795859876941755014597575891378247049811792639417534271590097174470194594919928937913594710315314969602614756793140170001009459551599334126633813917162690836690248685776732451624417749273353771255751435854072409789533493161919163481507014446748109760012516561337725112279747979268347646534183553281058182673123811293681759240490763658280250440816484016924904763680121908392113500844571208192574903281070875756925594029097114155753678310548805425441477976017698226071556588477701761376309107411309156981131074359250386995251548129750341690853675868950021732867785343461601953425345039116239064195404932963240382075500056911522589340582682368398272370801422665353799358623544155339950153101905708488322342608925186920411214275555185463078016967668547109397190496013321534664325691114549461807733232555566651829648128011508976195625017144368754580788394361942473563075204528997779071096827067475463927827762383571524135421231190520626323111229833703934991805667482007476645245976789818139533175026894468847702371366849987262780210467981021991753233958178004843220569847382474592325240055793558420343273435544893659483149744437830948169497934644382815985882794597056707726594359814573677681959488366548019213639068125335824702255875343955355964755240321555506159925444029272026450717787756828608038046750155864071766205643220132694708588259468882981914780996693785692320294531140497492263329154163178039568329728282633325108397981563736147060992985582363934457537930463133391454922908654699800635758513620422555365635524269335232837929672131703971090310834279418497033664683195639843315033658732477076577832233870241047146556665514747918065158748854246045779084145126749791404863495029712380210724648234775346996260710177211732884195720089794881034046737665877227338526264945988762556498258809951356831905288513221848833439807707006525372572538671905688570587350991747225409269575717153698437994919772028213974428895884710586529250889104663834221820619373296185287371889520056370556583611625538526068796196344314230391864350033106396285279219075021732712687913338693993884040665879546646542422831167009811142322571680117462247585727085160234444613943843444339831556633912152858450271059759269019703568496886818569449740420972375821422886115685924770827949408364468798568540333030743129180573844409613515793095585227849786184831061072355327978750434151912971678841948977962125103708313561193502856801135189213289784476334254734823385922273631548438758025080475820476842641273784144787542258057509716464822184357614355203261695810806698019763032645717966853060304604688449191771456138366024055497227173344670230484826471197068593476425654442719191840111045246907802034604594438927220395745108463004324412021323691007804603662448260273630348056656085993363997184954694920897530215405700842233307472185057011665426366986173593460336386746683201567951866129833208907527986166863124955797051620107397165240596453647855227256796962184907164092252602491078636709799944957695366073777254273595302849466369092893737191031320505908461062213075640030208619430623721628565265700478047598120764416663309709663720572121364065209149271102775486346529631187160031449882941598692412439212797785816895791692128551664210827202765509241936428312137318329248090087561218276679745210396585538545568279000800139779919790035276429834363886386519997892498173929967217556148014999394671925076013520283753419536168456532273712802522891801228407909695784970526101116544992839474254169194036067292085999477059099644923266832158540129805256457720856911637608517677218920140236267626092381730666572262214406343713601773873680672364371019192296460735828473419502592745872659396837712020719178656192666239526521316099648320577218736944948663576287409718708488611340226513524435981373174622136112679946925229863106773576666389630655274907502714469466892947216443008782409962194924862576601227683801648498862606370340601714239494984817156574840081525233853973886930103594570338953736414609323581892847559389171868959095340660130179965584798902841435484079584927909506985431267845329893809137676926110415348015765836861636756623144819290288483636432170034749657110519250852349413021651399308396921857971382507419809984201580255702542474154422938053827662986446265133206725036339214954592564296157579778435975645541562587361010513789873519502324216030738638477207685965524087949752386771292980961855907238472983747010561969774418002502498154396027320007822075394398447523006958283835487073014148780733292295479869157692117463483131276678139502516334522235908777351233432624146609129083481823571811029061450954795803815539267471672069092455423529558435964150802003681220209838927708412137996287040174089040297292153359802651188589743631665230755340557680023871341030122794463145177083975858643481587415861400516396689377906332199044871945808134993163293180690573934273309800148249578375948716950742027584061139168090673708390936580941166335026959899430865369010017852247865241818935184614206130783237129403020327464002800801145547771334539286664399623757742982111560655182756318417244561445516982920022686270187657599748316082433509026169955171439129817931483318166311503064561344064152404054405574719242214256349119571280754341193852285373889805669610672378175750174350678807085255230119617363241653662552429196010138521865059712249806381772430367166742956378703813303174428588362163581337895723591532953681933544546133691761667962708407767024955344674208405467646130978604828434849566177419152663929988535579647331392688522150408461574740118286270561539669283282649937294467477188765440494801682481737339757634745120927466177784599496015562445611914007020387691630516054970342439768095322712189684209119343234601810894791867283543608598513070540150680363033100987962414346617497838672353751253970862611865284305480156378265288892882302948640630729008665837789529771110231577107813705601637186725775735680343699882126639500094464238385895389144569691235444806473044192942737865323787140667792735265650885105110177498033562172553341680771330785617250524051605092271998932851896190271641790554763040893233085501613110740302921651445835156568944867682261181326316760430854660388905660891625889399190739013253440666892734077248102955393012784975969552077905404296076195326100264812066771925934793674915144410848337693267257076823830148182516676855681495995726788225379922061530233800905288890883061840731156520798003588084847353320306011767177345564963631140791287445991399862478161281090283494517650514839126647269710956133551833757453401288972394082855230210037524639040187807059739911370282356982240763169609125342885121669787206327506598084243669444766791978617067201993475356890375236358517531174172355031892067444563192220110985760025587249058833633444079263241471474704865110177700152556239112481625129807801636815061620236941670008919092666956614735679020972998057532397345430723816815831115085507268307389990931761776500656794444888968059088917850783380510744956018546273242064885745949255520129187782571644087907382527060168532660902086105725026686754673370045144249253842875856411366840374050681908328022351203334730656611607751384256556134113477490597125702836063566325595487640156613005850167578171284371330568792633288470973530043183169765024369384812180751247653951544445564750801847815680265731366397406652392259249367048652306125637009717424927032239801206338201990150558095147995134586104849591011905789396775621231562020437301797556733830096383700740989350804025611890624593431911993482940396340819340403683331234067645521319876240123512552960318777985412474275535684767091286729450781214524224058255154843879436580645095157139537385513682018080733605677038582320053710373406982873960213561357927451766825347065560365149024697925039069188875033207118107120765251406865991882834724537708706358805246623410942239971438868195575477079941387867636316159433146592722809749240297290761769684057489529834257663146102333662218766663295780513049541712852665274642003040698973078520824862758973711580296725664686903580473462615097255552843641807105657978361784227326101871829090947374699783956260901498468810365930287915076996470150008375858489817829314482046593324437565654322669292292736272305389501930848240610295347731830496439284628006269605052728454438767883097429437279187508796686774692718997128500793782817491186232824232878837617173934544001318190853990704276422114372159875966641842166944749019110469251700703871384665602817125451006901847885980964313019256486530908601363628327450053043620068232983804313413248108309345151222897934007247446718838881541278092796380268302186361834115923798231488240226395618617930384190308248458614192397586073359718279800027372579672598169189025332716601378303661421517399618131565668805656524142974369300870256716758283683083713789004565793501546315827198717382070180991916660454707957127371161462514692984425662194348460500879953667738683690651360542824991738102042293230892776222585352538525293547331847899258734547083042408909295333162336403009916273043172439251521573526514756167004492298547100948629791509844514528264287373628317798100588930204353937682953631287502409559413842644546409297330370031336962326926750205941790322794085511444145155282488763283954764839313110833118560180602039436577500657677986256212595237509405395227596864154393574025867185868756571084568672936517252590781936882377189769720293343012351747541963824164206241921338468570653380421090858490414663272661603737520673482410441926839334484506121080476887712850599530865637367178537796996588305532834117890357085424717452330862122545199357618137304644687246235006273930454257298541697285772275372838138686825234679495358956876295447888068885320087982507168061920519554734236833345464879131881421098693553703179953524428881179414320170210572755333421477377246693590715173339343941876457679007663338071113080966845355447033661446914860478802540551619307866992857517352344665771801089199344604046592277693735579142564959169781738392415067512830772098352162425578582160343177927361996352665028431716047353663963485276320035735009682316099885602258567502715906004407342107773654797447932880836684397707669454325047789021454177261436694489958098040150548671928243437112013111284303705474697145359411593921345804685409178187440621500005818448314657703216785999761218964172745273826614857502540403367282599081558394828480044655121408389376662238551906907425085191038657833208786043839498875448551164178540070735435353551506725244492667267633183145655126369645631388004139656971050617340460545815595696513825414798536234769050473086131338130283637144002585752497580312723373900517204935415310894747877849373078056899189287219684923607436472657955402736189376993422630256831195603718990856590971990329059679909243132014041708235415690971469443892248685275869207722752631747242470623163118284512686976653738490626795468944931887990733087027396657188311691876820693482049839413785867843671602665170752935463827398488767716310122665981272517955201845736416080217365349738677671304165491705956751107910343964531272812883028755478153042998523669954370216152731272763733093665208824599653816222108281950649897851498792625050100116708217368804733590016825322617276581231791434732964939933244841845073295704875386616023195992891450424795840447568692920752388030574813824109518164622563868027564698656014722236530977549149020219855658878227429073053396831721077451329399952259813049475908407444287149722117157696277517775395468755651899146608258765856868297733869587165939102695712208089425622678332252630797468553573628844045570028289464559622513865892831328659992023308144154347597363103456435482234720767200537452486758237946189762560197471628621081545660683933145923068586622772213684385365191053563435730417528506950322552467592301382214794301929163803150734510995925695301772458118327320212571980573709233754275596040438812067008473421974157516301359346765589416530674869010391657248309228314068252366373647362810877564764554075762891924949784060595873541389522667543710450917287543627078073282162711615050933740743950597283506904453136790005627626782575378117838157301199510626294199515751047246493176232413100430819612396102817778671833295973607101262568176766598843025411836909210495358762511084221267981002638236800551966241183112780022096858884045041379740229747554069642941392067409318867848250613480603003279603135116706977366409093218760355783588315176782883414751415468252703474104094106223595991484097983114240324767981846955613193319517736730802927476956771340706378510218001626862314756802023714324548616886128658253509627110121769258477718592713297594872505259240212891703724369452299102975908594603799923944510674629184933601867604301686395276060750119393521358075556391651413517093978106740845193978790177803392769776446340348784796004173464193406474493047917615867334540226547425584267090215165070693991876835253494792334092439224446185699070950233969747936624510021223923822374557154495296590799569414032635304326545142949932160135160560819784858740564276770420685711348623765945574965660542801328046581563583454405956156787799201408050092200745413025802586185574451125919852391961483869761927262243312037693314018224902764637124808449009018889045932948053575083315733488842524831689901928342129085097381045724770599301246745193810788921145576728569906757265223028390798049578955880619273238656274388847814439991189162119866605107339504024633426959402515769717902261593067684761207769719277080151740000206215035401483882163521798917841723204765598947484708997725494781267735862522244440043196861781041514118298419826187027152823981608070285980222871098883261774538805140266222740908578177803797194510790917282174930829737488486211718042402998021179115664604233764277089823414165369769863496156460919316635071096099725783312548152378237156289777639791582254292290070114427636090042719578276618756144294239190238923636714044642307918867093528560285396156816555090423946816100115644231561910847839639318004490428972560364487298362508373589290762334667939388018044684902163153308938765777800162200663808709683929904803953294215357821787350280647821366394816934366435114163512014980014012532068593353344493615512823182830370052856112347770492160210709447801658644019739923593373685246876029387825698924707241183862120710733161089175062345573290178318268726429180458084384669125150860903324151159243376158180299022124870558044470034482189256237451116070529237454256314863631023230149480107020409091464330904247641214883161428993069310377051098335176997999762055150524287811311257786428807450845796436792417837142290523192606625823352773718650215766881802698395970905279706892700525055027411122395765165875410388651131558200815923818013093317577629005407224463574721507647042243017984556343436891547468557371562079329258654625381278502663430895217900345949784896301120146258189921564241347827569675054163786735176432399756455244927677300778398523186737448882331841894078756659066830790061166945975936952093743238214650988953235257560059903310887632584164076295595758304939704989904409676475732899764041318243433521284611229071839893977928779602987568174857820242936323826423403513651704125322461656045681495368752338949843204249120451189125253818122670599095865083891498400005215546706458116113576179412171814247000619483854224146204538658997229347264494942519739977716948869142009055468323661725035632817371473153520784142634220851990074881218984816951426409890225105850883209205546426114124338247354956473250370150668389997662187816772175782456002885534144329438698463240760838755854715745690901981452427575618979482607162819246395479217857070652940856733060321191131974131406922378759513527963055526152226298450185659392984671846249581332471183690570780889702559936086620002993051528712430214639492282186322234436245339042073892818133883555892511595833832953544342486701900355844835970952202045444853809859039638253745278007291631582797987499972379938009105079800490923703706044234958275005386734966532296166456599050342778549983809795127878033338436724292348940872921960420080583863745731654478653502866790013755273837854293064924821322318514651025789109656764588426599250806520938969318926801534514322693167096558496635588545394695457491074170522894261308238044388384322374083639094491437772228616987978720642963149665896104898413500752389183013097196719312346844619690538706483857003235574438185344047866293836608929227476223831856564514899213287501707481858952778343745159808975615717554837921940771379132630666203426138069807486024308470450843017019361291001045667433600999947123114788776301199785691510007687076783005437948836371105414702295918736659908378268534582517409552056263672670401165510480651443925339252341464343951554841914380924936563714642947374991497447440504293998691641248204826206238551164996033118796628223847389477248821023080423245847925947391357082497426871039027449968403895769582474558081938677316542901224849639664520334176032574058299254801464417059239642516172821089416848676647698549742712015795988312026228589154678759416043196527866087970015867167497011811131329654841991750521297213614665606977805741054603389986984556594285339760859629093871959511316950759327075367973793069697501504106580333700715676631885420285644501437281613315970530740592593935870552041083072387132687433060409624481124311451932662269952518833110054865086212454539062227718250719651943637353477465337064345106063662342908503779033821028713228442824984070219411236723399031167857569389909498734046372053984444491243259009765510786654954386586354475846207198136316894352020269571446526024034881397804242936568999989280820767713048466234131529676016296173834602381646544748555230004567881752691687202804599479821498037846468774816382783260966339752549660838107540571621195279146508478419350137958368869044495504010724346292812785472038690462636516482854698738825368379743392872138502033390623764269472145573438089219544114107819294863008613739015080468303905228352282539410375144846737347991643315478263851996654065576090269900480386546270519516884943668184619477634351194587491745260391212803146792728261571002185900842243190839280763239627756631428202449046454727452022989057836316838898934921194193277476583297224327256152571370389151052918751563479846622597856037975325734409776342008241629124810562628405793773392782907800031630837238828640861880054736219606105914303289729946666793196957705614279929841815249569788101731568750620798990959673582482102782898822952279027066633257740002132677954002176160755541835057792264491438469928999059794257991156107950003972625858019946596381522985652949434227295555615562159073341589301066081074195685307874685765894554962793929236884056795587139191578950151108405157054510906032912361974654250460646941233119044975661045057308591411663640417508720507100012159130125244269129369292778403853404970592392316299019848211644304784138699520844205301504728747621835530737319214641961191723344078829516572131579005725205547118054095939714118344839989084176505139282011632778229076633171223151519720385934007920943802593682182941316288366093015447325850637584266921495549395506842104144868303374149129171055645615681424218548002557484364165835779314124238606083298070103729667890297039325813607060582921621829383389875188027821917989780416288117177553624702545657996681202412652695341875712459888042673594960989061784538675874497602409208421514769194892089152070120011513947014108367683578699302861615844487102772084060214329656852030633277659877475305676752157676786181126392537132003622956139192642904418647451957802251743338294699194941639561523471704185301848749063925903568645687096238968888452374686098533156588628270543519218492013614980846047413828537471002515417094801810856838032030603920633388530650426370459483475622443433621260865370507996173098856555127376970018691806567900730080964232826174207649424239899310158074536165087215559571429209544525049596519124796869002770956159382124169588502667532888264622328814979591989416075042993522988864981643365337771972054935895196664899764531553165115130671993873170397351548775047695056678948571123386587330514249991326386218126586803803916206558319366478768796550692433748826585315631298527951476199069621350286493763308807863044552620145414502983249759286129753662497207500518115583592991911858337809461188453285379592458467604798847315473502058986604626071950604934312156066101313888603406436663400979637844029393407542440146776875654018336080341021485061548525988599591093999359811862835776360224765460573840755952169905946784072139501667461818274036189969842271676611037412287517128481940311288618896090979337117596893953061696744045684939350937087423126085753542675781160895140054772996537741365065579576117910160397115827218119076000228751531089864906841791968017593238968632027484069747434682465021439405440099270634532889975999140687518354979853320760711036376926148154317910374521535104864563908502211021514935789440083032712988442192156350003611697826003423672394264721762999403909959984143496516232946534085937717538825441260778885198354135102734232898404742455375187099010630152760068801875993265048192222880460055914044282493523105564198283580532111321512247704382422130871853632653293107910728200535714569720264049122798893747170440527779419720208233660956938489131765226279283329769397258361208319197802973141839948823109780418094885170358247194748135288256331712314775367503316953673743380838889831300229375894283205660352216093847473868655344263330423855642675269830133520218371093260981339028092060249904935056485826596893054780616346095684131834041890235508199922283560475481264307695728740371906818593258924415800808904089256265369956779786745734459149237604247116867876670436453410522278522136840356896286809274149396579880277660559360756348451941034199517713279884750595806949114279059450711599884844227175078842907638896097056622852543231828032227583149422007052589751097718472118297227294397886875013468200101140517633205042590081637565101699676162095678226660435834930042061248815435237874141640206252442555107346268794181527510420503112611155113563827467748044977185619522915745429083079832720446680143012970602430808034144281800023423216439982361886294689764194684337954695382137693196185567030203471660788444390599855275326325203851039415851850645495216303473052801913541105023299371972019421493617235036852498750592162869957062881567268372717019583425502654829024585337793377782960412295033775313532624256603051436572191125642977187150777044657329716483530867721351329730429864577609256635024674572657973734209838087210497517240391103437730943799421831075611480819665804204700940459957255711124087166346440752468932106513653305484127725917141742834448084018506477588169134649844466198460727115245244835395278931112129581874941790422768821950347088155416542269221309664478586163954318469796693822350752022848527831394804551624316700677962664144629009086317371066307398590454954523090977881893132132484998568742928800214676460459466028315315815664807692647981506249748551520988708421018451503416659412193399997349337524744580184609469321767532240069804697803293318076078725827898668133840782176713491420793363847472552109715903960227273542762985241795299682563386687297538127502177546813778934914130384319202781773454406601247633777606537645391152855541165900302896549711877351287243826319884585500139934721042148860618644547367351102034457162669551665059268187200392220072715523567689834554032363277537125114269362220698855350973666702964516762274510900656358585855195769971338271246270981015830571278710944599453558422957868006021123506465412481562409933271045230078348986584327422504726310575008913677603121462768930552214440281093305693387735397861265268840216525347956386054946236143607421815555591991548540528714539631051324158877665847844676295380006535876760986722660260657272047890422800978334976918241505865071784478846208497522407056266050175536983645912439542634232065584664757292376404224567883848316128553539308510440337210468774445605950304326238380559218992047756992744357627032055744825693226826866459152948290411691895380148618278142984446668662809335513975479942753933713486541044433819974126844136712083719685856578603574425850528972296204324062884531210039580337501189697680286740615613875803291030700827975061429733156232625346864236937995572024922363583643244615383052537877322890717259164432025685644671689727027764594602282061412135154628399372270734584097977578212543313449340985207480800777909714023324250204739831754872435427140807481396313124553931417837077704129214480811246061893395473175904763845945920705027014893947663523270473060549463904288010595623568788728547335305376414300507707921457776046194430651636369036506113628726150955301675906415876182699358599387853225579218579765678310842361186365755222498449374172089849969480263259485894860546826555718911396454600050546220145554963510288082654944309122931546493167683247889667541484830505150019289396723547408913526020632896319420179351381584827573969114309992283287176973245988685213587737821057333295096821597267542418885594520164894717185090505443566675770222887409730360411435439167168597272619240059877869529559590005387984524140233383727730404307325160743434911571106021614579052296698323500850280126443194755451101246209855047877614676034707878654302545467331436955839822587373099437148116590868826120692874926113665090343067921482592723751708467996621629612457924363992520772008921249428416058711412130786882064870652884755861184755384291407918330195503210928459438709842362130480762768449364256603278559838260998055149429571893879040469651817633534037381860719296553436049627290642205126227029082691078360864545148685840528576499304713261774978509306600197102056463945938187086786903836578005422354950305079647773522123455431581247277218743055823454342158431885613519928687327805971918209574692474031368796692446869959182462090921847990747197877926452661750097332219719455309787830560173914993256348394739390930698149847478098730611346153101263625825118469035689928893899056985302713074853938283261827952272141423575791041230281667982589814221322119201602667321201269779908618709319983657200580697007512321832846598901706155783904775376440851160918701427019475037854932570147161756580872609707692304668512991840115719645264142303352490722762914667644288288082791057072449702231376711597735340447816326075367849344374530684623133720601956823592727558960833564228369808349687745492299948939804327707961891928831690025594630060846993708315355469303118778836125848679697676805459607032079182800193838673147275438519552642379303405965688057710406801129826390028746473248699443784933376856481244888354708628145078599016685872662379364672316033191150487493124796789105821518389056428013589896987086679713533217065335467005607262526768468584953128700010893115282414370416531043333410433751206902835158919262261860073070714875259964482064183731072802557519247091020130845127707751342868427298979086665341790585010090204325928919652060704102226755172111022486801085980548450021743724928386407400600044445381702115055582029154758929644677702340761837686708965408038102749801639784638882312165572971000972862736180182154727179473054920691204098692525108787827913621481076342254072997149348556558694877848922660003803562301060300678913336891132684351560609803764809874415144836403285626395236395728792333355279153235607399849183325805329886170817514287670816581232991914646797250198098362310142113875003897513853851503708517200780271784719853867324565012079939043961060469821229638690890204557497529430016600596502910868276419632112000004671572247877697081795020366786394920154986827010869846923389845672751054644278500057874789998226464163761360299359901030528088938695900361897595491400319161476569150218082259274787240640906599282430982579508031263022575257607473553647082772195816713097237248728672256793236459859167570179981082736792602807202579224310267249840195039706565201251139425695852705795940499081893643636094851152086116297960713470193531472957960735386585826924463224586984416556521773258648092025282235450116589673569987377303640734363136336575076497312375503608154281055213606098759818085265658881612695447345699799541844505449617057462507351073036075438830735739394399370308429562346704865069190174290813447079378439787925208746024160158772447082724614609877120929160099071171727705142349567935563493271763776908456107292844390392314382436816921106033411888876421312092432797577139537993958430006074115378201542792943248895900652716149958638315829319254510560208310349214884930616170123805208090538474926769926880524230320004039795912310771764113615317662083231667236570843433251286080317168147058172801379077249011835117280428441865600450957183470584421279590407563752573525504199984342752861829675365519700885453923829311258671413238811691349355083028094206147169759834284710360756954350334143983223243761907828439868843939852256594852522831005681213262570365053115435231620244367388948474828494697504090007760379906287725260371379355694128190359032408033122541467619996200486341363852262012246198004883819556038878142389994425817454302725236165565446285444458860972879006514014737133214513991264187375404290716761097984099932165503713245071295762364661657084553614639803189818104881047621182687485418769313145654360613338173242417044849147231666335157038683920285529946836245597964842073677748638174850817449091702434140539036504190247700923057749203453646121294864190338576845232878834227732943131603124980002912649183384651076669801448099791442260485857303361012073904440052189091079054287011427601391142997841986244377331792143828701522164590628064086171968007064250886768647647763828292042170519420286823551808004084218954795807610229849142192478407648585384299316731972236376901630007842087956951926404328740422130008182477929457709399614956781236558077540136811021484061188583823464198503790722794707610988941583105392602504786485707923529408786867783230004947066577404691814617641688523364944086223812628423202201481958782736550421160995228010195708419765665526105806625263138827783008515661643540857064066319072841390314004601296060329099297218668026045132845077430237400285069621844479795617677478706723531170471234588872307843960371508314170541312300328712686269846018410341538843267493096904571814656836730861255846430979164964358638045098787423192471263241964529440703690858767935963704446958666233520636543219618278610407542265712253101142496928819393528723133272999081477038717497040821284120222851252456992242999587701967998448082999287796493952423517841346883861743531434109960693001497369338474414873946649911812437461836781811786581275858200022902073749725380649343297029877604594848155473101065554927722628723452712948181718838071219810262342427718126233377168193280512640292492478402076724877114428502723786066828627879325279176512949499161873309768139121964445064982458404390974279342762206064964618925102411992736502318886078843705941858402415126284127040832243933089490621676893672166691646816930894021801672813634760597672435697683110784447517516435996571833442054244966569470589513516741195051608599336493137591712575856950797572732517613960959782560544450919304593653723279873950411733081616393691028384510985884679736099408954937498041546152889618040139811840442278301428711622330607969771002758657999933448596169651946143161152346199854890565915729268092168228603784290402431182932403409421234293342528825567724952186812226552453400293640361478462917671013049809600119208190219833851342181499838268301185279173298645958324946128129951966967304515158757144899745496010235494306698563520419061623050164268391160410160358576510037485475488685244887918193619014848379721809756852642167615104367669765074731915678423371182088395795671205391501847516619184316319947727955252257304950743547599713866130221150606665067635656940964167752453039195270852033095417004833058563675197805119205457813832292791233968629077206739803121443001489372344200589843471074306441393199077018982988787449435847804105412958722499783348812728688619874883122282959815856742423424639336673462878365536349979550910774747202429037645588005193428112505274758700906457656522485005009335903405398052540718457673790270366989618691173393356127029260639329524168418683119444896724965340414583325919579801123856248114667371574976263931509249104326450965213412829351595585601810991088766127923989175671823186763002803215039757938195462958527759049170038883727718118128116408512926568958021456540786609144094543057171479580212373161475570640163717360705449348622904174020320736131315516898973389842387987491510567378914423186544125246637692704957722481847886696577263601607640762872814490033466580333248271484747628981573315547828729261628104994657073885888173000184681730117308576662801645885286691166276686231004142965540685155928321982886486607954004831224099168560264654119701094707458645368636595121210258472537519196767007601985052461422651079859046082134922964170143175070179031259932435196193823182536886455399105015853953291756777806620769551652761901052675656789250375302117041045089837651347034299281120034563455317410892323324861038325380217976434611716518802395954504011685792466880899443340056113580877356970002174777593012085486341976787879340456330135228019578500716948579469302422053501197684014975445449251992375897073798300122175121750816696671967825069839114144351929494529730010387079300304722932315156914379938596733896505392606336480773473878471811019353603329737098674246480177260233661339582164447841274637081732938410222508004317540856673404084542967706178925940306945637378301482164101408516917023608947971422239408151694311643274818469340372606481910039886454141032346948467162391273307055417490341413317113670846005138547471543851434705891705334613192144090962531160852981242574226900287118240933920870653064643010678217314871234929942850511262909803427100113012664881185364758185148852352182819928653056203270014089621021982660479525049643656647107608183780977871154543344587138228265055116512195226620193521152298288172210954117945767448904386998055722604050588761366462269022995082275801967101671356750260284855196010377550199348923521521312800712593311909496003392727045497709500841302695079770218795571323575503835837349757919225740005639734077146719871306212568135024924850477598215399401128938432424999046794546110027484304296702163958001304457038247623262729216839257267068057164941080145247862176194003445789965296877448270530236993408872430405725669519224500429693620817657908725255168631237060193125116472003279312266123959924569205124970716147939155083861777453466086142678892266771760375294523783586402407498515153617654095823152714032358763263095705942315101006147644165293667456581371014839342846117131661497566084112005004920829944942638074735502265518205844218993824293040107697136475028573686252286567022840825715551958854601035766199739501903034932357607016357879429896777845255976857309541610860532000481131408900768763658997696453498678707879673254505459902011322410494051728260459935090819270486889859377163749374768490052617966801805340986320585851451745675791576461913622373536237716751059340058995973181790761179868141937660033089172855163848062692189209237399164161004441134475459850299942614717636632089818230917203653527762399832111340474993494240887988598318426709837689573031087370585808996151218139437181670551185624545016045719557421960577981500032464997515719670573464942194712684480649666550203898442104008267103170477618806860776664370701900228196528355008618193379599937206500611223915309164910391766476167436136128134911224318577019756613097442328095766210196867056870569568245675886329214923106285018967597624014293178054724332455987723642690888485760171799610424517386788030433829897802583174248291875367020278672190784592892898365469314413131586184098621498644453874459709311570914962801979441831416542026080137670006953490395148211790909100738711092371426202949754491120762539995252544530108545152469947280300707196869411559464581094773839880976610308020841976879268629442796546198450208032426536214884888850142582291301546940834115253612458187618889137015741278425251364790589564989577012842175769056997496129148224500225237645800260420402548245590440963870461993914028845880288287114846666996439579331997985683793438591314247111717266134736962146926602701564215999112301839554928759511823300364806896698754856178032081386035120737144107352502064511992251591686389574022388073281263007413151329001005721603263743654778239133853851550656005157831346446361289751827205020414083789849133939831830653397901400090585875158719371351017191628553553648676230577112828605792764337284422795756892214775546139016385681699151063495830355683004710461365739568629923998767228957092080441642355064177989601068597010577785479040967875061972094976375309610526417084637498690290380354219188744493854141738545397449645671629571080599852109055022102495466399391264530015783815791777842294661354046504338510794692085677770267744306796113526156033899263338802086536626907583323661481613424851550477486514034222264458281645774071356421512549912698280553019465473159741645929794359119573868833626856802449520710228636439176374020322703188681416252154765277713877614997777295405469049867390507658713378488239230724154788029796109643204254019594731352574025250964151387638988995739305236271822947803986469797952311193661197592646702817518396616384465190320080022198410393757118720582003791904248100861982693278199774234565909947138527421256445038583715167060121318889458653191925572265782851609165736434261420625757116015656023015522497463198057194009368958627529644080494179859317186928052598390279190565375733039569326677863914519391882839206839895131308955071753790226937950926860153414884038176744574639618891614600266134053876199139625036590466253730303354583987021581643787458201838025331955024028703058920424793682949630554878012249823630529791234210353041603194076997645152373379223255875673350592696391984492345126275680498846681783689991317791179924967814389348258150004408423276878016978408566998104153867072260695120214922731412168724422868937814497179508036583821308396232286202457887367434051318927429285763719463834823510824728762074293387125905610016093488327625499443361206627754684511446353232067240930216181019529808503877408631411747765591754890657797949879776476173078488498290097158717393076411699715656444890916570045270114539955044624071314879700007842335767538755760704484284654950235567417916456742496628000146858212007151065461279429409919594051070500792604275181111221620925773166325319894402389300415946492966489262629292429632538978884673338945298768211355840956718205191671947501783050544322370402228622787824498949585322813480030560534493107830621825673016810466226734711390570096106832268328609165730622475617274724364220418175632262189482007529440956255134168511048106763715987204892902514026196356718346258528697179729128880318587547894729797542588432928503815737997574934852519660560144170483124340590488063070983418748605690925797375426264873835992660091096011072971248214219356010640854719999883715718851405348160841684794045425434280174564328157150057080698350574295422358060486155000333440468245933278366025250849557446224719600646868461168878002135575460426409657798193491836653235011013207154470186369282387259675606485261144715969477010731291017508622898184199170500633295929521901101443246799081171772054807553696127888412209957637790881523050500658966866618334889442664612225228016912403930765833073978997115314319049481004891748088464814986551474609951307899479326491883650947246304714652080146039082915670252853142839335472816304228788497718046295790541076279286981234549772081709059527140413709266559180601140061047538063770120087446633144826676640767425952901184143579917297858561386438419362984388959159807757431465192259528023638018972498631336058360062440468978735240265535133183650626536173633253315647754027686201844378123083985292266818932128739927434977735459150283475359226110402199290996118449328416774456448736166349429312315370776803163376550129471942880352528255146750487770754891477992635365786597283996604498649866243075660675787635238376229127736721032388226436426309418288627102140740830906213154658542300886766144552824329734389956410777945606026127298724608217580156386705031621674624944553115160617771938346242448663934487951722890798931532686752849903016893502017096986060346222691126055462782843970146291743741335556553590084257797262331507116879556575864143847525603775744295442492236204972314720733190854828514602563837885563220162219365373617102949931656680667659075320388472884627703390544355236351092167747738602174780714639748713810024581479911952884549064354054227588935163697751010264843642765199849010596572134138369882319279201964183154040426014603259195075093909721772848663284750890753035835179736708828445885358260646103458248548513926982871465250858824068760516310421525493841918234770340224445202788032462408123792103440460763736081025682345861604524073829359465484094560200590051771892943433473394325504191448943569798231818302091807805381440865995425406620286582193414473324448540972342759939492717972956312157926666010163627372464323424566338881465404135139963665709944885917281797760136965222950487814157330879986856115041469538149976389919551882958213997427711430869413783252318166998722798403864325962689847274432928904596919201630251638497979679200174988169358204545971748107327142104211068132144622857496236025994181665135014296401826674710422280898815154798753505684374266679474605938716183348239015018747723298121677096204511243509748523796097101548123001953227326793358404524504795247713522823876555904436612633400154022461174690282556793496363210242068976453538899392374907789181140858357339395606998739061621597155311607380877253536560374701916163752989264371632451750739061755020684507381927882711803658450438106113046556951041576144041557474817804295524221906284649227310258897170415755013943506668114563195303088629413773896866989175001696112561664654561358809064596695082191237545280956074346213734445690838085890185211885038009684109482078462653607985243450717095793710501435851337470046776267557611666893666276450446749366254764736262286283377847343932465132321476033322640404520699018583710778007457630585438167892540892063039684368774176003199528960631657743945795002723456196500886742121603082602715963763367262838623939751137999578518400648348548167435903243990294490514270932180639300485099685753187518124790195680450969867712542674760766426913442098696849017786299489884535919248770106254481830089013084573286017324128439631615013862138876160095215444000095244186630354282514035586931875695066356850907241090306806835162968627259557957142953178409025737034285604503327629266026483350280698705770928718349689024016371011785742843517651391300555791093156426517229099005179952008416438459462962955378459790289712051810499366794857307821141348942435807638313286982067052666275286963993116997962392747865463257476395279198186197956706064986190856017517339938361610521962915229934011585350270059407870191404660638729269840125124194468832172637363376296901392311048430503456321918267255627958855919022757808738670888671807157476833003753116663057276590321921618074594162139691385472808451309941190956262264878003967110454822205104313049060651686101901449475624071286307074825603039645095211532065545888715115457856627899964481428212873010076515890553420311202156012667962380550410570916375843365812048891651572181031194729539788178980900632959555023191390669970132325019310159390922647455936248619546902367642827327096362971759698216452815925039385964013319504103540806361483248128094071087170569996160238532669087126483416808461404882391376293762316699271862337921097049477057808811807434066971576421550823323393511339976914607725595247495126597906279510817173623316688278175568659132279411777675081762801588417049349665470938297022391981403306815211408050273247610714728444080991354915942847601497746007782939942812311520932271556523501804716020585671418994315923518069804058642286630017596013179510074260892712659382739530313487400451819818903648851763932907250872782780909301967301581546170884967461974851617618853200500701339749880315684571455691720542609050965182195900041903805334940178478657543606377536398963095116676511703172883487489442134679706285634779347165706630619122338963011100363842764055593467058433710750499878147025947027488484018775536330920370086345528648901615255396414852025024211364226371100180376064275633491038171632425440130935482491207691020464088904482339890128504732664385810702855870496193448461890947920979519119457983301046500143584355831698393942367544857349857237396238851118591417250754102165520810742081936096540387342145448567556765365196670848947999544230676890070030987845469718789795968149016535663000707495175938033450048489776431227586984715664577066703061916382973092586376100049160423030036096763528114845178406256163223420848135927157043430616250174499030427081446766471251202955986797227865198998588367695667859680127112177544899328473674585585588684325548697505966959120458707879647442428450367272931897132284007499925799278804145519450608358972540061187889783512724125080547667872716141005506461260925655904156624824277883173422583123661654788358856904305351958518134050705824326578620174121564200126220978775878127601654226403782589920735942871263965623570265713686654109140435057190691253470068127077285920790727032244710759012247985634406999184766322662444459919974412945727279129569472176332383765126724025903622513134859090606962786135729254232463538525876470878445986744961333485865441995773732240399006153224520663119482467884341676674721865334914075979399732149461979618216682670396940817729685208413339030228810692732475403772217394549165623895807897283915396664147778863522848518631814559534471103018351219302710886243742869835348076749212932850563007408315865253406069394444212963498597791571874517806730455863438168782045474567090770065222399596352733371987396543222467914547965785339264430751630714784786016727047414627497235919993629571810391476024084536977608958008784599377709145387287575190807539612884133579184552316562484606312737428990709608597468608925666393880240540761823861830443390109530117808435877180966141796339655527772058047516805677054064891858265607451108271037271665456801516849205903173100496865130404391059393600462323483279752412641628901006911694847204749737528905697461589637435381165717767994220024733901653083961811591671402700947380268758093365108994121537093986626261376575691282773727706498293770180014735562845633238511775756864556939285273591042003921362196610894788497125319171516099215409968617365699280710626564972938703210758478819727661264062497741046756727918814350570850903632591010204567757282273089219511032885938239812861181126854556746156395626093117924481568816350524526603070934853549704173747524002913370307328761713517618611083042324508992230822562234885373940490179214909699229785141991436834737394132374936751694934896883397808703726863699186205565044625553158017895870107837016201030984576033343122962940650141184394181977191629475897808666872527107100758953745936060444315939450079814129001619081683635145880209937629837082381074068007925092957932045789474122668458027858595108687436641845789028531117247002132358160477680846930535175724676837268471139182168497367073982022183182607470811670888176286676062465939414932150699844243868291377543943535251503645367647058588537658062754731952747229143084171794940773376710427896449640814686156261634783903156832709938879509439318595510583559443849092246073382924287050104391031648909440027463362862846799836324022807409147480212877937127126318466514514005546535451221355846998407720747392277365436586173154482207724911297135746233174202905795595143743252172059475601815160809500370549638826330975356302779984257913229530022665907797428249845380929118922823549392906593674213107440879546800691138186245737735882343739351678114366427062535755205512778885088520832882093594048030414411888093948290716787835206325466798875749031408350385297010767858328031937536749002438669510047039351204813311813012732359337407902962363286641804823626535293123676543744946490564964721315967146069313574824457090719866066152851097472137401189994645494038984613905545585176783184039981415461815004566354960601046668480653059531976998064794084795135162201641025328542660656623976264362290807131130392275259260753673114192780726553125716473915531680001440065630716592357046692914460351125484115551453176692011302117939664457991309941565666355294550961176080710800680360928759149522636249742923343191426646747832735681907733570976225616951386501040649447856895259913397128341622079713858844061396757655491759237924949333460520685669077139508474773674180476972570963777794378694833038075694489163486703624953873762044491554533278863114809559868309203142059774930883886690796577000358407276102980461151801617298392113936379338925486551656986948483473031147493210131472292362421335896153817865470297333642811946467810806165291440150747145807978625378082637520962090559423457425411356984800145159996577538771277261925852887356421216250792977097077708100327231460193999405777178099795090329579875198990757835199753148537935841232229838974607294248231981440075128059964216042161417428581451940201680332313180697765631552039991362918624768466070045771359767925921624226680793392544978939195907011748606783262959703310660762601798058702770819590926076003440904433780451649122388086967132235131921608894816157131593464962152340136686739774093939065856289269825305183925202876503567037072817038868571077279227150790787026321872464822935989262437684117054516148654999777771833770706033392097925610423146590863250926636978417281045378892316175050034135163049082487541014733022499560831518924693249974761147830423250563425258511942325492166523253400503339742944037530408063605676613886713389649428362583965619784758872038617554035064703480972577181504665037081684736633334365691360936892224831415761827565412141677203066010411206080277090065010162655207378137146869209545720020520103393862791772242977249561294888057060429961873947315352999127965176182339331919057763965628911318595744429888523964537512078702980772569792782953765700990878944350249162041142095105625430134905552907417677378742993765294316214109619357764374112879600182697747279285472860012295015948861835128391507126298138158722729921974851293228370687125273331656067298932792625222013800294089813987579856558630570293123181860988812315417857668894428794789355911638695986983569447783422724287120031252360565390112332935668178077350309878342251835051955878319879746796806427913175684347781875776814333525656803604345171494266332141662245939160576524097166190676909302005956911922422674968178991569135347778294603865726955438995085153793326197016429806506744475373649985167798319064233170533263195905813219308940718896651743796769512525253736495523408219891980777264780289096298989735163120448097796673358387062304081048707420715910497888706580261198859020720491377560582051536519799283832959692774185361433833562200656846160949437840006319467896297535800259122734717909705948043730803581806709438069917999229146188275748186285988525596397837796024887255361958600012948718060727120907360494651913884982721807701662812484736239196083615198182836581275367807152591806206949741741208026676831170556756950135672925429150214478591752232235270469302409617027739373932473962229922700797202630636082772593857591372488811340083169801814739171147537189353967763986710613649013072182757795713700423889958622696526680147643884768268069107261781403891539554243030033615918282771203653041566607090921192239583323520515731378611712120802062373622362366251773177109376102014292659126634639572954857519242806761739313178244096256271906862019987923147631515548198224629397839989001626873067523345129492790411733258246613394650587819664748743090939583555190440024482146732761183599397831062991964138337524590727608890405428499137158349356763466921624363683258073430625192269687179247546221623785442919592911007334039619607661394672274719389119379399549205194573325180110038139827923954847317209679952019894953174185366592593500561894343274688491265329167551347834695327148762562761110034427198921979578668134632627090303078275288956058629390298413015916711334291446076098804706920711846230628371878641064578460201393429872794003429132008629564104508620164929752164855415712564160228849975883380540463976867336700350053661033837310004448460247049838740264489027266769395856330443670726352566108241232348028633292784898591085283780527770680532401064063040769626025393310651619160982956984417862661664776385934844313945819734027807531708604491835238094963402375634224852195238500585062554198763930286826822982127940994866804340597535031514492405375341125441236615321081043043444928775583946740194767416716453809301469135873259349494335303834311136642461384723133074404678998629665142128544946460640987403485270684462157828942857404406286068073558294575957227701785231209552121716243309087992668505122110947541594080629888357768398835380476662963232131545869941266222356606874573444688911945140616807802213683000350407987078849359191157056362944068433979638186879287696530178032670634450979176687042976746088699372731957676349942679074313215986600344891354834518075624420140819475338352265079040839387432439720793435493370498339479939583669176688464610412563521040250558348219415487550299423376160169883952963706727884991150056816870829780152636233587380156048465115711975686227971740486707910009980448928973610013764085320134402733475983479066530972590628029572232655400480595989797832935701033425317340342899605404092676901907671916958497018488276687162327360412380947724753009450206075217256590229143531127993240109581824121512518504886878635213611027740688928263641080861677721620642339697931603177882961570485725280826220296278777950426038247820622761167048528532403832074954132323117588610999539059597012330301553969465450689860459997399309410757627124993904526190889768863338581976664380174707602344420829362054341643129285266986029673527379350973813239617102784351991014396590223913704027283606883312119070033839494336490734979515510223380656792341634435162503938905260243164578058931010354509203137861746303684604377996343128693400665984165675340311775402215091761794504872712898860770625871247310868032214797196813120397320917320080792887001598062172611573105555099119388773103728737462865332827503368721296114916419841870017703418975260073571099631927953692576171689462222260965591074440783976979643086310598864762855617704721283747263339396955451956173447361527086014549599450053961560026061999586612633304831871053412244653990989896651061996599885053583883047740548158153007579350017746107218132967025035942047099895196973446727531716603636954663859193283032189013093447876400128549293273818049843237510687984746481135249838905138099167783923499424694369785672193055903222779926542430921540508910353312533281408518991094729097546090388182135355787865880736256232661263084599005122314557883709747817794258198675128466601646188772802224105237730230242572237890333798196846443465381935561368775505904516044608181507690379604266356046587297431195847676002399242518288557057522539754737650392578744988729540442803119417978429936938597393553279907360213507173936856896158305281217761472575252462722064161574499174928519481329035889046572566058976656089001774650155533648372425522188775545910991367951336788581778633822466988830858809715858086829037971588552491683792368501849804069410052053360930204613293456942844750136764446236463077036852993480096129121633990764454234082272583569432099909619441536160771761049031430349843576075125252401992416313843501591821836558729671699900162037257556397925540885496293865405450270975644792845465452288344986020897238604105444730490938836182023293192027417209745501301060271575665172310497243479014175076776901486656737309199502981372880597861016474052148817528078298359365662058636397771656112434199808932794453361710628606795874287291530987588930607536925471509327908702630946755791652766596744897794798727576962441718803399567433211798903729894212762414271383168174702319273374462797354615391873801574487289722894599220390446442507437364454639966852515753141709721929165933681579888212086990793665616496887716413608359416636125389480817612564311897024261414490077216485560961921141815309781373179154694236899395462979692639475299509447803114046445430363459415618509756259578091932198444888890147933039823755802682567352203387199669431805486031724886372974183642006443514559708849728555198641053317000503052007949466435795192186486486861245116552877102683914910428259453637378172574843888421130904561272549403195167375062514347588156908752459416896127148741172274313662375213890836148455821519901510333062492214452272961598119554452272708001524167431418818033949473365952424338584526361580859846083879368473196582481378195350582153511647845852481104676184842376476228696815068627873994523920990833633029619642100156114222870688816572620341256694645945907005835569743186632246087199284880522910185629491201495080724799204949368921345440583765562212765110841608520585922231477830228354240282784679202875048966644341784000959065555960383393680430085343632740768892967828435671078561605460217007841347874489841520833192483723825464323198636034972258097919214525021756392336638906944739539875612681406217922952669044549088262564790156180048434504496626079005359713018376639685325174076238270096656401987982829030512257565295852057875891652677514723119343173963135834367342248570796139995352368961021226525958153425918089219222290200687091430103878297400168648031525279408186848685166235065286236895013088082685712506295053922413672800772471924795723690536915195727602675527220377141330224180282243474044569450270593312605972120383055902741410185693806204695606929601412902842339666835716791428053953562799577161825865869822210744027481958997557910392368904229236170791738696282215357375635670432945781052420341716855257797484139229685863821088784359911743348682261586582290247458566468092190844681782145888815376542481016353612671345413573630087292417262871463484738626031176509891970616722236935575652967280027826733257838303849371726733086413572162591270749811447818860638127451637241539033538716940073546234952679964411859530925192896909723228291899364644466561175292679106664262137467083208166637971392204651762617703731879592260705477342010565915751944737393575191019813692910385950268123580164990771638692769866418665412195895503980646511807504257066706538984249052564074421388345037734911139293253726029535795015023544277708298131415410078089102580782550170737906428540447191972498135736243399626478449081992339870869431210978356078260844022532628888949325323239613415650830142189194598426006387747952139584669897943400210503184573732301204840520636899985330933209863365078342278211796621024698458135858871631268296534574084212993886503383118191130915543320886738354748694960275579786104449077112982109772918188004817866510722767072483668646583786394482125379673133424150271159440544978762342851124987975232070128525562573864945342830213594559311278021510071341341371005708487103993533118946724157836310534415397312026280126312748862392028996140337346786887494530658635839177914988380957902447777440479525698742625386591166804033677987093075451873767208745241680188107933233563336515939610824604018699333003969905805229233081405565295982345457806879202139383823665599194829018636041871094209578114127130605414610857397052833100736186203355326084731262632535178478024173745540484328331301954757697843874800395142084011729275600980838638366940621194222011173034588631690336519702871511694615481971240781156196967563069985612337320510561736321772512145242010360468860425205296097675596688202571218732357629095155346702843900075715166746485354133569745612435358286730999963947235938952040129239873168933187226913050684308268412644424952278946780881311322205341624011354174054585802206154020606598393192692751825507619062411526955401859632589652647460961418463752140627716294403528655382195886217682201914838165477658691606339424192330415908087649066534713367038045699156873274282294764502332230926068837186506234735829361784762807204119748857216072617749334092874847146660359108839476637386747369288050654042055056788758839582281524060186944344167805741599968470090960222370595049743348671484803025383735257207109212725282923795256433642500992210411490528812257602657873235150363413927597468344714238563176535787523538024741412145858386364059718860791740936696241977207296999765066880395855289325152939803915433987544705546601893049041037007871131544516626460390276675155584153593234637756450175077683932027441418206387990184714493072205275863343266683887130218247205312795001885853019059427703807676388657621924793389303269326110538071672601963854900980345048354421521311400512187197501913253511790468352589390296706739009240230233683742543216353100850054454032860403198820310491728541830182487681331830040410811667574039368769888022747775437158500478977577619281368452809846514635206353316630200255018602300779363539785811912092906733724166638444857821306381809748966878149165794167028278804428013206645421038350467607927976644793740578703085613138573776749333849423177840036862391728361095174840834195199555910209831788861263105495414228397343226941987955400590544052045491923904413783679362819722321607109629073467668033881272447991970036984998606838986703128969030118441019599499202204201099457768040945760526912507574913079278046878916322403803569023156172992238087824259742784731165678551440102670142930991149298914253237770474500639203169027553851670136544121082266606587479961733714865162545371647494753310577982929868536583635779679235555988940964399082215145059532846463411930555475363038137999141537882873858399373837785366762522424816746215542896724735333288703872302192877863679511208160731170923515207459962768240962420542463968776125240446446349757905439012226830368849545432036780879754945903154137246911118639740131215849219765180771031680142374807992192755924840157706308251791299511393272342364892204237604052685802557001273660346787485169328081283203824418902406940442618402678722162155276923389841641455410937386454902802384826057807606528475624342243454993636963003161810843663343019059064662145803233212410182760960988688124443157719326397702937690426874444081519939673039261927749634567967040959866220580314544248087577584336856519130231095542952564593958631914599990416642613910676515272974793438436012791677231335233219718794449992362657322011342317577343538448770125668970217920050910240965261038074971902447585470369634624793305213401244228503424522362666556252958749012611297137844111682436164086522302841069271759911553381397943348467498296815791785484513740443733167060884655775209931873654912929669020953221708774962920111243125631523843392326491175834056068594922854576358183094828796003017538748227476090516696091442338425217652732284551159507263815217548086763440706318021759662774937079830510425348517984189593026031946674902833317632003335488731330531609398105449192146349417410028714748106372285568602512771940800123580541723536729759206050710547610608575104952724493791952250882298935669921824684640130205713327019215816046863319567337318382845194504779665369058948685290555096983264729312261992868433877153648711703377554153547168396954073587448711940126867781272877668664053904646097278152967726718305439586819952603754999099217679540874153977271207356709291177431522451830559506808356044798508952344337737773147133692801369143131441409994917651277635976209420747162994986082734886228588418290957726084103953005206249813695973007231463493573900166522540001564427543500448046870470649760825411388355442951815006485165758575332764197972769420495532382837040845071058007564769414639679441631638799458991055223490852632551704988224718388317430863513188745188144138054207992937266699954860941255382422795904436409798615086179728869469111889262366469208776759898979462336445807331481252974494444737451182491497871025736623146092671872747760186429150039905113478939887580853467521431330502359680280992522941683544995940803771603049471992468406168404144371865644670209022254050724627231289615493573795443854766029022035463669737208332623956828829379355516239762291593289744314727277507054767927654679757446579264281563082238001560663672616455144294385364439175422386340683441422789035573213743238776054298534051854344149010094296029818251529618614086563015758821532432523315752052777463262411174522805653231426516815332327131716345090607459395365020436467611790479720039939163864202247036020926416760905767004801148229132823000130247326547091519252330810893880837657393649210617821756407435397636565857849497546477314156633126450719891515585818583111405318425545128432833276646282827962373405259126088384986194034152573629319586487568278566295179645790622147994564241090003703629117627502338098258989674373505332988439178232777474719853431319885118339842142575936829551265961158571529209177413121750388000647927896975254423835105253144498561917429908471859911997420083843523990501262193080569171583959256890670693625255481785750183566768480264592544929085223577448120945888168113866681851192554035110954772787997621285453676485677884509012170152056579752380160600145874979197216131514681788886418343328126493346717255336187352948629033564957840432168410041602556579629703543773543611035810791989722296085775840573430064171632569367509959738717173864695352474186510839168555730197018221581872681638169611118369534791541218961272709719169652262435022960858545208799889660331777976629556006242052134675137716561873067205038546422496463663900234829037621622795764516829588626049193862682856399154851368625415314238360932698795973827472398134471541200342115396423967902907594913746769229705979163742571446778174002429364219197904651022028978626353989944231682140842985178048966402131827414038812659196346907711889379708016954628010213243109973410809464889212199284411288185333914004484038534468235263023370054056860215942944540027987778201613883888046559118860277762104754430518611854391083794886295830325648995081773527733911327602380666705051760984528203382227039332261545445154328417842779896034783536397235831764895422559345152739864229262693979872459532350961170010577526992451562096011127261195442911420838517590301841986311724398031734537448843558566889353879503315903802301917597090365159962642384743023589369383603491278714914358808566033941395207032278400845008777663748985040253013815495218444803780524278048224493442294964738504149167180912710903005309408600245020513207816921221413215100156902633686707067589689401766456494992904869543383147370542402731249963687946033722065332417708287554111225735368590937847639657524781394357706585341886465314691652559178933674628652409288155703722871919968377692478677077981301860461417310927563102413617739588708345058983367015277251602503551697056238883014083989352598817671366269104193457100051859970819241336470928596647568191670981795944271313759353412260129273111797431125724113760972233233555135135339761342259230696470402666528117271654062718641017168816021355723900546273272610389641464379072138088679744538131539458001747005403307859421686268748303377944722904456227419068394061554428059551832013758675008519970694460982891195602021943586490999340692688886737928117662414819631820212451837399636679722675006324952348533910613618826204981855475917987321423695515169072615155601080925931914090858942080075791766767606986991663424233111069851591599090443397445974102605158256524865491417034613262259647449280061785803988034213292986195320665399496383057908016639321673452921995496321502197595742983952800417577026433237965174012399857745733682908471634666289177607812839282820956646226790956285964159534901632109440209191075380269838226513085546939206108830782447128559976193583158459584579783892293876318659858909339121739633792088645888042279301944424318200214099203426203621377997353162940125055890958323641372545424808412169339918375563737490211311816977993647887990957586457527454570787640985284179099361181439504259914984215278903995460791728847990813683231505525407844613676344407125726590277852492533041245530654984766911397561903160388889630460613124664646237210158368266251611123619309897165803260422213212988890637307334394098815032267203755882042298650253909573988049441470580984746462192973696865509074486835943553475004945313310101189070184115066477575538333067598148637803918998070102551023163669852413551127943747044523257457882261767963982777447583357879049666973969197971090768449931572442421951748144363192143704413711056431561243908872187289547634031841890649721230091177146485435189321513266688618542513367042047481165376186570721892731201077290999556509399619584067355247195788755600798227567251644377358660458222105424882634885273465497463196143224164231882977535601744033461093692411387340662100572812512092510261756950423394964939274002060100985697330312252971328654729349993518918063643713900428768033814004553695335554455655353347861932490167760170256176658782603682149548766037693630497461994671935481324382062313776222179980163669255393571870200725306946709182438203784954022221786354095867047753470237421266681123887781806627779275541614549481553047683167244113678083834668857780972559217215908888970189699406634705571998678916856740431011484280831849117437516756293170192188283909437002668143848207324953328301649598912466476930297431692316478247766496226600360739164033855723174189718974592082463015669144190855585513220830017927778674968436913427356135247670793366308314475016975802576421013028944211405498862969222426584236079733160224503376795064928502315814773403074156601681245660247843170317136065352014556161989624917306789429849049756620391127677760527600943693220855522080381179199304761113845968102729087470917541663088155677890778059350613363268025301908613672658213747001075041276430425033449390172953490743345203690957099432724459876812305922826801569253160547290098142360373154449665373936854977953610677321698200614554833876975387207161971752550935723866803981462746016318277117998867294784990197317901779533661232497446309265166317723011520494919822710609428647955370072511688869245391328032057635669497765251651385907079792831146501741386730021185950296600476644785127361173698952573874516995959340137646579332869313845585348765354600980732481014725955362115794365617374529786419258157047026463791186786169412437598459539461144231922719305858163841629559829480144013287675100491434871379194908282120546204019153401073143557268561084363804696950810308679899352725821283911677279559494540802006892309687518268218266843421245444355807680099385643556417645381402436275966226523060487686257496634466087723568159644389411545174778604740049425792752557391461825009415376002122902212590252848465469242621328147441941896325540197455538562357928532581278451176603059893138634247254684541012642887165365071513488256474912368199651128885318253598704342360019141744318607878405514294406204270189669969057176513818446952271565677833280098070839970931889975078094118299982770445733580889027771347229083589961756204026533701409571170727990396895168698857652411213025495026203551618885977463775321953889948398249017355806453014538909312846328681726433359769242082843043446121299865540212349919385381284985842718500615224635798703505275831671410406922953525395845298561513865946383048028790701322833732257259368216429855159658928885966176400023301646499676517000858265737410014485204819695061708375126894057503957540274988980148876484010660854604796100134863912199369152503423345037680995863790802659113936219701659685068820608509475729299959318880084133592896688664511670782393345192304052965743271410398982045644058523294435561794680004692553236215486825797201170884435004599908795969896825812328231974843463370485985228639918562307679056148858397336297757721872291851492742133471385001301752512615339070642029585156794745412697407819526128225743182674749499745369732137734323924871013340099939593293825635092901873902630215758164788421339137933434243467812392169322692676804669261994805735471042181269854938844991345180045698093371660901780282991544198992262050987347570220997747163633900655134419642903545153809948760334393896522934556675072140938490706624683677866586492231900781328139492460213714303070473581162295528958374942564502138217957833864102220361069586966717624330543867792921344604481483902424891613992268370885296295119145317242490880340482166130935716227646303800957096668692351768818844313774084662625777928460080831049557242742667154451111411074513953264984132738722627853163073802811066665353099029537190961400660236349691866216193891343737219665654561557509995121729692492350803071228264839328902821872927679185720655717267692469292312728232949840830298831485269207976067280509414305418601127975913058495395127530044612900241326306341932169931196704715998774599411423567257373359321236322261344547624623331970898274958960096162245614882240388255536741897965683980336406658973046567644204391109874943404145116560380472951715668393281729885792518029444473275327515976598522329111800639785342885677998421487902027852323010013662358552516708109900624108534482502717489025137586841174167384760776619804844246973463503558324888929737669063090061958122009579168457539496201082802831296870276605436282294088718789118416589108226577614715164686042908962321626650792639531869886022846554016082964734067154278638516129644355111729384242943879538607612922998214854861172513163340191340327952416019661144340778067557940878604644429681523756364512098543492424402548320542213098444599641186913720575642423104933358383533943026545971423374870609669579614921248762968930340794129179289598905810240979139287832668551357949361987548962948349241602372547259257145396493181287912894055492168051044967481801292667223997024389372097468256999918890471462727048467547416037141241387599075686964651893364607404713965022065007129456747597611179705939845809609640173468558874849301650924621899168203823617431740309181633609211128280326106850537974036963690387187970010187261012342109091464123003700845823504275354984965168503306096960063809534404369015681489926778267508312337304809590998377369988536900356420548221308095522797626889462659698006372033967364389328602286953379094190200738782538063456819255103589404165662315378106383257795544803840854086901409835062017404815742924936972798982194672729440710107251942593185888364207795962937079227700543605715092235989851177379490889808418025444512028906970590803655141963282996444099707853715601867864613632906342700362745057845912216917961361241613698348135169724702701971448059117010180734121517552768373598489869226700023283761144576263524680414948995389983526183354810252701957687953478957094812419503966791795053906287408174133018662672070653577632888183757315546372243754317580236816528727930846320979768720914177773830771874009841621317877634263260065992242351059711669868074595521861475707249281605274804048259729819504441247861749666551704895125960420841999059377234693317331855640718894858733833964193700827366528674196142487841261377771733422249952107014219690855602473231859516781701734341224610241803228395840887257594994433159423110056167148764442344489235860626366679356768564226690699107909699852722763289647596563921751697668749853631181273816709171601217866973513053448906191359004213576492639997543566492333699940602104197686358431145364051273620084883406337874973624619486624535371449861256703093416562522696816900247986132160373120970638119635136223363994347896926499858291456825243330839252008783256048484307020744622948021660856530564340107545920864321090138862791593325135705372050274654010485407001441225722504876795164020243353455041121932894616148140892406582732979285902078372083059566411931427658381491532940214260361994428890900471799480162455563548251059805625410578610400420179697864129401825616960486903300698666621352907935886234056498286939319185776579288538063017068034910212977126899794619692850891666179750807711339205560130949627688671358755556570463414508439571612051591585795914354827588624776561671800802134990146731466563223118198319838610465091418759195331803965187655776940856785413375412068711351869641250463830841706943015634782391408284903670384032794695874622137381500208192277768776121496065374436165909154143375474295615281332420985493556756979330390762456368141576959396088247011923682156848482721559329258395362635917535158185374329099197478487260707130867244849180298642634166503853667556811260140573133351064300073739979175575019806657961372344840337307526148581534541837916431424681398520910811326485063077450254968203967769957029720228512886256843275613527261659526128571145846953167659587010983254281570094396090177661380552524972149849201445221007439186150666717199916818984462198600352606515665217228442207319134041994506612632981379264796395151203398827107000345529634582564852088358385201041995505407976432483809403445183806977089214774527968173951547938686041479109960418631710322681906452953616446088621892071248832256860880207898371616010411500121998696344108388396467382319743648384793168296029003717041529789596355836375630843133998540232936662466544787592144421550418109207550800797357217702885442688051640923322466131916543683273316625688484233804915507415441724329469410297709429088003174494434484045325625426627857817588295841292633665227887049369217717886666876251317172169124790587177551401166488700146901556663717396671086390182726472559987145636084481370477962021453300701989422777835761824653603886893657611325193679296922473536017791631195279300518838760190941403896110567103341555075234295965690883376967977535826649807667484352385588650893213868327368443433533928504833181476242912413691639233742369215305287713012367007576599370868067577108083916037393394013309549256580148386193729186146077280447582458236311294341642656494610312747670744743693420119006494254219067065312527664672026459231129663471130274163950760433758872034551975381292294316183007289884636466790604435787321364201038364736251085814023582764534150947326753137967784173598317852030753547758620455986404762146728465423586343087334822606441609454527130961088526362204767389916903692570885614751182813346491394728098904086071700327821177963501165331693166150301535703110204177640702209749995997098685966587122220797402057908929009060220240194970678896275633209174286046058097160807382636695721240016387230138559668164930144637056582645018781505249519813060571743020591896064350159164494628646958536863646277990884904001208206463653271075605085459683640378861186395227740056140680599527596800650288967540376909660103105385009858638582666249164549190382189209435016346186577478977923898411391128125228126405637833982358315139974652726228059985654959287897962599590591142625927978916508656942683692324847538788208940420027727278191020692408817330824915504969499166887597808675103744676460532169960926652767370912041167144191403985021842719794398643390662637353287706513787283651054168474660786680989310253176993175063139608040693112789710100004749845584379627272263431347751351911647320562325564159758203442075031180386968077632841463568135370289069954158932281650570868192708914098108315687444256318501598191486773882944267924944731644480952967275679007433909447064827916970246799863562714649391730667619905702712476424213788049516539232246666423778225052468060941853994635164160129967225521849488995112262768249302174683371405428581153198621914607909974014046436094971850223607666966321425211317537753919175772341609137733459921347668621548296740676027664856013781616636836376766972195577453454004439718615546210533428745770380650481164327962113963279681859973553338677852555971396063732003606258292052227545832370916165334283022723986619305262003792726426408437887595340952750183957601078937754617431276799701461941200672122704871088625885322158427478263276492750173778235063941928822118889888262837069075206332782787851523583417640476441482678573544364155919322191439395279370576627284407407719779502628774282228216640850580296501542596549558615073345655780544715625225743570029944389206067998792501703970928184680259788074863031446574329194120702080286902694835522944234067130039474441636159275518610489612955375026191010626585345488027031978499791511317804692312099894622813181008108324496721485445326744887257419281824569664769335418618634667698801862515568115369729639908756403043713996123814651667035022249780249408816203996325854647915066207070292010080044454503121018181598436863514380145219789851065633832804455183142195253076776746962671351644317204429589314383233227227014478831924884078299106009393134127851115468801107370535271752015227471194838100495066015836256401222581979487286765285598776668856530089971580446605792386594835273429478028833812233939232719497057025905647005316265056421826074114136442300931881245097968669967609938875304235307496680322783349254595911163553688454732943403020074634192730449035164728655723884654178758038291886140835276195144873334806781438375342770614301411465126147955582409396033875006357453083990775734290136665525043624365588994390962547109863982904159380259451889026163448885368658193634329680964491967927554482076906769351480340805020082953120930121975749358717759036331923181297404322766660654536521931552777623353873096540543541740460222507530813122657560838845980810625156432480456434525288661100307675184813368945502919856162906963463952236776456318795897341954501032490279380260427553428803714383693826478085821602631006852908296727843388827762947767565569335870156403445232749165952377122792421709622243375866390828634981637127174735949946672983688469375258529859065059263137708736602698526194114580493743128373292288238110503337357549854396078989843959386181132822614658254263062948243705959173814606476396523920732757695483074890560378718837659972340222989217581694391498386031048887976596547215048845427558047865592088703027375238584027523870350978484896621719259742008562156182540116175409470104632655155838701861653630309842999161730170129573505141671121460660306088743873642766983801990518476647718024106281741703139646089711272860780328554811876561409673917578293676423912492864841409300809504170663062904239888567443770116295647465719507834753873511166306147343218744056326883072601404245697183818474557236427937404195833895357978050421729716091062834825934518349551668622786738743042762272605803380016037878799800285383420529079595490554649862809280814751152848774711237010025769935842073944541585296002027507425230196771642672579509058243010292869731216236633065870629320814241606729051617197905260652325496320692761317862193183578269074266999035369078969137586463209379402383643897921203776840173080654976382531500908579097374819172447139671855822513429428106139156318124543264732332367529029209053157035901511738910161830941420802889598442119666032867123633397115319406630491452384473585123791261752939381359734850001346932577598476643369188719911027495274475293626609048556625823382338289724609052838769446517322411552378196146593559667146578750126022987828918330502722822392189671318086554674700518035722141834133183697924293119855543472327335717131736981394505075337914724572166558417656761517094333272043399777565719841941448705661222002746242056045069248062354395627915636104566270617406093846348242885193582082798329184425703219342624307105308125895688694657451978624860145856641299821249068439296208334424574596031564748934762080719483015280514142667901945366247823569590202743280276278530037817482057501672386169165890438311974904054590291478175807568949958416966842029922132137633202460595274726832504780775875379901379148471017689338697513992443129937364131190915509603970093014691921697775343164660222362254434879589669403916152799050545396041906218773370071859521531828546679033862888195219482388106533366116227766364085515202909745277763781344601778552094071608177284084273260362304365986117730350355382694358624662342727672596530269026019082027209108019389506268064081360557744554869639459793495378777939583424330253676889998035875062718052606923698131045147800501451633156903392451365993407904045646806844496930304281271110614733799733071560968779018477309446752449947140624448501817738059429173646515933770739042872841453469178515802878965842991913123623514383638768988683175143267804686169972199273111999938268411204388737380501492861878756593288363905947345568372494327012765196804205786418639314104014563390647503604371655031625514243824129431871822762936296809514518031588932592337921525606521968885807959002682726333467960066523852261848663546259358781954914337096272740397948513218507209201931038737356370901192010456695851505330904031705710655707760536711237940571244264937076558973759594164907457905351512727764876144352429278164228269251686030883702716435844028419337265935239202844226715077750160154322201645385173431481761293769824958327900105124725126642682535892217892376567250591630448376360887194230189227673419547545922276723638954423106415439931260636281035220937240598350658971123088098969921981310828167288331274558358266930163125845605417990096838527585062866091451831956028610714772116781848405009199167217712757566033051917219546280397883465763562986621919660059919621912966010255627448252393354472633256786225965599971103905953333518342664542641579459230611706046829298815316983877751517619830732601234985266960140774865447881581271213865452921105035074905022324147901318132415136630298250914283184549177214833821840860085548338651199857398606848149133314145383264275300190634522826676102645827485706835475747884456683701986901524404135527233037014856460473273850908806246611780586052500642022499950222996374946291370938393212323723434535755893434297262663082074055484922449663577700619023452841305307858120785758214547640736753950874598719829945002372200169432591210267518660858833701348610248779504737771203090714806741579701776956114886399949622548054746033650989872903753870045765803329465229167053871604085935083065818600995674857558763301926540102392473451429895997036991145277916478927187987824567732362930709215482096548389525417753647349928047571622991826496533282232264914302303238540263539216573409233820989501079649705971459070432264238058969291942805564891282802526789982344400182034498719050695948874872350281305117565910571936472896647083660333005249694609747745344301119080861433667127931677220010057337566931825183983800966433225528284861927106529079457772614471909569101347761910395922702488117525914511367257650406952140460132779746796509674778005021535182481278597760735870478068645869195863497171850535969237064198621947685230623713264795697845998084354278182955892481853630473133948577281340080707744213212994001298937292318288502136461587203104444137357320895362085719235788058945092125912325319040237355940890348544151296802012897148228335702500790431159097496018655815944698339652375370528107468749533971752129714955964887316839339158838239477211226094657211799046538379973868663990340596466279980225093145752394341488200087693980880446736351682213301494650871134970577481926645198201425957484710869666489576892141076083387231544886821175192779339795503223979377585449908991366993352983008099216814891256318374326951270314556131344539663588421560966385056703267599726318056229368408364681751757572392358880991480119555048900355347681928007472946636995745710935720881768210823775751959493920789477975560663434593977484952084433949014043126128206916273729028322665446476941689393784350289507376619465587148337691987487326379880347834253821887884639436101278526147229695479626769110681386374794376466337525480096547371677483104313787687595464472872597399431265139747528099115684415348725191766949794976940800891595764236891472565681101989956093778220047001141009942100699473331662172293137401514610005826796103817419406627307473769534719271798125520982637401945147989639097232134279372447418721201537115357146506678365974269152084209407062671782343006089243469200220658148561544679090373400593429403846060506486051125533334290877940287529263624507126515271005279375650436233681394060476925274904691134771459656619260100149089253328045604708890872840246789702737143373634717017949069089126479905386316564589651713266778816299469751315565250714569728920247612578641614012141382460703884236337522673510758561152437318909835251006528590324182974162922010793466834184133337756622377159118599356872598307130143240561464032273145478448821163677198739492648345540555516521983174924970886636854009563432837187225850725064594147320653275685916027352173332878225961566938653989540201659163420023141867122482361456618146395894125661840844689915835475454896363256834215692357837420448887625555688536974504880669938432567417959721954157237626789987125164910064220566270908874211514861208790081699166412616878582533317751803476813640554114365925360227800927847793864068862391691568624973935528144158066816382405425390898681652637434751671315728377981717442996365817920405728836676978357902446627865240780564370099217724548682951239261802480581912523590443834352498643663873125643219179375066705432603221676997921785592377805762430436293561759251301411362206230206270570735328365391581650714939886193897836742557132291633474851750017027809401286100379949474865732013933824716132220894284833963779904023818418255194480435056614930181262939561194648288079678354905991806316153203816502704953749806352544387197763430706992367583046930207060043172395139221281067001529161170478130144522561011513666594115043790690181086968609637487712689585518240389421543815620756093946024998541039199391293869409001479969810696414226167021464709340754312779229124052659436329912800488296839937091428600975922292394441588701493440889387386996045200731662562216418393915809541997329546361494622777189773203138233578547040833165741154511191859576999306546360598411879016270991497698304105866741902231087045921201271082342933174146985830509605194418344279956077311580340217805553029955557696645515261270904538344736462143670342263293105738115364056740602296305877272208586589948470181523611362853295707879585770321764637177765113808275100405122184604923985591242877492416833145810975404879254173268686286261905210555998742813951244838083926178685177145523860428514910562734816563598439919864600400813557430732447502367271240465183681294553946929684447853016800504205743791020742709666626971858332666558095874401356509774469445777897260406419498191713486292495344352878155526737799627574675729618654170881854179709503971866753653975885214174357320098901744798730028957256989500397906673477965959893146992226316099480140039161128556749563681486184542865483692644859871744858309398914287596215667337301864674865746761735321576127940251918219503102921026467284092378540281480986601323603748289014229737279583415620266097945536252496397676319055448987773563896359532845940444581265293548484424981593988893051433241457518260811050919664187802499647051336660093262805439968546958088195598457253542600560925904833167841185415518213859989254950382446536443051148168550718534540866473960298872502050364180022510641699805316431484118554610551264966716027582962131479448262466700085160610401350991960677206049340510270286722212535971255549262357883770162761271470344777511150038791443307535640732794999115179947587792726463775959259295029049599896261170301202875492415312591268984940607932923296447786508468736153541939856800470422484581370266272370090734976006760486229768430356026852787711480755604078448323984765357798632646124785494364081655801415772341560089827272032634582201804591404038160016324740548057388497911262284165416700395479099493240683843647011645724026733951513636979467132084389669112879504230315814754171650435177164859772908155869323553055272572130184955137144770509530120923940425892879592711790182392223665329310132753568760303500377040257178939291958787503461682100014491619125980302680313547280462907911124082894695393971578237575887925312149657172376487262676649428827305841519621534654874427115896881561975705599853911619527683800322302770793257679649838658754241176526736176038604907413791816071434316880483612252966122503936923066797598281773847461768348222439670884876071197986845050059865151624479122922741285385198889507764177690433030826651298559472830523826494313422553763289009378402848729904039594413725157295328471944517281205855033254618711445316739575966150723483488858521061353612000713001827014380812704393371991799127180521249644505513776355793800549203470740431626544279587223658946483985726822138690086884969543634468680036418454568283172919929736598905877666367121362828337064943910094985953804362056663791629059983027775773818311632470503065881973537511755341151508168875716483181041970011314835676660627096219969391017381876971009699649262119220415328783795867060301303231561154980071640802016247590135469332761622257490536427689078532440734214082527152942336152526646832946445022839783316190197017510165328202544074765245814232516318310866439775529467968866724150051714155088688494936411838865250694878218232973398602574510842864814534052354140246743631956873143405675255271918099297608720569056248906263311912322773758111727244703836992796958314988364605988575707651624165624582577284887776906857712700910484921350025091923963917510947806133281079835455789682154371175094065336600665502060051779698294289902199973196027484639278503335366619089803279889821684546416825252527390522417797351955710162538740318712793035184428213552273549324913112390802545591817391393135074839342521104061462399551816687723475893945250391988033658067535590948375713538528434184391174177452639999376269701989238331701528343465708619396838595825080920792091507475099882720569635962784667790951217771983794191846130489578441013659544572390034065435431740464290685329067580329623675844961542362583392754711949576805063945321595581334417925769934341018331566299301902949570542850888136164701495825678744931798811981249912353156737374984426945545388802655350247696328089987544015921407844230963044372063729561551515143828061474533877827296181960220125769617416553393429147993955823123278100698599416924918877341162178108380830641349670647891309480519398671101574143915522110104379315902385155472931471809614263262214408963346716594928862838196135795419580804192779217609810648602872018474079313837503465247708312785654166889279085020168820980037223849126149574741831038139111199895646470143395599402000699449543256642699305836785651312795917754675254405694844031033742258315679985369494291343044770086123645614450354601600453750268644726832558687104956132601097391259408849671010596349862872073030747173078739284936951905143039118614831618094619486600899425087243411454149969544289895901003620301699489638191471412131892966957801431079535162579987069596932827048696913464008523645736376506953698361122694271881962244881062316976996893601475070408032798348266009801340518341436516286602832594982439048741927328240493118183775023761377664542800536839110877598811936757623050405514566318913646318833639358873827026887779820165080011802695463469432101325722374567268773971409354171394808750073365655100901705111220654076036764298800942649142707760065301382246218106028515504423666756679118779730489917998067081775151340901519022065640550821242019830068578311231841280920719771258638811062754620224572473889259607473606562077709012539405021801653405833731553952891755535334363361094715755188352649446025172200542833451023652564192587961680840401335408960329357560891022671350333731469478973569292582565798146120012048734950248749021487190393209895592743426403688282823707389852783438570822290272204723890381786264296188917426947451066712487693308424272067687155191841462339415561438031345320093804156863927249479871674416542694602357299446950952379068370530165792727058822310115391172647282185348194534678084918752271397098978844064670383871660909507133836124499550571477743490944636171707000080780270891709843499415076479426542201993353894963975588902574830749319118405022884385107996505743252296799145497706994890852610425408721533566652208821839726678427677747483383108477769293224302029711866889997927522464709842623284484113402730216275372705134850447522559594305684207986230184830470375783600047032890604318512027382697379341301395165720256386488880574544512663047530807584457688839415269281869601234594490190415310161765062227517137349690332524738177122940515109910523017081318171354003497296051622876902068792155777884626079800068317502530928051502169985702812125080290745861251199420401542876339974778035444553309049043312023668948088319585887038986708519403559909210611982563434829534705102143892564953610816659089971088813258498693349121770450697297868434968044786385214366638665207503535508915906236074070403379800553590363422777791213624698517174405249033795561913417616013669041717897138090429004948951972238478131707544117299133895017758058743856530850383575290751462534407981742460946315447318625690305178283411334923969610425485583612479331009589597034190367078022117091375416974063717099358852107337903960967964536010316023952616347612564193024135333598343387986823728132195503937587635515191323147136255408426043217944077459206451750358913923220376954022336567382000421727535815201110847061430744007215002107257527061716645288376968349064816878472624937390384895447109039687320336608243814609379609367502491266432488651519763734179927061973476282193790084825626330767830987030397930711890935328605153523380598044010886048590533883670878335977694497359344022262329664869467891713811612879376877596961586551861910041332065285042597497865620046565555540519252972173802314267738555267043190313761604005264990995474673688895822232500458625612566507865498431136504617989919560121547293516837697872038679347089951665725124993057279015497178418976129393520166643027160331257836372016954615950830777514792842768285914962511485234127338179614702355445232701845811231407702611479954918978712594872532314742175579170358200535419375322378923808486862859784892070629403641975059922123903763786319175739927108229101170276428013975595627399223862160424583145995881884599922899494770059555532205661505060621026004090463570043132504947595826566303547218029093846990742928710250644818672088228299683067958747807636122984912085611588233645815114660236112760051741553224884977877743457584283346847552227805516433794253172805287830220808821225848562835324325280541734684702939800049264673019902348850447545608009398375951209532107094204377551271200319687182726599429342553951771447474219325166359278490497893309941597848021232644931352189912720283203213354197099262782796391737102054691160806310077149569033425858547700255642529458549806485536022019886192243946888624828759486343387602747991207497151239866657194203820960383859281247780454018620782458624471241998044195097571412131063263163197917560523582401603247274882498113719325608947334633184669678973073701415507888988966134127512661924442371285673991582397070590882939583447039122462309366390441726515495348457962055260773483880334401832093854003878948685928232737107605449139932720125460927229375569113499147444969671889807361441733726673375890922275192478807274006989565913253634396849792085041012666778893108640370687740913733038024885027353492000993245227980137235016327486077113646364142962433120666778153773197995275561383812221976536999532936376357491993588872309199775357127368230105794279718165251466515489376339367925404497225313627750843237371710031246433697312452438518707579386444714964723824137041026058392434798851728528964185129179350409841319805015032776339471846586743234109128669497713154768155162330273506514999535063526726057082087463398717068021682793529942763053111999188599046156860388418482813052971635539590282684241099918024452671922307218463147065399563694606017916889574960949650526309604306375550046222380614076126561172669794659012457352356220941378855580702211641925141720961519675832525992317414979617771548409465848725995599678960018005566207996308056936714101411030362978094713843926305840770095871700793162839519854717865460192279807745530002184575019947594543139973911580015255538498375590273426456244643662916025902670131063822656954274097314418811440771565305122020717136249256175930405554223459854247116304812694151941693790801981302276762107453350466014748443675576727987454352891428092242885929301411729581738798035401817530179477237979775309958105332211684365446320175281946191306566588524433340494742967638723648268410497387189503110212246447213811125009325265339507073546307175076868600314491138841656417824277323736862215365114935861472376565308755337615716191910576125142917842964268537861054117810510863118539207210832935064905188419780009594559691448250274649003733679264875926347701239405744025914979314945194754642432655747255412263196270092965461869201201984997900549817382552298624709627665470599129968037199517775782588542947930577321431533037318771827197501813814414800746234961650325371785696313545401796726905141037922600216351010006089316522206140888470928591467930574906035044626029289302528792859364784374274374513234848793756149320291178675770644253153709990331809961132045493217410253423848628212610958299034710914382071063248167879773873770064098900949246377000323113240366977056499406394226766572934354714379084671189813517046184327727648937719233718636573057999730061567510340772881433766540873052660550636656500700477106203549234919268428049680414459011451879195264806872661385110695876258079706377580862334900722523070364857332543689983403683902073164386500249112692071807746903440656884429729334619819367222848678631861023967622490939305856699743781135435354555480327230940470319950862434875966781438357789845583822597556101685695080625931448630429786919309233872786464990451625735202159208734368196942560034169259251398408122471699114211838500986266779008958378249986526338810190651856120805047350122351487973553993039811527632466808775098668447854829518547062758012301648552387948743366879507267435323605904673630074871076026367237219406403238544569705282500562644766997227619190659629610092927927213282865128556652000861167976288901381130001428483828549002560281955140221737045004465183606090400113850185339929327535235854156562548057358948825329743788115883087632803322964502409219876656674527768552322004787570003552222419913334331377504192143743909896284475346578020721209462277612151749347323488833089606943971132878393399464351968032704779055191013111000912846567224055058915483883214450259633755386576091764564554179891105757850606224157846843695074419258059272400514568824625204859985447505213829197692158328908567423136380471175406485652538651157768461825959359323205598496191308362292814523475791946168979184891279353222773632743084080166512791028550615345801769885051704378136484840914357510901598236633905730516399031338003538848889041167520462090734367334992287821222752289290890807879156146408228925305257039410506803236550468600025678137528125390844445369570921640230517863777660602715321486433050292552901159127540516435324599341646317737103454160605667344573791563446563158620262294353667033745693064671016094205009666340202475558698707941112117516228850460573978635854548334542930001839827448154174444992014444902762316210183209878015033793218639294476834779284353679266584071878466213908372688723048618216923590288310828546537516521095172792144996910918137659595555746729519899905589333741808031546830601340162067856906618706501129672987672841365406492894952582438662850311275160044165415601800217205924237423120943706059237941491858989247472427549425854617190295467701763721062762955594091882860507680219659097474140028467990005381990661051139857319648211298905203391999737511046728783449904703296558892869500610098510864819144137256917343052603440379647543225112991200699647159155493107033919886541841447236308565489482180459857859221582238679509457236290771994323887981039813717145691632908148930108708143573614900168278704083190385802521281801214060784828017083146351855013808019897186742554384303388971348688568993011076649326910245157921587385034689289496242921913801973526959268890037449153534018711114449217939669303914914881577055599890821526961702893620743448232614220998410203296440034755417078470547110393553904238185304952295690063225747158114591212387922550363431932479427320577933574549607741402107318568768533294500689922200864654206812097082972327926241791393897615338370874387697169972237580089758894925974412936808255585224360283340390425994689029393030908273953346628342312494982302616614680317938526845749497895305606627779432517115765045558073133821284737885999719148485451045669661182369670907191927190125282225846114720058200656652535498994710213276325259152599047520033093206806116920329775878715958240469535438581384654438151580630656236559440930314906225571055339081419509264622332362095280357638821466893124795695566020470417859480219015011753359697750039468321870199753231832917105985526644671597725143731720564145626103522638617446594992488236181062998970832606195911230397334017219870356005744709688113392500211369956339367552884069069550874652850849683487876038556461027807936722655055679230978836326878532622867074577726835259493812090277947839750297719503114561569858315876266769806596885325527879005253644526862420851475625987812330404580292790762541546866030308121854788941130349048061106584260268358991385497396702597679742909579465775459166659009271905955480509562447620185147633212374995405643569033494082241780533008349151590656723957918448808740275676219357504449474008713616171427524795811560267181941907363733585708315195283744578471064972812115062621270805810039583930961665819340274663480642949704236435520950483463693488464109097201656258542787943490783134274324046275383918497538234464906114478936769533460895321963650303684328914056091331105590618283303043163810186127078716268164351124322211317214433664960033586605934939544954569423590750545152467389155182695206752578543975548253403856973460346977559072976500781156840001087968328558031496516709860622017476023837613214119155721761353857601271956262028730516286439093598729598554394083249863894058247469894800273530764743980856307834443531266624132725743012752966938080015622570577892460157349510304049227052124860554975108815630402529103382679884281621769945334687542710661455061694166874583265459656997556117622458480632092596671251952912201122140442069330411599414316131867106825594867915476871305125307205051824091224358438728825032286099530105129698053857098766855160756238446815815127787572906869327635382224969783914741835319924681013603582775820070412634113526094352362571468948086789145565980095349147659611890338195275218434961868370478787687454345568920972027317363973675053550392801249511557262503357448919740787840973053971238597600775033874255422717543116196922015426459595231883299427330147363224438595792190602409865149614391342344754323291787903874176732511439442788920529106183689030305498057307532050419000793779675687972350142576620937978318172738031063123931456253500309689224351273238351619688233518585476549614537316156934606956567827612969014383864155224004713034708249095642547886270157908900465636127451094511297521385601940762994394052769663228631564179186529807751548102089369577261334350142344204446855511106901078845568341052611181621805223514962807446466991273174133857681021456542430090061866885659808418061848581617609109466538416174400262904971210930106734244163202963521484204319117156271248913195809821335594246965879917618791130989280616915928697732129695191812569664843532094588765800342744206976463464182865438181223706734978593499919111189768564005925370058536547622582846290278220580454427404046845188649597688357613281899940787537660408420419790684690184287375057922595516569653982326182770810613185131846879219221804469364573762739529883397105314086088902308239748082439270146465596375208152381811726998243922440348109354513543963727997428237837059196585241223320759100955477401516416595529752112612248264076959616170444708252044647432271110651801505206425856117938499534272206274531214226467057547231216571100090782354512463165535050015732991243401646531962947375438076180504915569511744161348611313951880055024093505344692810964359715548919764007521314457064939238318961961491654367301990384095629427106236722784509633376073443754162317689221270534196189305832436541971121408055116888543300764760137871382242828319595642908958905043475621504200286464773749943149134631181399008496307639302221083775098781663981513390946114922053065228037050943649783849269872179606536638895141137857120154777122695246157797871928547493308024191101482184994190200429921117613773601462087064763450445006090768856949983496744806412057363372026718478509304634971986929656333625427329178104334813115945431272887571741506407678019207829434917250655293726880040845063531441805533479629019321443084361959778344447354622952994972117128084340106906213369331512062074867577896763949494407189467908711134545648406226026601266554653129912651333405870970599339327180584861482138524916584684824958864701705261529956233656489312716829170703203621787987254399674015822836862569111249224623233462682846443060110587817501354432977381663861015602249116290388040884937321653376479444289951107805669363880352303657025919963684541421385827155815132088358482069876208518198107264815254846441821632137462668486803454579031529828039100529980782998563105617772354763257591162997167617619547678016251117101014986275688342955061588391828977677738657932604072982626371458011369297906119284668651574262926087178425583138465768622595998504762928175500360807758469371345196985326185577209500634678408169066536727377314887536813851181470116964259385957210210996350662916305434719814551759620279805221554436622574909884201293413370679678715169524902158619054234620254090502457014596456636006675705921946071124677131999801673325414473212162315469415717674426769033693752542715346194475811413884361786813958067869010813326033442744943889637019273342319943823519179655464916500337667512169317004424933075623676283217396018345616417014412641604195269897427847049456793858943931191372601396891502272583728178348670615229858583334779831075741129814912414813412306172519161083625697378298882496553893137012597945596492664864853299024844703210544323039546371581962159090890086014988540453471847521966567401103698124550130254526868664840979153404372419439878408522692363920116492311356342356948507012147325210270948728367622764059418691778581710274133653694350174245194578596486472445939632056947230248772700108018679244385324913253545050362695033434180599001227200094062031893812595954195401215797434046723655254555746795513935501113215310157133637527656958804560732692389440427681616962421529067543273767158029280217309686490376572114890067359328809446572940932991650903307134707152683784871394840383109216273937604541413705417392027001805437978893401126419218988071980223565017809272573043417009336430041084205000345877535289312924104550007593642093900612887755992748222450545907110628726699480930137726489489596574884483786540842369548326961023084817391051258706656287710407905049049356460995478711959959986036799160644166865550762355803338275903640661875000811969699653420656903270879679155564714679700468117397742788645714984789119222716733174969712041380734995725214095385923446071444882595571000656229062031348247099048886210297540167672924841930071316689263537164403521223838011364914558046407233974795249115197918609171964721720414949913743073604404129754834297379743903573459139804669690612690954786471836774899825287555407812590327911349750616352772165755581943420792372887823887913239240312504546783247248023335484415099438794704052411792027135788316052510374389596117551351144510054868283676121537023218734883350246065943057003319771686097603092720097816193262533295317531538496931176096943232226098395611680282912028350898791557332477189227650118466372681333195483540392312835432635885616127901645470038506498898181450671649369988674635370735984102133571771946991348428894915313349184967129089104008891297186332003240297573956714863356291011533800935215326497579685209169508523084440933272547774270067522879897768867086496430454956398436849822692268071059115485300361997793308787032406025971853826302846735084375341940624326758774352651696047068790789652567122109446441233678569342773392288547356820418971923999175833992502976985953375120929547039877303195140798177267010920945436423710766924421828494612105662985474264271252787701044793912035073957131717735154672840765281691499063682486220179954819632870118475300344987359125236838601468456923802496481125665991732433198427305268447186892029447616376903082621991573535554050525369262173494559928242020999963447598041500856802630109020229583188302259759719437179694711680962763375765748968229542964338475990008219566671299240814471951738412838244243346037100027480806129323824738017519389261559668847961625120722003901045103227536382070162903568837944577033920277463219170411555035783773044627040586382915648898863721647520342940835199241480001250859227751616678539740734941712187224461696977430689545824172016629557860382276394092320181178520725085221769158247150249921288820310607230678180400289528800205031726148479520100230227149140357512208940287822831135717293332398593847864379720869461069260189803288628699236322565799705303236041277384858900323611566046998849587586392780833151634955035408131208828182749973469794808751107966251444984511501382089691143860373533397456247961759422181376255844189169234693717912616572659108539513913591113006638068889348012152201125835649036175711941307856782099614047731294487831022241305402566629692458561120320433929327280874719159446023145725824599271855631907955199700909812655360228637319570891379956038212444149292718178504128985022189982391543321853557353742294843764879315617072776942603615794841363414255672919093525571862477867430990037181041081377765743980754892710249717675298175859438504412529772421815334919794478016312809949505883602890272795318648473768992858802979044684921047185049877996738786410519604542125146842472743059427408211077540584493753092370187107612561157110342177347138194662845249089777279033048686251141978012051256755076920247352915858253909919707206375523681159600360803416716229296607288705018390290792919340090151285335754006231279349946751143490809633553978320445076389731195349857388025770967468573523608794999814890845933092566984385171797985114710552572321832171673615401293366160546941367733110933884602688237784346225679265364642128008596115269789062795324264669812860154303841953561834424513248419839297053960080671776646356702075404721198680345105856386817232242519951469441641817361206743463763020596201813895460068999778497702318333940405240891316368198146502919989560780990225945939696997246777313513196155167032929679614425619859263702379026758340148133849960450952027189471250504683758003520534225012900665863719877830550863054083523538893204335450770881132037594465629955323850647567184683598676490420449384992044085369757171788464534368235565310144073638764366546569407543339837169830153053849798305512209249108602707840127234527060039450692035858984740716435015492875624369113306657958360349422791862616291233671430187375223603516155246922160244703781820374629630994175946817524954676111787816151041453407124716982756657800592833702845992060452342994082775810499139237204228411206242285247891869295216412786849542129567451247326720335328632699387889806060005326935060227043292572385845281890863824537806033540490411595868196960618281005456605492698907257455858716410557258540278053617772450399534969909475115992009030082869651593279645854206232626998000309868595390553528569859340219245001933383751850690028098159446467297118738747752987547743369310588438686858681058414846194581279263523391270170598856736684390886251992915578203824864911585262295537837266404895581081557303402993183026265579772441385937769401216676081128937215547345468718250852051350991138963212781480693496645415200757204403406676395646401328038006312394498513284190969583107852865834548752099696266989148634070073766855527135446513267785486387813769695936897550482257929493325512071462577160949143850342142433683400677701856400096110508053807982672024640100872973795567201364632833391285150550419297719477411566304451888619429972659692572006560165592614253346029787623063131811438126971790215545422494675697783751854302486133223035356141013657062658459038804853333302482365068886890759173250659400776312754334209028829219111536575081441094758134055807840577806125995151834486202275256823247560825128305718564646577713122284578363170897815612685551786558405468712420602408839952957797680025234166861161871234311383243116053022976195914211929660928748829522779872388566109364945859007860994483459840707528627120334755584612482074815076271271523276904387550966999670913663127759438603422862019721699750288014138475730238414111900828246543790867132788903371851862310256738829428571360476060423231386337581035198870816839276694431476927841433062983511770012343493821428867330263904786549562192104225438910458054383266755995895101187961468906073670387094338498926385548374121335054290358675909459929706368885466946000600340182521666016699729293957855732446841919684609932379840259589505575425201796525602540356678061873665939250192206777005043291668739175839198952550085573374798382004028084637074627004688632374399083664870677106529443470454904230103568600427990265392856252225778647095666410571398920852107696205850409207215469550912759436588662359620216318788765703662116818428914356425549164462605039749986839487541800125648784410089164137586570155534316943191334819296105904389936143537683301629767179695061668888611655429924878508458448965855730886601951132460642035376185845544749151671512065731026547287240335558271159214369688375833615150381732182057952413964026542934974071569868820529527285922106846707457423186704486002881981976962555403645072001858123281797481329199930560658814294364654253773471433184127060733427401505072749510364500606022246203421521112861922752789487518093527597703803680283518521464769233951314360144710840544610614495279302343571963778017296254602757848259396135914825325390782206716336580594371759764367000227005642498889058766069459108976126141038077400128421527576972342799514238952997754123505771690197208833476835019094961639239023860611020663905056014177638005796299131154824263321998416087921365476213526366605163883742409361727510196477135233941319603427713100242153716536598242438872217064386000216412916337115250079379138404077587049843268071763106408328109858465950553372785564808596718975631756444162508282890488670371982852728828504609037964093609208033185551056236530727136190504481393299732623496438223189389917584885881769507074483820305262730676711586810023033321953554912181870848981606408888498140351529604847411177054059102567331640727649458016747523296965677187845549191474430914228728566784959930151929884566217710183585675418221210485402450363490230584583431388202305656125990987968154660275674281667219005852119744054365882939590958761156245937542615686483505401234419820325633163085229096153330585127032051956451569024075957552845789273052820479318791212500367357413593288149304389296243117394168500747941755017100946384260314824391553348699055704474340494818229666052851357047404825551289135259710225353789309850209574768931227371423232315279699798719096391624446511954813053780040877759410268002106335500598274768941630441850913695786195395162389095487854571310007608856597768303908466243282609501704737431585983334352433139232748009188977202815615614560664072786698904451460211562896286504223661796376130794511025605023862458921283352795242174154894235407291674065610072367665983459610836255225793193840361407494071230994576762086801274522868902765083615086274756774991031638568504214623980943262091390136221473013935668873087518979571156580565088939561736510176092046775967647103670702881993151535748658575550407487355492941991530767333887655857292240796390476677888414368220145165615138243010107206963825014746880465173416543706160197548044801867459217210777548439241391359666539294831082043774650993589960799612754757909470338559303804952811701502471097273451112785578663201768474922142915797551024490767732010148648958153980892063297588180675084841982636378616633864344645138590047109909014067822724621478406317563403984566715410600933718298566126583310760234314951291300435550297549247682473251551834729552203632889312933839901312386679647806702879882416020078077038801001647889371943213271419933699053468722529697260438966153690018664986749815138742683103905408922827209700822366194708667676773169917813435690218447204292353267799687023691955674718069599615923711348342109945733581244983078230845734898764754845551707217778038676956088528772534783370738872769497044827515577141033940327481129253274429152449350079925163093092955107181447821841251880149517900149109657015655477998534743543526357095928030826214394934945257245654731234357232342507266024345586015435377044496074006082433902655274862953638675678243392231587480089230206568101483010818311149618297788691507885078326229455703116652406250348415395814128043422376284058624490939393767486334444734861419877342691059581429123259390553429727039244630508885184595733887861436339849107835395431251207901262971202638238742932950336474726193637805206443885207027003210727269465341013127431833756286950166714691897564479605132782410431038017591533693918813126727531851564719936044368041970548004253730658510565856115477181001679620900785338487279877924784897911358364674758377310656737462732482742536678045901232577869665816260128657884357453081231661131058824276821396467200832465891676777096482984353469847660251517357262848906065121014212956011282626073023158407395721467856018706735900500341669490758747749531610002516106901640310534380915022064726974072546616959790553490391763440412729599669064065818691792292884272154618048834875360741419567998323856173287140534649249819256078467336385164104902036960788726673553255481163982479340814464730055492649910551206459922627390118772052036541950403055042205811968834956524353670767304824142919627832746172633625034365470119155462212139874436239776017017730445877683939703168087307692321861940877869242045952205671582675374790009322930140877583460906778446602853960583148730538117253166645620419017266274144589415826581606482900710877725416827931243478767547065703280080191862477229153213093070723978482328420048237202041855434830660222131340466987417708496685827742338906227428785219544433203920061837875049179855982664897222663784565885874301041758561871835168315429050490968085002558533949838494289513731308991374909879877813248989710390831836559672519164469364296905619795904730847848213042356694319873797011258629954934983314957994354590662447324049685365689573284901497815080687275636688270536911362598255133574903435767264467856888244494946332330491767797580610530077589143669346315483143964538056819824154032822308377243542590671423205560287198178193119003568892389388787254016140361701248806001411782798904737640727496913035018064300060909844509148301335705869605060950004485581923554171101443517641210817085001940952442875075824323291191029666446741906867998647101360456317486877980314339640630526753501915358277765696606221275124628123626571305674511593219454130008123777093297110853357969969380018938383525500630205016849612703909336008491332534315060743271444179839046504048285506311212363419277737752664353960293944915182650673967591446487522247750983838728594437764161905924791871089737944115698563487211825143955208001520066145792649641816305487371266779424346720526644549294154176752989182349664944591642717957754773995849183637787164872932030986634738226257125283493223674773157970144361489212831512041578170009731342045396611131234976783056608331049187154798378363729382246911966584729530748069972529753960459307415107599174609654454281731683594381512751040384252635563062744237767325318410266062604574550079819015968482883178971440143108469865636984669813955945226553773086198720132646331934926705654879845223259033994031307145376720332785688323842912308108120702304917174032149480624531912401863218744538011674196454908730137478015251936054225753756561781639902411473333723254009938429534922098206904295428216308312505510500577879952280318471285885352528364715169797713390780379986703146823488400749857471832834828121939929395622828872348750094988773211311572641651764438979639422354046492473164367288856175578181678475367736904376008076810388670773804867063053265181555983262799461957411166193140392364969079681531217086840162946758287654762468106938877457962540444859316518290173994643016544961941838006231929601139042133672512503589508493813555256355404512632512052720749826110032394820200491824201555640650513310147748346156493277469509592904080776677240358354786196460774822602710032517929358993438987109943648196278365563705194988260025146367688034153850262057147371996498011075302628829838079299826070278943958746498971487554736699897100591741065110505126565456497334753845772967685350143422616574307523089378191972655232632476575951542156586030658146550492263731187804838771840974340124571456311046792058660670356216253124790862689939951054099200340273423245667605237569409292271698586675007857341816495555830497451483103667226063864902970704838200601953026448761470068767411254208569223139231603306440282664561638861023582181057906234327981279402143560644558410812690175764483999289486861832307381077889391890706395699877470273064009216470333504823070664703028195336666863297411415281517672753916566876074000280291088115303981214890588249436118104940580674079590874608056323573107847229031000628595169578770158473839171665523409023905076704763572351918970418388187993998861864133508692585317392019784803059554026617554080791260235702362087610390901328435671845121792564341687735178118107975742009504524338655812674890729695167547581392110995967135491812925749971697286180976427251684495919876277000526975190560872866800354588887443560279769710609575453219543570990000066864175980027654020701089739998954277181386294963521871999467337672961677092264885946945670147985083292070036135108461038763648438854533235231420153398572659583945674428649355735422440450190859555172415098484874255401470114608087831991504646590587662231951633567834583067454528148528305831258512763739908674470236547585983595486393392566152403948485624252313290094152788135210115948444015721563715014712170978444589071220726874123243540537962179239448018576808578648596531617792432486103016509613721499103986347128853777191813896091729115697220921050552927823533134002526818797138202429599879615636889011301855107587482488705647232676205227573216011108570533255471684267989772637272440297888091837074695336869230562653322075272059457987248301245752143866867597100672149996019848420988628094515664429038296682315588345382337128505185053520410617668422553259893431050312471468200569894432647422864573699360500703195014109612094034925001775776782361917215994657347772969590322382576204228221678526961459836964660216500478613454777692774021838577518453767084325176390067270249298503028106727182390083715875616859049069234287320423880737217284868515348654376564682263501510207525392821812566919949251380425693659349693242942064722554039849714930748064868502785297088082170982009020585637201542326755911656975844009965936268321257346719035059480160552038265660154392994869186285717036969574759727825064360354585554648214049531681961444781770833680857197637220373171843225353423167141762437915365749079935827548116531481817623768642227376381675103257150582930580138710095632750480191423311411903964509381301997916755164416662175123362416721259716047801081887116052279571600781717563125832998781876275608956846145710334801526570725890825326898307061384063289725781349807467097274512245480884214571469415516944494847310129154677679376096217091146914574870767531023850698258969264380194107464183311916547582919798278336058419296413548242767370747227921143683754734665338793170243859358078237713937904302366662394259206217502432640731118618941260351530699228387828640951699465324425770394647807171955126852123133042199797954465764711047676448250296513372853595443417265595116898062343962118058491594549145783997499738146403207965590542699442838996798796001827030532682319223852097280987931602240196691175228048064299341977255396636686457848364168658926026856446558461971440099272201039131590743212709223430221543261065773722764577497266034988639794088401381121460678011287740973507254823925490787735038979246996194255638069929170977531169824426990400543680319897866315678821246989565350683559764284452651341143819277107937113947532231218184048165491162405667098987855427655099969865364315242832660754816688145822621402871926996570222963016414970129809093413811563386695770455865994695721918652429194852489985796337727384448471559380266237917844261958097935004383956096838188220958343480725343168582523023478556484262055852680409208133599258738648759363810601220474495847047244046651124942989373091321116967554510681356419398911720988421604906569648835095617932897157445032750603297642312878160313616036447097706705342230826810357130615291132533650259064703063398764142746452862254309934738239285871934028098264992842651623622368823811893433739067549448773642149317529091821929822739309034209307671399621569748374227287049876151117981006473975000871283462614167792888369884569198401224734518316463922409989970892037457463022897356313568285585196990358372134842354572557996229540723897424513413148018015546179254891243129536385079497951502979493831498439586796672344555833857289234805105556635459609091095634892197825259199719065363707181117386142693408726819704134029889012596701055606769115196173584907247178968869107467331365604353700510256679854453532455492220611291046780272840849239036856059268778829573188441030415699403292029722524420173795045921083241412737556764671807196100669169802542303337688368143279838652082490369332614781998311172664461426475170038732269555330781523562369104631442316780186360519532162590508174105777249019419765086889969974935115590054445110834549280856977826849276294014040737965312916319101823715663249178701442984838474305373260894262474017669683915415748669661968593412030874515586094311230520911956232381226809825358489775120135370440465511872786539726528335390817496992161926474339607029833671529051304443707343220608137320457087764804942014165750080802620241888925944928731019128513507288785458297100491019776642768640875675025576802571034834832144664599055801965339175665034208968741383884599948436514626471363958442877563075283923547854528999585968726284406249424399450214129783249996069121536046621321702978128156198271578826689284879175012635528857780290692278502390944768209863948418517363675061862339313835622489311194889730925801199252617317726893057247447270650641860632540015162271346418922246652745944604071248653976717392963832068922647982376990568358035960445119723205106640420312582333190151697077600518170598031120290219233235469975028026232787462914900688837298062992517745542651256102826110563463992412855898427259532264592403339351861823614457528082491786291408339798988440975824692601284945055621343420748216848323760785864621055631266330391525401736739648149024375071209068930736371547225595713652206471888174137748179829626403089892503940737936713551441092238532964102780546593780461215063277936059309839730085820272270646867718812676554771108390984758947255526053183957783507807246304473835646878813542040265842243667202657492729892580194742392304317590067209990190462627818873570138612505859550876213623076288165069789450639365989388950536607349910067597311056468920325218987852023836748117279307333411746818670418246658176622426378628795753852098395553442425947698660807992467854477327923128072204575518210165484947094873852646075428887691905933429143772796442382289717994757652607370200994466931619478355317412442952324697727313673229282471557997008477777985075553539058755081490179555294833176238670393051096430961115892883214460131774599917477113894724284195949729774756933227965524615016803230135986932503692716476041953571276154499776217338944184336535274651460098570288097530768698729188366404198616208731232908577561230243366620113286281804041107664226224152535499671586731570447392022089441733644374410071303503063122071910592959810029578364070647371898860276698654071083174614732841580862556442670268058884938603930378650931625015183664269734469282758317232701037770544566081868873885698303957821296247490334297347953508396275099738171026140932536653954181136345808812905288881133308441382008080839774385412033156516207851814162778584513824509856191661260438143715393340705300636228567176155584956201272032504859314770756768793907086136488138240546742620161606427701173396018060177395873284253842358870747359976728242312461489324757185786406277019119966328304847894542411706055368582666202637813770411175026447748185894302955747843809999002401645969355383564746212625418496016626095840553937006599685501310041289164415204275254270694976238349644850376703453367623667206161502300778489194583575045056549076430809424642649635049800820371380180742904140321424187661400468418866684695105944301170893740487730870488230650972175310420921542545630925846986630530130366924893960336708791264588067084159355299607117641773464797595376063270474079399290914136886486432412420359239328578878056452077182157038917620707100859266582293708105650037834061340783959783204693334209792387867108417345086947127449563857584487876663810706367084240106127956592057021704212446704674732147571911420333815736494068296172038852434825824555882474048436449514362560089077709592396393571107336310074882750000146863122912031132474060773308342474701761505851085280505531114408983216819957520619002175266503101447243506711811780377209951868265680497445808214160687228426070835031895265514610139779740695361380274371592721123708352817680508579899013863606925043760864638580377352221245185226904575698381037175235717707425836376951468710492596755361040288114101792005497230442049306791518193635339619328738610871443663206721165606133058838899696858949806243314567551388586813433863817279229663734887437086616846953513680080676004497340853282081063133883516074186065934154395443334083741634071073093695185610472368146836494661083480218731355421771713112745247340827551262972324100649426872263719020558329178373890721644148347024129885547639142304106986877538615892194600249054487704058788763641147378183253860366820138482181115372554281705528726233519622891674708193519003903093811174298133517350034427900876822889745250073644867207986683514788814602327871761418494530492857618787556037431055471180587312466918681800063629463700238240008166797864090659681482689855693405011854649952920811363629559279830459361500415680565264124945780610468831619258856938757480149843110202554463710822339838999747853431916555804216188001938650675364372402788732544285181980980270265568336969249151112131995584158501519220749474157870038177744040248165759675132282157580206623507675909588627533273977507220739515959124904004173211728131342202976187951385132552513161373739106697784917198938486232999243074960449313636196419444406875655634949563461290414370951754960066691134078353934177380661132305545452878695418741948799678106884773398546305523710739523108790705361823952314710430710764802116076348074669495015621911534288213326686281366489613813436616495004620209141414483208277126069146230351150493774758102628920158548296505700293926586868755212786558183742889973204117739792905201051812705967200516012390162782085629023355195101844911412467866061575161747309672773220339924944102411338198069773809721072798585924545026225541202578266027068640813826694109313527840167707181835091211276283929380986683678030673140498705715902148052662689829528085056266562330133427678037773159802233082015663960097481869100474440183534222100105001011034196484804584836730705670258643849530484728235923937540798506246383783144841611145070379486823346830796911940474895310752318891357200951433648083890864225251190684765905387974273114946029999620929959425710019364132047353372914729191726703058083853269464515070285464802331613542322306279469884016783736307691439778004733193076930648553132832889033036158330698073854986903973868221692286701529773636156959205975067078349987669084772220770226220683933274147855286799215393705293017534032760128787988733347171597264490826214306382555412267015985109266034474428484554077818139895158121955354428460719563925965350607991064146629359262281274639276151786096862006617745876551275959032158462901903253710881526348064458191388270062897483802922285555157352137321531317707352960608751302525442428754875695275256278269115579393552875836941780179560271355161833346844417056514806078345568603461711500232045650962742755049595196611871667171380444640874797995986999299268616213086447103083383612066541541723318245084303124461903197048171743935670583775010029796170176938785349873343830878749315551713227263806136295837100638407640035176372037325261536181127379996715842994768892611377912300895807635098708824062197099713803132947368732472308400127453427976586101765004386296364526982265533258189526534808629888720551676596656556734759626007200960072724147253754419179924945119798672672433171357803112893070753533236644203605311586978939099550697550690751648263578286672026581454850125207093262718764731554212316464106482449334904150992449156232701540104402562777625171592995755932914214529631995721259690446677372410098048583940440374321936794304805835001843803574906871651217698275629899298715575611948616097306156179926244676627499043641556487746170432407497236395821162155851672720828054212415294670388582661117885015710891682589425592431480808742521301499500708710115113392990242450536595847852502553672723105923913476764053261945030531186607818075164899746073214532551659364209731359697758345323382121470929178030852983133534342212703961541751014825205253863108572833517274052855073890411076537535463076908448304889578300879232863152649036282020255509501585173057766310122677672333520318194534201944129732203444831202254418814874570969252243121733401547991884631910630160218051011350418831005262864832065933053908433361105224800044966511003711714807459982676170547287199883202849093537068589139302362041498148324859375170603691838101994646339654506447235426212709699028492522138167563160280183645189277958105978839691803133656127236193896819649570114499033953857898480738493493324324300633232640130515819048063615954801423198808177287452438577949827587333147585450792067348628668834282894100516913099250814241663026672208179293336754249099993509809037068161438832055428401124329928941527822386700929560441818743583846904549695517615912409515917735954977101082636685025883139397867497323283647540664551457543621108129558124011128160124794368551238081786186610921109358454188475186614320802912960780384874416810697236258891109969911045903351810343000428920970794303173637461452984029671580145402157083369391098326860211533009553264737010968226266343565134877426120499008083936919637596545134710955248207013851619153774992782616989537737606721650531934647335595989416087864855919990793712085320488873320018978893033244390214940356423631719473838797946724706817176247583308180907608224992049417264927637600284081679174936317226937754349536878337401413865472884754839322444928207524188883250416023625505793620521108845033752952541001571347288787569751257244435569714916987486395750285622455238476437385590212755812825711680518350647176406268357492064811184893027075386914167706700437304169530045028637174144088377390632748686209904848795748375610253211733728295629296649397102699834205342837849161531447476863356738793683732196411601518160033264984373101757545530437067090087156165000617628550391148079011916518802392599178540389828035298418028524210981113181306408689516921491096022419535141893666744690748996214271116230603096442910124047369129927784330349316993869275018071664293260789382511351680836288422137964848058509327088301193687622904585505980170129460890368593740783612970849522864833235135019129565272537972752516332837394521844447027189167759030282305336079168027932613051157924630005317127974605139321554471143019841563736349567150813040551674285688981466464201365087778361605611361700877876612765928158495029909198638027930506737557668270242673162000648129551890528442249854969113613977820833075681659439643284342052136391910379641990027611398148419089522896980264420936499583218015934776234213538034006245147898382333473666077011657797493360546722161573792209868853342180092609772950483920165958269385559100316301337058770361082802317418915258110124151605264747445174182593135765681571992319617104983154123096089762826430678855242040859244693781395259829064661127622776234655492563725918252684520861857059208245572324194791610928055296164604137432590450771769993687371502172547105769074978788010014021563395083898508082671834815966216548041603025508586197176716721649719711540246624055875855752809231082011412029121235601903500487633478882176155775277485437318387764201962112778522842342375800531361830004893455820745814488021644846828786949911025942809657432856101737488611922824596213055094018265147031870137596687858343600797140846774984119116051996549987391317266410895412404922527880291365005722610298576933257243292783603067637033774905654937987870044503379322811579070872925339362539164354883804295766722615733843357900732570888152085212600851373897598162228774482391710377931138687296890991439330427101316700180954342205492534038939088990292886786952311527165162807034434430662264558529554842788120611056941023229454727064802338324930176325654963219368377241462472495510494913969368358241008258488614156382449485988150618443310735707347428666370113785471213234061923054155027452035547743784062215336639601515135811016544212784999253723154618971152497374949546437312578872152296277083811405916993926586299668563609185070452845972424487224752650051342907124306974291551988825145031947562523374908529132767944917364584160362971513792649504713201683885950512192238444414484795277687656614738427983358621035025507355263487498859251840415513455232491955446859549249262876214242836284100504404454751286223745153669483720181408958623297488084120254980351990850938559722329879595834026135322651081785906643772131814865256464187587490734452845294570429140303698153435569694783056944497316564875716108226596135878593827344235163317397930372640322808011911035180072401145547365569464169810780551206487718623488390372841566299496664241368287865968403071034458174015339523145564186413169756072151800140619472955611065931589188542683389290608317198813704938269634553712339149727963075118015799406715076682187390280855425323460836508328463816200429064069845238199376508711910858164021060512294724815344472785157873257209359420377471633757553182330138021548263212728115618081148935732343478578383274899411658400744910925679037703707741249480588784653809021090602421006730998626522516071807002975086809114624777986427881613173941453526869400362508506982551858326215180100640004813607114854473792641532447902629549423707272960162111407477591370170017659002046078174415763173474390029365246590522366071618543085869328371748138713314285475015656435760995830346522702778502737172738673379183660768088278803518407754594675932103253899570569128838689455759640244173284501096558587558839279001949462865048772119924370181801489607086793894170326914901281866112953874234114882652033190548090693427252937550005076488452115445570684380892094005397634447486035057254625840163148269274002874067006311091859598014400757747651778173621012058362640626931429466317235237119260960621496074148027048453129803767735573597439212227665823283937422241021818262285106668310533702432299032534639943949815376266533801151933267349123573245499512314674036918791484136138644515966937170231074299722664396903799623572707288427723341842593508737549513114556628120477850089800418059050580682637722766367361199969905369651270697775531433357275454424486703133999778135101892719767202106184772387644043139708130366636429093830243339786653268184486022437795847197566783441774188208360279678221574812519440325324214374282731324583040675192113220117867574216291009861472523626995829661555253189371402854808181682723773068033040233538113720464142887768724170423192948325305067949748269378216038839819090415853594675217805553638317657403426025945074077419859892039037323216874395229798949173921212003336077935017310753114881814260026485946173413964601765492750430281772795524157637726608690694135336519666990440290461977834260042816429779399828542498025313153877987662228811848268854481930051936751905243975565759460626547041338081587647733628719510559318000433926520466563275526243947707251592498173716925799647330889548993539620498715968875017540980359985294332030210340437847507552144681732485374999027998439613458020566750532738634374195493528408292452475689512415766693119329022382082595704652620274566195315749013975408237508987169796038332245818827802696547236970191374438899496322930245838366858028289720990290000690522116741404074244961576143174774656552913104763436310666625213616688590579206356731405398095737938671097250123606213739289610889460078492143754677986835311430473209932699593113490357038101115165865265892138607715574271154364240785991666215629459734141281957374372718192850547650340093260904837524724012321309926747006499060377750494485358466241411357945176963706892089588654703408709454449332778251174546411448285453423867546466240491350154466759665239448098435785075806528100102308625138751500228072126679361234117878653131460938749983972692371253567154874596253376939819057448610070714566400788281455798895010225200962918873150168583731401852737244123552392950078654442602251094022593571959012987714107892771778979483063685173698380212554377268312828319419596345096915702420461198043576879606515466681979000464052722374704660160407088650141287940991610928304620932937347710496072244148471830524544515520228852864069643710690607480153692183589728108782762773898294784717962582030624467766283483935798356361364973775297149900688394390510210871637187380742227440223814334007278370918966641313926120364749818086408918881867913380782953524543682148040052668975771442002374208072589348165945681515033475557021930640230476978565860149389982442781155873642314233293283474562380420887710261338762473686096648553115224138197954496389059234523004779439049628137021223010070434593160258003527177597699795170716102012691836370423392917034317079934047940865579232621395443487501715238014667255375919996445694043149477700113549850877441497341376381681836397922591765540907723284435507132697572908824372591288100726727307707977217823588661519487299762133475038929114699222348382086254924611615538820890305129238176018289022798039551940608934374656459350413331514592521899995091213744395115045209164022207611641419546760380339645856101409755990550619349681027946633456263570869403922436117566862446741304698808271495008057886376482238894670088723827714870630467279879950136398444569932618008248856255264838568951866922677338364647290471607716856212413569406260632027880077785123087277905326405764864363934449764306606945121531572518938921837363805495101264543838319276501423771571322285226142429913030418211878214306354342988928139145231016473009085075335979871743579409312432712035076205939178353074002595670970401531958349858078924669237597622996583521746338689941367829625453857224664605329511745772152620910274229242602096214479837772421151350020693025899285309970483992451416231630118784104103086012406378546461192178476574080626534791283896852199144586636916978443996383832919825064085169974564090056127715580160416318075590719211170264196518236097240376182279442302426987925310424698947512676636215439006022919458507558592078243951394041949770286691494954814544378940831012240597610507520404079692788995481690326067983694733377065517541412771418800873166168511736893852192729534955472004799854163820551402939933551763408122652085214868803064606283878013579134389923878766185798910788027464114989109018944332507150256799791564345013526902410728496437317719726325159746255525702237351239103075118748991445756145013526299952886688109581494256648791374433516528476531795958064995291471911421044803814181051176514998363240945527610566295996779384578476958111710867154388949396294350289727491072987315335930326337559968275885185455228445088918047164662736189294238604180333087590843807746254832068697841771401685345134822928465856255304902053008648530620398219886153495452134683555311461085214029318370788811539841197061425971977149192513919366738825313905228787207965218723013276168079574976887505990812977270188041246156877741184593678222680710992572131110825062748336613871582090389609480356386243821203476185638382695330435273320075634887507786801815564669329225214585659006647102645570686685995627311466813393205779941817294303926870287550463556373627966479064647932667940663253577657923239999172872702766859143417294972875063423665495272592566743253776915445778615141291849469497003746371764317552839640917592671388480149837032972160514204562728995165178312232563911911191379704487543944745940182787608379247501284451022664069802083273323554619656611844426123107843516936851233222270064337385525811966737647577339133577542134171906989239583265406622341204267463224915900751008674926526446931598443747485474151286287998226299053074886904038353000167143163518986739776582954704140025825190768490649487257197704514480278386799729074561879990341839403781938320426905509274467839132081454237820508352546349358189284804735225738673635547561217315551301368677625797736432224018237132319842321206578203711486469641485777912744800460354354396959928734320659944252606031314890265960419096888390536232403125295790837965877194500783912481294019253290946588444075651050757948390280754404358171088630045094165922381561037686070743992657857648775894714221995711903272677321314214993004842920066336467858196735663538024788828616944144432826782060759402890086244463950861632375555179469194599932763000156090150214051820581666932838670384862695563336097584351193505910728211712048694835155889004800696462898569236577475561085622224075481568917475611920810537015575897509738176724590475607576896784737737573561643586971805229096961540086710762486866654267521323902425399062190286935430174620073891664119817366730407757483553339911181999975393182694327080624952859219328970082790850847981270463635965576519232346619360835730355167264297445754211119892945436601022705317659789044521696400923800082379441660993535326967814900117388074739822775103373150570411951200830831699207041147037285200118558039914211807307834320024260365700569701413343471921274043909498522342217009629408698293802813882793210546033565568697805619463506692965894000480838137310771175512332985549898553845706176458912008086598464120892082698648086284654475434156999704113254291703704532362109338747291243691537820041075416545695333126177682137549080074363659950448770321637183825220317206746601512412434755371421953262427200545395367228617824470007389654971787950071907960145521662091814133402019571486842534711434597294632699685813974780105001894446925004580454173717817750547443929898195632005677099043231207135488662210636598268642386726652596112059661690105601510406305655563615679363150345616002437370623271901434027657303860433982286521953568339367755222430894681093169367094774200485003166414209562117081441752524536960781567728331067057625959204534292970775875831911387534115227560539619868246536886470463386861839800022206653978997607404537483970205282497629682088259419809903227076212895242749757083219446815990299119105954830092095484162343625358267696610849879581213665863010936380292925652914178050645695646733227464579692844613538304120094039988877607283208393521843814748816357960100426247969184259542093370776943965533983511301113872706040515031278278902569113604493321410379812231836865380760401353227318301443213899111408884726157783177265681289708510071949397783240124415581269014522746595601082829255781343754138369255804036406272245160960217288068200734125673620856622593200582180885010809788802744461189964554574381191783509396701372806801107478221238576867015350053543976857704143400282899268196874751999049568286571643924023530169527008403822946951859739286874854448136389246339836582375971494074531554631527564555288996620350164313679284297826356991180690899525154731698291052694394835405509256346009931118714694170304611039787539278402279654362988678258548762223980533896201646933651078549813911095516069441568442066905414790538946874294836481567993672289486837868823229184271178239813497081131702396448851072192752909308395804011243572168529913771499268317072487751962961116164251174273356684122265490307588254160228624074645333858586567697904985629113557755816109711837132287121303337532598432633882194087357077143085567376985526885762606435232495351191261423041997475084468687230738934970967295528430383977257716040784047241736786700592517532017070021220030225326177462992690875589448081512925918117540131242987631055556065197463273440278106987169577384282277406498574027613552234313863519470056645528726745469318529874692047155956358348724803414797158709957122836079183418840260079588558020210587438724598046985184369667771571271513494074495298336045667621816807662477936878839330681372532384681065075040911468361031711814851419927698797115251793047672414687516756972269652964245038516810326284475314507577263020253429428464930365530684939454162080340073607580757299375394463711807264119335837076626096942741133079979938391650869736105390722833593550401843270629307937838527111364679114069490618715263948518281634993196304176007243661392321581692366097815642288133944963466256282431545344339465657696133421061217756951610046386922195544547434544347448537974656429553578280168304515698818197778785112156537347882754755874434385155119775876774230505910762076224323603790408642961635171850764901142307321673418200986716342818645116099877824785863598164082263290288973459361144669990594159814326019470537651023255790404740601089246527454526221962492645475016613554682456347382674870595477709205700157503388475217078983751747199577898452158935308464073744289624086293148843672861950537068966622431960335571270632533053026474169541299227455111492450869415361781123053678923625566785176903793244651040115836026502057605668414014766050438556266227781697395773241855566021752528815541229216858131163782466998214740011838327757720441131453862854419581722597351610048394999054682937019065888042075510316956570588104986966814056231955541504727112440337545878844006429706519294293704097376000630662671310272940331966479025891177899888939315708567422804785845912524894677996128095414293608306161850279571603552809675305678346621216883450845780230037845461768980881731201826169980318261183600695871786406427351582761583879639540135706906827285678390869731454854450573578182647942123263523920842138781281223154720509746526306730273585979197243697685198152216847173293428202822352066716636893108150316221522117004139283276723848856812763449243275956982778889419580406424487061526385617132851996943757297088488473136965317060889034950306249597389130582840778332985745224128663584833246583547424829146078436635165285190373871962843422096847485168807144469090897446298926362244772083946087972383481840603036316581485617033256833709010713605942543147448969531242249238231772342755489399559529508297038476487208719613601091906925461644912581575004346191525695673736645437458169786150092822388227950441671410638910698879173583315596077346049215169602182960374484879890835772692861761606181452965340849249308507356492373292996366267348314949742810940947973624205002647214620207912652350638579642000230223309145602690784939849290658233882478196309306923366069808664192661267786064539345717351623197498783140274549207828686742666091653489285802520804694239491925581013859307297450158294040059034376862866409752909977246871537689153835372805080786424422573358246318224455468116288062431512273073627679128131906587337753169374015565939941224724995991115763046269800841063149433951329118570919701498109156960705028923621969100696086900419474844762179742574320758417149500853186243934124266877733813354915798602444356512912969187733166410820405890831649160453175016448588305850308507869353290772322462747854803439528306777047320851102977456743340158472832849553799919459379912124351721361052130327048185479821255850281189408837698087739518945337267218711166831583844798457175433119895967098838177703882914856333904215646397623989816770878984447807852016197339850669589522599704436131150204748725724172057811225720189755130298803869622518401430940727004749406883596845871385680087322141635472527412857623963227653981372916024169834111178656213431649002242854765947052492481639976304492542178479713240284281945553546675304232642431851351772249868485543295564692788891963815607704942094697533624686781271404191561018070042799985580097470716201985216113065722451349380139799161682012228607666799024935224181382484993993517738501688162451573253533737207358552674886338799798391242502662379372352832710527537684818071437241140911112338829018556741590001557236008370498372745380839608423055487662703529945928349981303421613184729659312858385554481132276827148130282006772624978507232100109086342502838471292568162407462776922328086718961685480193851328052694076262344688244544084048495393648386475106425110252893966753497477490423384017481596546231918089515444994547704590769466023189025345480136339018198650104837216738973749305686739092868315913663855247047347772935626202471872933141404337432923587803551437089556993065225590070363819979102986009676487589157748766869804098234127000752881746409780944430647297241281682739884694482218078388437111638269638274734254013699153697544901318699221149093036553639084403803093065031932412195513588309071995179928550945475611254461228536070041521152708054133686894092182325342000419981387713308408055664025737732366967879725288718202387744052727067068441356536002193665172714386217554706376258221967441917482206465621197715347199757096182637504837486418591327428877719632595361754000414163477158845559585121627650116569057993829862289642207118775254276365115301178738953863184414364674168325925647130146448560445113773190820770326134773052642860196413948324915032514115223436029526211681566958385640996952897126328522870181179731387888281316244573272905238224818918063690072586544136518711575288389292361316573912475930117046882990322131865833607588842608173014498747570900112910408582710557123898857609647639034391700590090370302123754987842681131748342802084188026081471975055391708150661391387018059127190259852002781593702498910990950208840378323326521570803197814037535777121506338401604685290291940247277184281110317206652091724632821102905989067772902279773252086511979262345566417924684817940170775557529822220473729528464246526536487065876370883143717758577560456655753307331467510505231293276169679170028957296241294550180402599921758578470487699828820400622995642272818529229268928574348128897935012659729356248332070215005366097951227445603414061635011801366835886693211572505906124980022826717520551256861150763003099021920588677440239029718939736145868105879898601673427399511611015682269921418620418398965270740458845867727346910350985041337595743837221574279302575549183480860912004979417288161680402962731041437685834138209396837829706309969991815355967798939443635930954198517161941987974495502922175637842225597442475364787953128827260589656611952061320446895193878231721314743597299985175830475336319695060327581084881056136596491397079141912457177084568311525918734665131514011212430774799657986185334266420218234285830800378955832720215553244699179430822558971140509722002832007731690895176067633903617197312110618220731566569020978172539663321048220565443882295072123696417860117142865632005056037743131274602605938058221771214084780406963474256228185293095501604981807256588486774074635721131345372300256104370727728892486367144381648378769997095441079506339383703365240003115890444574437627989644023194362222359431955310768791900136245689331008302890219794133887787150254790930858780701730648126768090422180619851498198541983093514488657074994564666572788563319606935554307064254863978263256087670006645054777353802564804519492107814020226878115317606118516010489145211038809708673236184844282333921860744975839325188096174028022966865653723093852512686507818903674772813172423598681855642285195410308051062513006615391985386465559414018729799318106362908429593724431572599054294456114780471490084220079634379682660692622077545073683677292488527618033231341399387147529104936829142695842483227127078011635604591043558805602419265519907767575363597449814834532439186074977557044582239764648683020072090886355907441807333789438229016458986358281216715654521428119312379869211157867407735396889666478966779101699139511746692579595364456304247101629231724157752312118178783923834773223087670823366945240251190992511548446433861669839630102262670584445154504695251003649987447416680737832319081582172938557925901910252749440945338406824003739719341233040020056158575750911114393946483750025884899831471152888639343515543003292062227025623571214517589932594835332932307087049872117552575626441334742645278587002997768531373741797731296494560023427436714925167510168278884132148416356768839516932246395323867835221083789999852846109608628745470555139837193894818179196488196689657393003147892697730797690000729336517782374937865860244785826473182823089898750799026070369066282668618542134310848948527641411869342669041442912711212984039744938523877359805631730203073222425491525160907184432941174195294377603210127676752111079131370421327946527647952611170302706383634581772657549449967864062005162812509161338095336555537731254912513261656899337155378698004905936417057299718566339633126270387748123697285277253386441293719422228318093852225226634294501527606049247685867186162251997398597588429993035060079812254681523108851935571407375044063234239671529450941841383439204909976595431728956216039629946639093068625393204795088091722202915529968150124637118663646804143752952276281792108984115983535519118376296748757807737234225587292632669730539707917452356976200688555593737259562069436004925414501217943664347613263686724363688876605272335694049900686314672582862980665347820907850894639250701302633978426534267618871176435629301091404109937618472664075277153725935354287042111047004783144849053315520815922258246173215540963629905059728358745504953763789982872783047194923879683327511896194695526722762072261628686482682995569112916981056196225650759988717761183742977122221138278094807709921195024433460098962949445539177774592545970579338941783778067519948581705211054250695684465753000360252553901372826294297780412578105965918338713173838988867930578972270691098918116150341566204032072409212802275113974277863631572867730091928953385110311942546951739681182486231700875561008155603742971291376875410194095919973679810049151948261108447709886498963688592728030357994335290926134182717348119679880665900097880514148421492834619902663480867660832721315227247423784606956984138164240060691370975433538867170642181364865248952056976384792530534953892377409986262175965546891314278563942390677075076468464398818914649386809434606575043217882563993969395809404276650748218839136556281078215989380582007044500979595321425241730243489579524425216995673183383999569858349568719250690796800724728041031789365599444706453628123235850470540311543850232517072716337321699030756802858257542186521538312433511692712617598123133242900529390960483351438851109266433653088512142951178642974352570818600157810924969474354120271106326463274299988517140022705111092411646109353366188991486933284600639924847667250649186918524481393657059479099565408325185374929237304981692970733488802973164315350114714316240426776535147743646411113802244750986674201436652597818250043355747095847390852316756969077109540413937285712136358253543830801801315740610082550575649954158626314366617122029868675029773062511739146152920138702233300414929294453352823968278472912086379473367237881607589080558711698973216931160072129034700924444668849693159891464505461728321050075461243518486700863025412937279231925242319542850720407364650981497620721432993471830953232810685852567268613194405216216919230112071106107444115738924409973981434327384524176208069081784966094899039233900456244478140490654878003539832434913278624579002457926200952862033790441437393883044467808543204698648250650284811610202317082312429842660814946338846011963419025694291922060491112080918520342896991696517545225661042337861431153532904163021445107748826571926651524746855560795307718651195281196312501181720660563320283043444891689551110896557514601510386328886828445113236628331513386932905324717311005288925276222940578608360538350824754713012006967682433343875385375133767365808318477176228109265012288245551055171025023512202148797366246770166801914815105583300721148065394431347592751141622039211820376154238952655538466488838964129848655080116612074322582431167465250762183185430137935155524494214537896107021516660774334460037439857653415570844917476672434979749816542572577769789949334563584084352868625067147405347213552213353574197959634368935264357035358963547204227135380671243674062565853178598189801266478243011864822779131377130780549219738280072491113970673701608649513146561609933841576326902673966827091063794648628583481456564799165440816976783770712589631735960011346942695851730145307997009221394175504897545917530401233185844706043571437781447231583752884118998773934827105663485458796830683449634471142976013546456714380432329195287067484310959753981777613509748156091747599019576295812852462846125356306488294870181320043231976076810577544219474821281844633956585727373852446726843955531738469958113538934932224947875172004588666979532452801908917706457587177733352494544922189716477337656130495377660871998975280758061357978878841030408145094932277564251542594838744961732807234266968850688795472260649466521206294331130022075640110490293717829278995150401554834049436418652986806429247788105890847688956071216054195918137101820097772622258834670105151411154357591707156005755179455542702126858591047123681213272063759767590244140705165803223707667558606068253926213863221981690870440819551695893926560426914207109187723684086197869275531938458027721463206388073601925895096457572316637611834548261577949833264357198431340543152157447863902355561067900172546700272899035874746657153036854618687320695351330324728710229460169232396580685545498300435043258144181252150060255859016875595214592074465092482991174774326723645277980391347122096318099421205304654570493610978045162461677726449468649384328551948408719505526800287206254458434035207935860244724537663169809984921603088671358983255206761599569066242242880227188225387175364438291985426642185741171146781780971119317123641408896742705678473491224820458657026031598899225934590819788732888097448759128467404588100364337332487601043949256670414248837106703531869642929478772423387104120632943317585605475720178138926611354408646373579286140547790343211815200907235574656461298018289230459427745974472585531997196856266482080407286462263502541547059783558281380723069893440889849384564174129591681884866017760909996159607204188457778953108347506270717117272719819172032608065174307758865049661526761657524829725328366781182543516057977713824514991362779271614731961139429336233170094755202049708193728805219269941128609735858573106463170196818399750979663095225188195760762474112132523967435682879789335321879695504602808596866183226999859386946042452868465172239605599960402951616967771726635307865101034684870439775920513456082762995815322093504702665087027155398025713552445499450199198790343654626537442948426145094875504570859902593924626705262606160758076383223199581966503366240250228899211498703286109862571687525119569661098488362933531450946003494110706671574423544724382025831288348801768440003958372432193253228950013280059066828655972606440535696478573089339432135478986804816544140781116738526029505472567383431576630828911905043198213898302018934151913338952319779232910171233297996002694949862244197647065282441578775747042596132760155113727664634158138477489307797093403854876874690382858752480891709387979451341631144134990471698579964804297120941105808186334209254975489856451238780585747251415245088017215395624560793459284610373185120749459008109082199100849901448136973546854892807651958499598770952365685046532030369396197618135529378504768018236663842596422016676663871654548184827289735738419774016477278119775127214517010660575453302215982959062385167790786432621443698301389742996881907280976095661248110747007586378539872634785060538051909585693274056847587936092106094056697759277112573216906836446218096569036906910427532638309843519256578216732966050819218805759058866756642927693047174824126684094990578499220363233177707571738977295659605916298396251193163200639674765834988824767945735418251299925073936126690893905922896257608842804455320923944418125065780484828924585404445232867163135912640385445771342904028628132339657943083092045124594081791329268855877876467381323990472947799709490330393727015229665507443843765103483952045523603701303044398522001159819999461446631235094544914755978608761237205606846893013308058008773988431729356298590074619682272541270929228921644026074728652838658692931763527393300984227291123887350205803988480166020714879804703819054771414070286453828032360048299752912754219674978955642540923250405885770460880105719048335728855425794835546977808109032742933505637027812319856940291010551767494087520868133780057656114027559994462994145703721371956924490632254397394404265518793489358224477906502708460061418758379732166061060774780239153628800960084344259900862566329420756373912249940955891149238124532296898639842700794629001807656768931059355090801888576407119566229014706869432859351681654349380941246161227408409101011825734708139679809736946772075562686998015663164998621428859977573414911871874139104083232592632111660621605726516034113443165132110580648859282976979416022692143769602030655683543092082576062389581550238507033527149689921789815411397524623024079572330453495365812430007580016058299064035369616815731847071416300532112786455101417969283309693872873712928249318282051625468771325161978782719624789695992523869382878617131199447403431049560526460086743732100519339948742070772205250061696603812597511481100430356971929778827109716755388282724416237062983541024300405843104988356051680659672962291805395150571364547693337639925743030141878950937569752746429868766769927592342198569694717040025603035989716266162424342597977449176068183544768212800882649471178529029958879370167400787568316789393675429990415188386767231317731427805151674812467590721311127581215210570169035297672450372071377610619689000292332453255481964625434934679598717892431610563617083683739652802672382194382167034571022591393021704724847779476409131757900280002133459104160833336380721985999574438379320698712223758868211678322981128758919381227300087593752844316319699555159924992471612266231582043320644097867065827144822564113667288446066784425972078594738494702692343466170447740509989042243087995423742948290534730716969676437625927658669903902694565148700451622511942813774375416345489814450402682629295653843312770099301924138406145648335975957680926071576799220910997720019796333776874838572657614668203397476006899769817721570949014340070632293377186942494914969883586047728089187386099332173047650500438411634640431343951956329400660710656193728159315902803318759148675134238861421914069520042739251743611608047957827927135768894197012268906558247231871148735816400124849418008809886644999279858785281169323434855657473953318635571570106313342325134788539895238554678021888146013144938707235464809599610978250106499042418507004676645387594593541071841155039400818016022435459045759963527461066572296609656155964468358607601999808455545952288868730764767193523624183465927181631711703671251168388024208212846044451740150166239684445984621956234015995478822512466478519150178634926741713377734180154311943704064156672323372510880522069777558061517854946469914238666975919097443492933188394489684700798733235006891236536190729481872502903531355364304693224851909164007768601812931548018335430163776163341841872590930957894384245554029990866186460667089445709216479824206839046240540190121853699676785029930221385138125195500585562233707505190055152537287669788640400675001490750680256602606476047438085051153909141408526462878531632661976064552260187698862087260637838022893687732754444786901799660522841069736445046176665459635622802308173373172538483332296722076902378177961446054438561823911411124195623661544241597007146112112889768449636807986114291679346057376761469818943245515888132274924019029932843243048570279724395115112176338736681239241295581602014850863952890766763656190535620344917515870028731694312008933707836848178525744787046749033464172397680345549534826913699461043385780813830549308560009557879472901017401537514328478045819675796368627645116904969595530067422239876228955149688294843146446939550081936353745664816740840702944442351908691595402253244569638008437737088962007470516801404136514402299595523464983874755735877084904424950471582589300233662261369505543907199949678751918830208573615814152472655819212587256020487221790892532488256617860072967163966652580060471086848421229591806254817640912542888861409649639807470305789303156306554546908534571109784078081656928686052027375137564327529398273234759040980143837785878627582421349037212821341206686307321939859223951046965297226581450856786631164336241873162270820153510896307257572315477897326405588981135498546868677145466356016347353057660706340926878829217351681177131542483618015265731916735357946142483913567630440822858647729299115475978132282869267822527478333727689257181133436252084273050672505282184317661001017412898738107545662605201624707936895613530401684317143669750798436151432108455841598092882273062695838033097304449670446312647411584042593469776424022991548024363378850431207338898264526340336622336346805958349569860572864775072940380014841498022089634681602427419521331897246885527730248833998038620147312821384295996780050342844642996695958251207891023697480415499640508226875784480224986443628145830929807701167792279811750254141602953200700039379248150402493798419012836275334790547279708264961184628746582830999218581711623841165920523357908734421434670139632890280939752285790033054449556604036751292728593772834024594441651919281405910757093546615506019736185286205333490865094389885433120833187921609832915936251135938112485265578971672930872232102460694328063504475069489086499613872178518488982332323685107404424262095967709256307397497503629067342209109280413298980640762817967677701718057389148345828616091595681054173022645064526040778237034045311271575810270640755775486899949618781765194750929359547767323249471026952688287039529829297447757881619964771436444366104531785862762774173457091059020089384256570157218660705756660451136627616748826666183129704354669975918633663808892469433397195362401651558502889417616917602847271426606892060676597677763720925616279186146223324296603327878924886722164209521349332051369157511062852886681955829387001744505083481640648801007280539482242242386395859320990924126529720401258961297073269793980869784593487277016911162348130064117570160193211085796546561876980995899962921522029627072727811614068088064900797441196841269455157839330186339524718738135136792519349388037791187156508054353617015282234820060276881227394037326176674059239380656625341406452770596034549737914780624398436878197926775548906388879653945107287700891262204659644888570573661680185434146728248174046046335745884350287917396336902802330345985810184369106640974686491817318359153265209208105666831261680195997562012161038547346138919092227661924679671564422186114906672550593592301800423906858272144966783367004449306218501038771492231086012784959141224906685169740159110199697302854333491640146853364103098949224940650288140365204871559072618640318814099504431902554874171720235893045667358870824534291592738267656010814289550953002304109864721817685893083316826877747097789733984378570009568714307944969700056729275455995675396572228592818261077486600674492528347919728915716981224961956412265128030451598653870235140912180163557394414968129835532219223005440856804273377639545034044022533849601841343461995187676507617679162982311890005406996118846490302609307882731528177621896705586533242952832199818670163964396073277226068886189939624275496763226369750945919413831992239735227484960890381799380309773785051996595893044111574475064484540648539323291987248374760025265132473005843736545387005257964460028113295103048499173884521821179406295920958004062452551136571513461624763174046186558702966672694278523275975589510165536916125564741012000643300994159156908503218203354974104634963127179708117801774037162927001753528341712741763511099624535699641903760798267360909989642383259009090066695603394109195440811685855613844065631946974256404852599039339490324114352418093781550978161395493130853749718766416475885008513275550948957072659792380030343147496375592235887290854482864491766795736676216919393672207086702121581658424254824240111025897972934326426147787501665637864798847339443435108485692389942053357872658503301027865077227449127185232974967510277000805703050105895014940080336544142361437125094612479290158437725740665531155147012428472834837825306673849227228753591857360639357091871606958963899948709844665434706191063355617814401663342398448654982218856301428015813155515467412809860532167487980422696093687120777586817982654515449918578920406972974878453394159946959818606702641874283818400924623167412518138329705632848431181538628756115073698564050825498007757506891561467229934447332636598642821145651947338903665410649879826771851458565465606215829879532693572974677423337012683954546554207727311779450854357870437256559957850697382452486337398461607095344444155536798505972737944995884364612573377624878945762703947147309203225464986562365509606831560317351536228699775958869606452688281568723865554194573314878191173242371322512065331684881335510949006835670674493841494186639857361654842869400616054429370433335980077109702684118319696618203488786153796854817363763890862677739939689324325754830177973456988819447557257141310720315452571567455617726256413832456123779635845747454393695889289387135741485741972620599991253506892555129738993673099261676416587292738391687366609940044283974153608516804598474100141871284033700268149333467286372732746532985070108200565515523551339292710974899928928868393249161397487784504975276760682766757157506403047832921849729479392591288323702751563783985906055303933751977171921433144835116255008175326336671087565299725716565967196471757295699813513565683101886882839833357130178792195164685101024216124148817799427848239713187776079076984512994794623972972456970877560932056183964100590470923214227742903075405284690454752673970589695231415537215312752326362495913822440112821226255758437176540793577783517745522581996709487289825738584668525962005049493226990924097508475459585815883102977201683509015616934764629032147810818954333446718523605949833284431264260865337592936739166435892276873013974436055964653582029850657795852330277341738935301549104695868092633429977050640090614557529764586443294193997235209002015557184144187783533632333461839141996327354098001704910888458686559641125596819601168991497181480326366241137195964355500371468970933919345128806332201011326387091410233153713595986013597539720170570304170196936874245112360336179128502798761244355083470127507424767588376955793583804101088544649927717258634246159058178182384794367935099427789248889710600409015887892844503085581596512288172101169566520419988923698137243145847127235451060835786537262407690910192697121862115410347665717204708233158259312168235807735671893796992092634552259890983904802768400003561797075343482099943232098853862143859681439440195187621857977168748949429900628235725778947968334468432402499127722741112346318672068528307991858929283127155817971054961995655719971817626499160407926849821991799124554370933961256297116417665651929671778888914923751024527600115919301008650758531807675841086192435753243072044425945927882494158266494063925684250495112243198250202637137114031109021635605981340825647243899818151678505788091325193956051467934619305744588844732868892703364454649530213058107733852968063869700399872656550370642538790820356040727622452772512164126995103980213135352823937920745327487975814155835908272535106085098130222658783386317784238608333944862349715701054726264950990219672822691077495336628544192575039403343000381473412283547343340457346579986397801845691682211215415477176046452945406648498726400454092225059497337065577241394205854745823900400985548799434040993096770162157677958227482057328108333256556147022941735638412225429745565730521124454674965835866631371421389094306837839496772236371785536063704886933188932996739956704948505941281339519120297674019805933602013740995220147863953250299370097083106744557503521689886684262433329110004260329745924509191365537032079627681851038103626761687082564533478151199589216755333946543515116677431633151584912007248677982456027509840030138763510059509731800733048273340333810846595282184767963676288794697092958979856025685644602466189344606133583228075336138388170578187925220140366381774278789042911104290860229597900683004656894462943367034500080899377825634457395409768738132062700174228403169711625063676956661730271298224929272709991257478936310143501734137480955731306683617425677889596106028180180787696033989867502907601730250106265883492996727782723439149745642891507139997339437039743125465752949965870445087298551288979553651185690133324617653332340940411553157895464646094554590648353902457521728628722768239054399899016489521931690503800310291562092306903534216783658556410445144350341539435690535924297309763524349782370130577383340227887619182726932878798237682780579763614505536142350125746105281776411257744830609139481434073501004188586392025622921122911531658813959601242931159586364050738280164627832069850911776974077969946185290788653311821524871653069615001661529158328158457496162705593550597773714891977628024393947739334602761171892012036976844317812334805054207270457487710626785352862976435790954359366642977514424405631607036853433777581492019564891387354737182751468309282058514571311727542261164298591958337666289003763801367388681299912395854095680900428385390537325458809362620012347250404171884014009693712619394994622320631976528852894526429257281270895256204410757858086947284886959488790290871774009169174795926588679842664218529621030556222581042139306571678522385729863175418196123212769784436559804307335636595150590083063257740550252363778945259077227991110142670721961651431301194139104809633314379947343727273784135560479929707990047314775080322641077308608734916514426461945720605851342362927189206240579187239494321698871628486888405830352133516374517551925348758079140392282652169161888821498767248113980953909976827214216643023085296023551873331350279531248116338937186694008948480992944622213247208171836010281064939941306827023194552902993801433636159216711745108124352718697546914293822144477960423290610102548621433153771637159973808523804545694986003127391874168921543726454069014056717131723544696912202845737632776704790813548737762352041639473177938881462777109217370567376520363047273272034331809690426194307621802735121955520162732771136736732154314370730144509521744651255644557506776676564679884400834304484031761208554960228722901774266507299842416656539765361879162475368165881689366987668820572263785296750176957558038386444479222550262005096825472720377208015377328236504899180284431112761640083815879275905319243246900847340989148883367628112801155629751262149785036256086995437765739124904111704206306461845952277651555729960613456200432247049647095585850491720557196794521879824741512229337863641115823169799856611270475858144822074986538195508656520429278251665337505618651635008338168674286640593817684209248762266827849421276787697044932573656672103573202528180073979302172415638678118322083520087223780715307674838254719675271869158491641375800693796194991423757445739817093561285948100344852040330168572519589300141515715653288247712741390929910396066838132284649180398218346894283153449119234646076472328142646592107558881601091929636403033187437345079171070853431187319194767610847448539130842966472012953145647176253051336190624488774880764360359921203266834092757926049460469194855784797329339660375491622980203956364742257114615676476678085855840698148952032747268869821385218975977986520609847979194733391407434150076055386186010886031462466304521311136758216311409418689238050776585445618026695109978178164413835939759561982899857828716907645069086544833401421727981513435290982564062205081399622221023343442484162611224637681440871889638124565963445475619285576281333145488203951841798018455086931577734024694078422078199037687313977068639130472298603039186414837210655716239423133722814768359707551214510397750098228781613055413855553259981635476503388937865438108160634231493428821430797616894892237988840861161795707566410961505233025265513978199913711607526352058783710421683498451145566101734068387390265538464366848434638231805183645775440987289032594404189571826683251262763080868629748899747983061597463688937025512053312340557603052281976149016624295445573577503157645250968923780288328884584610401149734937917637501115011148306026106355541679244121863859992707212744816996421548403758080723837662185176115554281049112882423272696090417006123871904048248860393534678567208386517927327043591594279720060297670726944002280616892360555683372721112649929294016550679479411963053450901891977518866512015681197962253596476808398183394716415392911278252593706047638835287033254332972338271964187054862237828906652042595505115301214412293092536867886332412749967703098243880794761856893063207455208247242657635310746288469500428637458315364151328632756255370889647803032428949350702751533023136023134313013978004918209039760209620979142148059160103667655805806264203736621761890940606258043872941027534947149648762302336476942657324160374165442591675126643023076270294996299790997229662042555736981004906241280638417986471377014154382337487205153966555561871607557967382853750621580651621467002185869787883827559714157019809209794593280950608466714088588205526778720406839809816326561471891524153828386705035095330799962185450544486971753235581932854510222467915017860729775762218207734806308294181329058682729386492453094818310625754186288615955424441277602095285512402065122106559973093632639140046835772437171455670947338895238603411372333222686781649488778211233693556297001456971914278830400722260339056917782735759041173592252654766213662619635915830786861945160632416465472424871394830308790945587172981586495001755919944565121827494893492369927164840280897891165233431870630690992303478468959871140109005893462257826897414971455760964326101834595100623697556819837107556949194450565187172344951378710222610607443843229708843160677819432104757423171393593529610306985024089823841255736002448487031039513303393867992407852865429676805574608080378999749531074550033919070197270824733005052554531171427971658403744735997752093729152410177013728505885639187545287110514203383490017372891155431445240414358673508008156197103060382182779645618845422479254056272170971598258289308230240588762235895651145923843880449526587875001845586485227818901797615269988187117174943210563049846378997669586527655156312423578816441867025720544704197203293757260631478396095335952411421596061689852784485547922083673206967222951765548134149079446602251058561822385057098500892865086154010683710579333247899302399278200419330370108583100088788055990827266073196821288872175710437723980165407885915806811134909297159557062828181220296917091449284094603995945619051202641652021462851437843915631323722658105051469370705999364003997316617216059322208295360077122144603243964656458626510582703868284963818760054407522052905420643975605022294713577494892179623986270869838596608522378007216366448528077535161609238308672199647945103312069459884569099452764999278554395106641701478910771141236454976754766909734630188538996889144570443715331195641863782493962201885541219039195530277080424178207871343100422517402779366694356231860234417776018558209973059335937981256857197721138807556858371609487954349074322082701414693697350810547970774077848389280828943918984077117011188916992336551518182597473256425210257812278052552505966228250827713199594503274299035648511838722514289475673583770794506310106375418418286315079841199404527362231819378782546684678395828315200760678929706249247007448770825360777258461097366630076400803030550968601514999084511067218484288724112649845108587635823934466731220798122472139950677579567134056089333157157673311602457958370043524570059910163206988943197974105260159718559277843020687399567529318823667386506985685454931446788998598256982683696494301423148032493973659074284872069250124421795140929045057635753681833926968362526705523566621552135323777586782981320338966496018921778985024523510056649004557287946914549434021466305048594895591557366736740005005285749988736287662893363042842340835782238312446586769442098722722702984363131533287765965514538708981751811814012346608970499785813676641341818861059163886026236982857440761497365433049999912702366193918379385147918311225334390933628281154932570524828582382163191526558821252224380721569180639300778354157110056075115085898156117776306945404941304058404658959568068837948469064271416496614353801702578173543000219739415224295223221720589563259163934253728275625039753746493320674430447909794020686331046629379636004763497532648819256990028039656923690157737821383634585565201559931845667610748255628436750101701741873501082867395490012898807238996301340491704411725456492802662599926143028370935972367942168236409929768337674544672379480986871175646685557462004734440341716283515067460240757361125321117274530028916570936808662149121988884793069200099482903479044443887706214606313526802264857128336289293770143250928089295173109022813204353868423713927899270652880492729503042748596962765665993651015863749433101837361241237455851894490402822426730566482613247362719332192046077494471514002262072771566141981639053748265018416649505889745071547911798440874743227888550758248278218730555582992884477972472505603738151461705952986479000735058561338782637606900264313209970097671359450190056200483843824718728576023527517107653147360741746661163955677623590858804421374536270711767568715238192843168256676686724067987218559517975026452881837990961549849826339796170569444625242851117820589080399062800618418171265483367388018058127238174637134082566559639955205797650989498287861181929302873121945722246042483691250863357412178184633100538199913086552249020064802461895377874116864714058677688413959019648398691935599538363980756869933472652390310602428635061789720607838995628759717065367765766834433708970606685651046816338091366903243556974837669813409918202143719491084071882670636809004610145597240202492874778664293301899056861984427684425067816225482989056161413556601511020633170037159032400820013456417534343117999527643834765058725037244940408469890282970418623001361712443965900583729299422234538300618763588181190491549556127079543187964853514093201578658143465090851786225690325986071871096024752759901666982222169969330200004933196332056991984055752356234171417239478140131409297699519128703813098021544394102665161270992490106471640727188211051242720887643066687437878695002229082973865567435433363712467451186559285472840478709203847114384787684582394470319664537620027078836061722353064167911709192990521928996538419483108000725437920866220893431542828585300415592380856168299375441956441086095519056893724632296277428089089915739174974065886861365619956095850756387517196744857679184848787794252204470583924290718860312620643570227305741404003875685515004795847335454943332346828171855014771086518244821811903618274169656422995866332949864552589390345901256479949421941795713959192451274342774414521373799826048718596791417096048356204927868910973334361905373350063049232344771747888233885383774462145301096632494200516148312374151033184608214446593444821990962708998922773478823139822579807748000469626449083189798971462992348722238984500451139388650013039188473196165530475382696692216945096719668827514219331746984957019853680774458808450156079557745180584223609915497243667969456748544169686166145293387388068546183452834442197042968504629880080087779851278560878914115416333658540216752055448027019912167682546474529471529561893787388238923031817371873320089202831274892414024349987150012480485318226539107271568817104625319991280974607551624418341159385633183613117397840477985047146682793241239053076974226829947408371400557285346709991964147027323500846476366710353404830157906078186479511017418613681776247898635082212414678064725667310386031471733905126500734398902284111986602479394151132647492466159335168089907845283874469588181321889727690331486567059904521507638163643391467944475339684973899966634348871574826013684396184592749731591086261301403741768451630355580585512573790370500693195170871745565145734431261582640425670420558243154603752090402697943362760715736333042499566304881612911833385857285247144997504946628961528809179577100971691065569944014700232399957028752293777461573017325489060445321678716927507281436776465717850610474963920335774985801378649564448665546285898710059788953838729998627735017892429350671088870363603466726223598642458295511558803593491197958012525988199735794397837221611196521761696340325729831023133284445252436801930762739429229296364792645225004785439344417105675020796681656276287100446667777373186747753577786571052431989633025139378564543767512059240703117173783067902348003922339926315833124734479860184538407370760161813945775642242699774077162751405602163289345692227272072541237638040521168979789445210346020719268692765296743895745288951192047897718691640657448448365923353079727760619540008660037840841164104899770046953073534670869928424670925098424467335858803089866281777793857568251706711630380987786659993041580681004489055683885996991297795140847328512489699709856520533038898062102871569321350588666024995918689308773255693283101625377116344038350108727654861125510138633043514291598851654508911353445365176220964054392123900753104278488200195271508853796121475409913918271001026279772726548159894595845493761190659820842456014686221359528560436145613325669752278644066476106829977721274004684217834783238997212724805291999071275940134889862955942541423010318827709810132533927766928510361075597821884857471635549806776184276197733667233108419304081355475448926288516414257708754731842218256143616915702654335084740553205389373350280261147095075197464750909727346950702500729631834364833572524803550470199946131755981347796556851027103301602726305112049703390850051936379263504034346045310282131917531133449917576153607523602384508104943641292653346385124478278515328634359754582409977479594803920214934132816831348367512058290659248120697396595398841587582440118022052173778144882803518693077098134856843089346125369537409611979550150369016040156780565613715048786451966260484656197714637990947009105000107788631949349770613962094902656388117815252051912485405929887192289729676998791350182557869162471382130372137166540363628204391952936461425268536723256249838989527637616046893714578183701522679595530778107669863522998924895068595111618521243102404093554276128694213000239635402755977977210384734827247636162583686429428920667476393974794274795777649118162065745993748565231253810020517008537927941521664129365738116742862257359752532958098180517339482419179515583179785461189070460184874496434797084549498149242410300134212519008013953127128165474146112490453574795666285415773441203311774663386492866090822703679851515053227162640300931277676903446819148402551952481443451573297499683857799504975446150098567658459240763296958318637656644976908379909716665744494782485920733821539428072041620591977539577035004755666067317066666965703159858273242755848687947601709344238784551599931948612252884115706532919112935458799074324120710678737280989174915198349914690041337724858442695565122154747916334071238482007708484405947024492527268491838263914970196703610357567036996929787760890744683533713063132410082612730763258033900209034084092060426278047080021517501362173521909804250011080486468596461975103972486393937710178117400152742650380968984830115781737661089847718316221203755809863795155912054427666735406615085622720724775857127571561098786834624645485615016174096118954754071636323269168126681703645249713038076976803673969949886866610002114023752713906202488879545421959905756364351768501829969758602721614420131037955128323363990364092436581374001101845528456950238361031404754116391022200463942365473289228375369890765920708126969128572774186652822810872559586059076059663385996833797108721128136941225968237885820645239860821160347125596339910469699154769636706148428926879578520477197599200477392502601785350716367400483688317783051232242682394580288430823891720276454719390169762796902177561613686406882997445999697812867625918380358007908724236767999849018572637534083704425452494093966980078771731725724990680929133793298991711741202008019721375600916619615778867791261247239538442829773913295513639737800984397297946066097833378209351228958762842345303925695431567813096809844466315428820652155810678122388901331347171489681990564927104837545357255432877611719599441327533666130438480483580924347407869910254756210397955504256012725312676529461683524793230856320426031783452690637653336783119752758094096474313035013692255182818177388801635532581452918054984502267119636410508344022080346946141342997764530062558884642964681322271077769024653665667584573626198292212877552261262578326956719848774173600372117154464670252960430551287231579075464853462206981862265768834153810942539895504587679566012364526994005444632005805065360701409120747323934697086691588777077791115626071315393250043027947602939322071909587262227593276652854749228465465814786822845654582975666991530694437571157296304677128118982342506448068294644077718536411353897620886017471995795309012890952623823184525916567905439910680564760984465137325072611084398709990515667962673936211297410665902744551105318937564145651019527285484883340964583466878399237771789641486912818147315184961964622151893183040270644948308125783962139279761473364916773086062222345144050865196622403256110268476167732291719531324704889704341704228874113277807339999262513252412236102842986610596186723349669740736530474771898658522707550529139550493637218495881345647677914666882374828787709492523748990577470632744610925079780413349266661155996747672328624751209507426974557936510611646511771838626456185949954366743576171505525199891546202544453694635321449930694477811151209831655629641710468036300410757360569259035802511683852377175581963731599239073552637571830295781485619545725569273985479369747672793557745590160352350685341800971063096336623188444501655264619685595990382121333613605971047096416409278140379752252605329952720122162600802766215488629022119340436848951007061790067760415837832527142944641755035711256041105441619394786000358877384572245658297509396790452142690742745443579155862591750944222412686181256450679849087873225334979944767968923683617572011853344130349661303533134404574364129673833169560793121444466585505083348577462641894460326561536283689239359994568962677010027194480764342358289452954436753948960259156337280555684832898777451199575258818765594130590046954264518281433150990123116558845330008425961101970941679253988093025081246314092256109710278806235556341214007047477570924127969511402130277367169538252914556366822686273511370323413867806111896795020544628024827338799324809020291933971582295766084866891550846716702751328055382523008764989729476800074754221165346533272774677405712934999872671211348501480466863359091076857286341027754910824510505673338275446354101962888101901759324744313383554394084018277490106187248854720951582812010432582835612112207072478685961145132227960306511979488836527864939805982575786310958278494680919483536585232823664024940588956651843991101620062088777785681534209945817765807968285119105783963256579273012354668067234173016352258888852411180347182151101721574370318706971284931599835341338811558198803957335800806876626809191982155062271987828197339774748247700554941024297678972678004617919728753044871058570674573253840457401878737012613463199994708824340532313434297987082377433295653294012943628800291924940715956959846385208055783768065273808255878354062421943126876457867946659948451288622037464701911353470615237845843897701712192970522942486515283619137032489335657742267606762654120680488107204840174853597999351722883267569242237190831613353657726230245872387812841420534907754829413620768747842438880620116766516070229641530664153345877025218688499726700417855117463080766341889476795893365169960262771040575926110629160073426686852038398695146519279117414113887647594071902692599591189381061076795746990571534701138173791774098569228005265841174717336022914476634784610629917914861011895283689930309892425342746303258274497727796294805405815234052813970740650959436971190909857391605967754862427576264778004317315776273194136719101850911957687226129124876707380108867690950947430083252491258668262909604667871213811879154769806312109914512469955037181431497229995973770016930204215727490291460517241847060783761618384551934104910306333130390981015898124049479564890149769125906661354120001971287356994514788127210292899878653003793868699211165882021841553771050044137365408325222839738028526539072630000921554886384785869833642969457164579811190068558524845332722657539725322763678126286732241335723003734222892619646349287574847811638945521000676785554984666460248353069543063053377950326351282673260850033510014121173406503420429050297443418163164008735134107691599487288860851186956292031023361666489407648809465769800052318180168564739403425118307237867414735455445028818900098427052110003473199037308078707532920241770325463901736311372380822649551461302413685610254322592029475547111597980840712789854769817003171687220872963344244453133891358236683373137740062360369892228179742147437449347797769049432982332784934558122539448728951408458467719925846465618553484851084014176406861041497529944012778849938385029788437586162248682090869570526852183156619668235045356215411218253153693244338265681482700988863571031685950158673090473252618398608021818032303158370121560261490200148703749570934126222343528014570447695102484133053114721907144590500942439514778364641998736643357921841158373915786814685499470343330643449415986272129410117624913645241066890232644897386807255028694152888512615658546627344239605423123114126003826600623492619462335643325850659394218501610647560674599297055071982005143812026625675766622178204685461448228376357611020374531782238767632366949195814366512502414734292083298459240575893331225564381117585128222322344801692631915366698070254381448282486597513320784534333602797230775799743240296118890473713718743765165589939137985808556766608943783988589380760374731985367582106092430811832919026974922841412436849293594449536347766184340618302344768853689794804674517322804913924494857776654439397969372587383427450254064004333614350896837502168241094638177940765990461723166278141587058489457911563991144459360439175957810956091056235428109731896180436579188912768251593834309492264278363802365755571273527740054658831573644943198273120689507065348399623957325896458675334859467559542727037830526142830694325688659251061361102356875613546668735601076275646636145697603262854335322336919876939462263059162596345237466340920522036107748893976607033350327559092509720118462333171114883447335964217591174145192476540944977717754857883611483569770755022875182117944130361326279664110687884700117571864328546486450157997217121660214867299288879952813299705547460659748282865295761039616037547776591045298682370154414611900601875517303033452844166956158315004382302590871542708318364652075153814840989463013694593051579805762751917743684334657717298575073987520913146687929943550687391423233303556176494357582302335505980243765181161721578805466423212023954498331768323962081950676079841584322447680599628461545515139130896802742421132781343865066392571218623748598069811385519918802954701574335918438023761515341541305788541698171063289910948603687964087198580509523418633836270577008238695658334993472685176368868330054160137790233795011076497201119833109529560711182696011035124508289458801571502268433230523624848302721343781276317039861294841845937708230395998468299967233742268490543209885178769501460870525965306152260022952245431850325631502167657532536295110106251774184038130151098557458152824330238741281652922028221313888703827850053032686905624288587659602401476540764315653882977151495118366420234944604205420311054068007468120250304302741207369670085558901069719747788620128795531849630566968514134701545105285700575691179331042942329319815523199604647576114520286938395298660520368200224768974403700376060299880205096489771637327905734960873534731362725657180761892429566973804729221981970190205918455868007593560603353056358451620321686260009201867673355954635246094304097525156829895557875534811297049685865534891600537528746782477331260368594715129102510912063403490780215575846142216147332677577582249704534092518609750291036716498204542931067815959685691503660177931680601436475884394127129096820053073811003952240298638806761431365657372099113742283861230593491568984739504952924025277718955352138793043129991142971918298786547374515737057285700166453519517714602613857485162899001407637572126128443349486214881737227158446982969839660817714699763011217246992896418075528906762172999020301346604404669569861607243436490841938446816214052960093426888198951802389317427999777466494798692561742635848607486868876909088286990949492825134222426233638352898106761872326322586100442930939831185322832886828768682021004474281908577864342323476510715913205463178638752844539054266229621874597167264648272914360970484087385109924702083940394676173812196384820558365678081756163441620287467714281976146097314458231611532469767383642513259454901347220614337961003027629491987031866515655822503098684406494995800262715946745980127747072856193959075431478008313301569879285032137238998067500286505279262590348621281696517183108649406221918488448974224356773302371159447018596892488039452010918079193930074184265854199742859114958958947454363652662238212459933639785741280242355661692922982875978786863506007722368598656633379977168583262980717136602917231022334732463116364142449379966863355010348951561517278720295389934684788269186475150526075357798557995825941961808614596064128353882373023573517605693854804282872638680622195487287923071411654468195686246163028439920303570233486104291160308749851248040164373154517244954940136220995032811540693047191908402944324308043248097921601850093773745521847998278301590928058882056304148869601019713778299454312130622129012833292656666836483469577382764474690743412745553566168037299869920614852443355391968547692615253233957015614948904312796403362018419460060647261493569576950588311682854557859916630078846881973233626464023803735526563872942913083888964463049831782778794925345366368520242296971385609722160099740834731090447454634851394745061055458997243331143445423422424915545185857769297640841885792180606394442580713104891550543766393295424107906178854465998645090340158211644641548605837142603084352533440358442919161953948203640973352123706740931864123110477815534221205333760160678925148337768627188089024808402917086701686525906462951364385736734167626872843690656329824373098243449673077954751507209051044575700511400588363755254278109233580397942263067502256321762730748781067932576841887638246880061883610090964597826119277203210312625662733556116086394109595208863331493101200664185677796468908863731188717007346028831408895977188063819424998218942837920548633094601147977088305312966535148474396788262681724226659861753900734863376910509125908033563706619107956434136283388092078718753815777344370442844347166203283199329632690624500091750610125399970972178383107161848732423012515147452327108199902545402619083148457146912131011396098442858155227858367453710718559769049552965684824580781721682553450303363930380788238371221187510490973778491992818741915158015309187807145399150195135495558272331830717237724880200409833249205926213692479963946234330538060797638705169530148068289103359583446604839195890481164813465232312097982639130604867352076519756518199011611307832979934338871413112528039486055695985283140406853089046439673538973147916293360649367050931529459414208265960727694310227455590960593620681979900536338716810748418255264672955482215437236739422772418521526357883083635622844190298811817391119018942704704752837968661898594733852300179434159287962458867095440205470058264917614440451396838440706689015460759670584942872038542305267337840628914419725767686101804045860472252537103464729734620394219847255111198994422752797572756830211723205144963918507140162412290622649632340131454955371801847892670721408624106070967934757298425125296386883809888095184150017640281853074586029755427025184031853513676202575954102705673131466414263845167061887859072853514433461455616121644287794999518978110432605534201590938815661964369434759027064735670111358082423545663660704693133580439918238016021118825944446804510992273742910929301008504124227005133363520836243521966100326384043079352669936970550135061138614949244471782832667349273783577062910403296610819062922110299290775764729857800319074126507944373347041676624471585200400733285901365715883869230590428608534511141468160753815369378578654102379257451528952531427107858794352302135457351879815715381052396274541136839536728387890081058455846248244597038063437479421272980983165889503270365241154689651476302688670292390825288286376386419877695431194118236792558277912374481420794291430630314473225795012854979078431212129736133191372829762322145793553983830050416418268048977712694321049717569839478199306081125885056431760052085529282650666665745600176435415032725020258500233747726675626524485329165006073374589628549878117588442359366577327778299129798456959593538189838442991405126466860128554616308270283622508437549564331324427815416075846106713659963193276477886419173508713035696097171881383208129687013429833727999774739020411407300100432570696023116163209348668827488182156308886894320533535054744673759521205543647330251098556448823932111738732229132343433958719438734568471128489346061221143056567525818027218162981449778212481953087487459793393775546624374623437886907166555208322657354028137507874334423388858063423406733801162585652688332669096649628434119472054918062084454968674131718751828024363599758171298751332358214440577857908268205724118278351137252201059059811279033582308190320088695187188398859391607152460320820219989785645728491571701323362034857047602860393774275222520987224694838843478749936944016981426915877180339718007380592775033908261799624929031633478790548774697852514495863957318551115089451066893623650263964253956230374386490023000954213382711689564404725499909038138028350992672818854162917028617303546680386552411915882041292161933595527316595717088738049050031776398930272393640352315946952494788768013256599152690342461185205610986559606360754500762711946221631446580585614123417684079196486833284009094821867651661281325620533298811977698827180766752711602155009408880795360113917421090720587512182510792196429922340981465593294148254262630058020057711279110425657791224512552661446814170161929413193441882710642472088117334048625403594373182532024814695861455270708246317822170040821285148599532665708040832119093661549160304291595493838436206781427260650120096313196262300225966008784754599327013360765432496436898679507423451697750634593374049506691224089084013329580769631238712905046557081871475332096367355746793077097341017719104221991438403573290788722699103011365411370282549594325526282302476117697181581547059067193004054860387641126288361050280371125814879910475978266265211081980409591608072859993016687920187892805705101866922156295712489425837767716452659912297650360544754297495086213359186907801592963974243371514533997695862525353366561056829494580244017805662895305115959331079430067395030867754564668384754329433572461658194473774844737719510703642327292106361985422579082392437556753705045273519336951656659164652665047845681146967271260283352425047882823161365836962245252445825427511437524704996597863879424918691824125765739568196092712434088585485588978359420028974240926149901443618641996668627119726448754593728517482294242369196325545324935780437213916527695435727520689415458396086530435308182008561174795762589612634700581058276270698694899568167990459750509892506933909735686289299453954690340309997018586582699190581007807056034336181898431800855968146268836898898327707323171719254783755857343150829450891796217600810966949426980721907530973923289819943626221315718139521028503435228025741326585591740978444947920277032137980932710072253840565826919208636667157508553071595149068857023095585406171445415535456649328735228588695792495914242958217587539228434902707745701736312258130957387062530184160701855108881611446350068815293921500564737810584713394788466300435131105194788340586454127948986582560415880992763888366187052351101780486287845234584585712979785906229137456451643414425039874513177800996741936495536388800761913677492450939105583557013954270698377267339428948777239959080603748283266726258843387025800629538299849132733665619871304936990702925303718480867758511189387329116445752819336220704598412473559491665942856992561658532995059671317586590390284818465020171430170739865276360590950136437828578051807158892448829446605121390848442887283366713124803908574044005062462601083847714664377665260839475447087740114791576989140850823394065115524393202808957763466474263290010525776924923688422588542996130483895335959424425130437406975615732280636591323687006434887752821774034266327791502120318837249940354024775542537282922391535007706292724674498432496008146997270173126089008809023415345804485357261530669139733750563392438284997819614353847307089131120236464156686167490627387763596416243990388484001695387102085780944183249573498689628844428684817655369957035203542848740607596557524986304207484949883839975591105949570781526647690855262178679288792759472207672095202823670637464015088164077118102506229711714066765511247685001237501086924313781742430774269108471895912067559918195307879040352953901652267175782476629234560129161184123121736090687534353924532315414826330424082571159018956166187089135191107737422287940609903521477888965228761559218874681778842827595058469447451742459436277699843215715424532895710106618152102708754189479900264513675618080565727457292375451184369369272193045229644672468649457042175678659768984085416584407483591101086463868303218581422181525926016603534455064797373538885712859201204463982690859705398726773948933267089786755116399609526913809106938554792320866703324773057728944744105755559214532166914137819204180701402394995542115801903245184488018059895882460510211992448421396407092172510760880308560059595027098859856656571059234282557076866620088558481445639968761461480904101612781235765227289924588117800151373195270017598943104028244693860849157291170898302809907530128302824118917818526295801048970128224100954145345625122588579900754482506777161842672935576943227777268483706985987898656513994614282239382912355464046097420521841048355349133459719391193107809748960576267711355367592177862038081915081466110233576404493774446683494018480339019748226329388864289592088459821938621510049431908315174895640016628194430481121745522629109319954692385881441256100523807534191576722963054181162600533871472265418248179676971835735341877825154242530245826775481606565856980775353915002269461208449811608039260623988777264793922355961719019829823300026534939343471768300324238924629003076192101658515837003845933547448313024037799356662054146875321591004222661504690352058834364435683738191270395493844992217722855514661945942101048036522535174471248443710085061126725350208500523408110259216554155889614852190593962990914542141641522749304754662198712968697600472446242997308534403608980550142135535021064540731597904164476368566788272423011032887685975343569181980832118379929441932539045222231606562192333656699316871857883090942991850885617846854507838576037616855622651813130548474070654519676056044530876428387511109364048604143723299950257471405183211630085276686389287231197416584739501608397693157585031350129355798031385691610399474985743282113373159243899063941987568359580394481214425346345606067913794390786716229965247498977762207847504451808956333967088444060808831522140717946723636619278691677608531588579332485662720574156841222668705218856286415471193525867499767312256877545388751959070497352568002440320088694923164342540162733912977738057386877149079737095801415790046363896312270451595258322257546167226019216472019668003781998094664506425783773405849928573632075843923503317138264380073075152545368894230191976949768285575221605007981177102031166747455731051208461901198134563726845381801991658705246098721002549190843736815834845901598389129997966897119865468978457808131690302137313428751693865090493894054492932430531653618802580210193816507252678969364444511037144579887481844834691619979883237606194815156892374985744615518208327529670312036842087338192883579778868255385565279709227916381989538293149395446851132548924136055014574215749152303049585742381505636409749618236947489082560601973161192046077411999115858509090752702037969152590157965654074744718831668705421406701162726088610153018454658669240660872772138214106816037272072774642914986295568103295273330283073500822486392440223647025471775277975692071152474971136480605414244724678223446490183813363441766040649627983811053278403627095111885678801371788117358134234496689036453400978250296289429733840629490002285663071364712122168953867702189451500448005689862454391339964993729021351196343521052877350760789120792273010820222169717535884764300733377486631225907592466394270826377967943132298901394589021043180756209019254159492235158431512284274522492749055170163183339351718177886063645014893536683717706887306397306651289348138241376176685672862475690024026779237861616184733534499363852915658828919071971830895042871201269606218497688185749125181596725727107688039780248062439469829654771669471666941697323924694576399308357727137816290017360580623383351373186305174658718566996876905888105248343293211692944866223749261884675426920663761271922327802904393977209629112002439348289862977403461258845368724167325800144879484975876725712061926655341695270558703585961677318940526643009084682328397315605402653085373159666225333371018280558473175755837297670469140915182324815840416952751104536058083602887364437543022168731932853745294198307672638537287370308446128591721033201224133077543663645702218510772774386391073176265100546327295726163284676565015713513104453645856703853007730269433361617153213415683299914312646958238543152198227107929515300214483078194599967685848262523840469898181097908195726074428973058129648282708107888446132583038204268285302840888221032429570187293056592426994825400757463226410707516499809705069113110581010600510963078407286414957171792007371156996161281344164136359116347024851227570939162111860549924711161009055674620488393378843671135698999362829656704634444187369219856218465790484063453320292327004451994425036609572788148995658571926260210367234283461981996818753407498751891913885622654164652543696422057872520919832236594106462192915924192052679113627952904874065984968107083061821387771416761894421936115233466018533056146691138107917595231650435442631327507871550009673856881598652269149411936878174474925245376843013263485699311119871692381303180822352700209166593795210357687217219488706212646109376365191239099410944791945010385329939373165019527139798894249919496577919795556872352863157864621066389804699837618827608382699143657039437919103531560395996669059940703574295467583130715273023253177370389825387903760656392036043690087938719002253284273234476602759550372070846242296224187343371773060036198040888385093506051323376137091217086272914940386991653432776287908941231002548733737435441396386929134655680997038179647267033218455253614865402117490725006992290748740503216540769195559003405733334552252148107722784464748363698613802403370067927729306863414115892806316673182753848698865433831290385280504095645484247134841417647888401376619520147882180021612202008994007369851767429167502458674558494554632263235228660290760332487144462431857360323441597051972838952207013502258813085556867371881163298909007187129667501872544947260837458445200685497540882367137750765103356830458698444758146978342596055327099491391110945254603712157516758148892820505293710439845423281091305302144792144847349783580364348821309697758353166342403081502893274912213782345162618135422493821134464717283301604256622203791160180413045935473020519026351790061978139776761514638166051563926860421909366865537709350402175571148387114438105442741256198566615096813047602969935212706527703091968810680815719264615574061424208436693994159215731953736741309805648729442867442124259157241309679115134883460374106224113137581464025491325224262107618582293767837012125681808529428896497564666050273261357723182199337440947548884362278288064635150848179404411828367431700275879516620669030100270327296187232682089881675426770634397259803583124054765066457000444807707166030483519164420267022718805303899868412875515093053199142985639104591172076097081318102213118584146179797357852972470417958049439952963586882830475201846262500036020200120193876898794286209336064316227955224333600871384690246029506809990497585615335239783341851159661403032192622653721211751478155181407131815725278613939874267656819722177598839813762193978557746889981882507279177189185448309422047998949807400260938348245299484103904547288012156139636420232489491172160795022106419671484272051476813958268424130294425277034994826380963834195477335223821437128724379630331255967088098846838654956514578319598406624029740368617344360193945090673526907959488078712722392355881145198436209882859295236440015098360414630472173682424678537471749403895859026272772953005139625107155049461603911324228581901956535140022845230630886374256547501250642758751943619110430380530319562837476154589747421858616548635662994248734204574172540876116965739157213018648810704396977357581619150306149667270254293118182399505632543826663361301199282273421924433874044953260113469738491649060091794120966532966171503324745612073685493021640893484452564524431865087388918183645683664552621665725158700344749251072991662678012463408365930558958142107087584558476090238986973598163438265348968424494245158729398217532329660438092416065046340753328277049913566835173226168602668518566100190759270566518601093526580969815390954286282667554073444025187309628159471832315036735324776990297354176514844620790691124943986573947452586819321359542585650449069804025776318191610109036286969945909364659900235776064153466213979991983032950756464200442049655305840839023160746331377558883746102325282193235578113790591082573524771322311008539059219183621826321073016449822189880728460471661732775803231039633382847736906775315056329256651768951259432058496793644290261320079683305561140353616474891788186783951979404031427318561187162501415294919237884248289335296864734050047131580479792530763516189309130764037520446238317326348161345686712981617091111918430585945428946339829311863369280522334975260189274601804565669426219891963649260249002152175243522952742148158291250271367569280494699709001103654253734474822792337706941750977806614785049769301574848794330919795586337465629043246539135380841350123152586901648964971917707495301139508907684531345599174388094180165361055971695255120280464286309036697430286960507292898089652373329460414405781627931847476590138260573165276329282883462172693963658256245702214813561651182990880612889981387498471939839739079754041141549216506580580339879850063693599487718326253017553841467531631697582263873087204447757366189425970452536486236765291741243736260656830757112742083924639104813991174435740159613387882588865046280252501055554107321202385489267444678319470336081518093031295580558512377963652080361916932339595760954791748555377898444115569507970741411572727191951730294159069152083327085489894971935476317185106993783284379390043804336765565538846605923162679018340132221382405976370064852992518183499517759815228514853416737378348342047339208629474667991891000115143459987648911438826231193136214824014463465297030190036274308264042501259225726833804313132816187486779707153158318870476808009247321995639266905297043498249039940841892819778715398410627293167252869751039531788218908974687901528578922962248002918887180172015956105351573560796063525180290325229317415227278042397648865447665164824890522784632335904143189988606864321286612786330289738807267871752329137686330849046985864963435686472513726377744778929737723065579835560309254654218872836800955755477560394258696249521754251015683734095150102800749375176505164664805916758507071259505651161141118916218975438074671755316450823308608331423295209156072499995030824344365568754892548669285992104170610989107124926243100385948576263178646867753997452496918239334638544142431982591731131710921550638317576493581582322498891134113955543738547027374147272052638126734700879524270235385648212908539767826804793616714068267379343088775969230732143756948695386840940068145082188571786580921565511899201644710204017206716463852210698568090393733765313555823942185880707682354468309206722452801543401131397768993634200679397222180775423461280396942288422594422522901926891338429307019986636502421351337097590401333154992638315776524611615289243402430610460188804752837987203487845102182609142606350961042291483543460470281294832886303864459868965165333886796203643209151374931106053568488944373987276402936166643623073187401785941238739886142109681550018716853315547500943818305723625733967975140841518509309906399954742076686700354093743687434385154401033470334408359397480833778476744846421049258767971153168830155246175957601696322496005405230969265531442153700935585891204211107414925289611950838557255981784463810283944548275997020866589264740235963890248838502526805221205387513938548358388668884080376652109520703584830956357587885515534129888427962443613275292148786074512914790192270104515637228591826428943543577910728714316662993111890716338733239936338332156673514148079805692299679920208188074773724526935257589827737088447093006469015899871097344832100614144845510366954019806393472299654402483653114871522030089800455702434360832572636034735910122129272680164754111266098027265984922829155414040856260028501658998371607611831834139234276212500810670368804716355181104420703181827238020307947371567847470852858905435223130418456341331108440046763033090466932777593386586556010641453758793748427004465341855051728090636708750030655156692894271121198694082115516591309136889919894175197973380143920562462395063478258120179899437977639421103873877148833691236092150297242071222071275068036925307420017242595550000449551012744879557847834039456869430347416276953987746045363638547633132904510105615145010243627287480248574090620197276262042513248625434908767232769042340817555605683278393934480905453002416368775048616372423214765921707536413157415318321939123480984507203455432020631454466843348158450833286746512834527177879895598557071853432090948477925497414805136600852109379140175595385735291609159136768236943718037734567249027533546460023342710166145290924773423732763032201841566990746697096451215249325822375211088026894917375423174551408017733235435620090956290721975637063401992508532915238618253813545111383843856479302883219320478554072942997195353783930918004706056510837357975732706969382329681567625718738000456078576416896641152918900616110651518429387510632505408036526519882820263786322527949624637616233255760496143578784957635676649607098026727125037069672257284865775987138672965785597587251222648262678293110698372340535134354433473613337402596530382457592060978511137654068400917192745465363610189098709496502896544825384454796671691244982490678238290932807832763803393826296908918295248421762898759734216587936151918850997135983090093638699400482414171423459739687939494727258304420499923073197457996282820933634599661722904388473020695609742137612864998436932009391884487620787286232076162722003532425015650164692887241150263149949203074360334514149148847236381605615962838066940833052915195958631976800129267909682607578788032287240318440149817170843868729785073137504421142001938917183309153670925714947931059470713845283900906812043894058577467095386734826626030242931265003025721291383503558648247082607634745143382953032309559603738745947428906001477208934262433155882633815553647032094651771424410566126242800027481821753107350094815140063871801737914339270697138282628139347549898889981615318478803626649654730264030491997157850199823567632330722768223310538729775176780709264206708818551398919903020178693304299165732149084988674373499022980484757672131219368823384631697840596039208909087176195162091062347852603050663503182688238567557992900027197236732237492338637018557431993363415974542557523540799317693634260883037397521929197624290722157755388302382651464915900061968816822829145937496288018330840450119120517783351597949114322743959790682454589627227232052617269535874437941502798899564224494906747971197009862310149694616642107449615213911934420494318785870271675293712492780850321494211883675372151965547396408327901482595039767752631289436315615080813920885800577331705324203885293748483109830850228987047465528268771880669099650929727111574971351568680796834129601265656560149400526652099158014709424673639249314461616929082920932176206805956888198414758017254427157063329124769602421829417362470606962556023324725227408716937304360869214103754500861052738949553165076042034562226992532619237001109136600962967010818944214356592475801517229566457431124830283252186687196067626558488549202618019766955081644728631314336790988595142425831934941960995271533357127210128881640199256106621191256143355123270522372726181628825361701626876310944066597234431501453475845461399568780100981395649710313203586746907706684543684149868256591418643781923537875962479406439603165098663647165168299669984765929917910637510068454871876932354939414651473977464066716922476087161954901316859736228275260683537397446418733515344908374733297504877252019123186061000654535322684510422387553849711080398471548334281960416922522846971267999526898194430272265474388128442195772318713811338115130409922611324883279194272167136659804130082876515003572347827295698351700172505091310318356819136672058735248135083818368536221411531434948750482309801762250937511793672416470846235513736043617732674342051357691750548028769694712932901154110071567151616579924303484130659086029875285560374162598973465573527822513366636645172397031031722228259515758371355978423560601808513992318397322737152915536459689096841465230912161170967408639993430187165057857669548067886402561015640813299823817167747893645000386894772118517774171148687041957830269963690176922714098892261645643729036683531390692445887738918490516358011040478280385325859606087167871587898138506061739926281621210373874380409589721705614147907440398145909252229167083652523749188082228037325580589492487968319206018243606409013641579197411381484600445373958484953914656902768594822663864662291028402511672409484996800214048389377782846312097074529103620545712767340167746830766431192701004085456533236784371354547818028534283769839402548746062711675345371641545423995806913903019408804770224086589859654279174482503487437728141571395776017394867403938593708034780719710788285064175800107997806034471321812984574332509621498816008127811150553893351536563534069373933274498504717251590313657948444441263776767903314428384660506470696902173669246216874623647378762510030446733928407697507790704660164645345812953057297555624142640360121366694827769491007871260597666933943458676855422417089385460084206407125063857273343143152528981846725073524481672526502153709716496342205880873862556893121279865362824937486957845508588007622849166475559003835512698711043262558326169170155809638073536748034292474720308753868020418916412740430920413667246655422585171470202085069949554285236216214167218425760858973930056181102979795454534313875018054213566942029483967409140340777656030992319680884703746645841873538598428874689254813675010861393743964770185487173867369422764844377656530555161805111819038775827118449902922458710147240567632337790278666891245837088074543007207206919441530475616686465357562000044599224316642798674681941396078410340341338508437657799464598203369045334635368432378489799132789951817162050920498208191302180582190828206592265660565894701954037508888772833280692546483356082740013377995029953029136403211027921375766247682593003198742078268765270742926812673700970194534777788256942508250109520214506915896554823561742244091835773918165169087548312907843188500157995632256790677045397165685361499089205336121269675127465891631181061490842157723260515290538557256338619742709129639300888997048326945549083415445823488117471048423308418169746332149189568952465674720799519112949861763842879878054354175177331709761032909559319714240634745321710173566467100040727755082834976364545389259485459527917399201251182784670699088252941240373219489379000854152079758529704292865661591083177497283621513836957657259829695907236131807604517798937970716647684050731498287161548716135356739337835221768451626281543446788697779968926671196959989569414817763377871555796799124697881579524987356173251262505391076056389629461618218051144977657923652013111669431467814503844187095852636420870272945280928029499917695061343343090872676459013835387721595262494848372167208067574741779322192522870291334204961018356067460690103287878871757001135012627315624671972398051695649411833992696336238335666971133774013477375073237740806772930411497672430790450172480425940936343830393911241260434087011843715532371514462491395809746787357633594459949786048608389544219332669405001551384928315885808703650934661815911636999892960444831173811928102255383465036842414524936694113474077124705123573559183952084021985034911769631756151860187035739069626940734859392842073667847911154173943076613260426816267283999300085575010628885227202927679586207850860854292001708490731367702370159521905395262937325575917729812274481571780182229851298699403863583579480636112385699532160747008389111713841925112771624058595609824663936653442910050096661361772474275483577990063213241693635515662050363185371586636825238734497038773010110337143193034395372852665682657351687489253956099393894181422004625856784020928305413139944093502787933356942692337345942311011129558693635052239665169954941481023165904113722981712042008793736795058200079189416557037758090411546917984595598226429273187111994180940593100156069709286426966032507209971995514238098437319930375296875015700031795671820089352265123066424491666313450158464739030557049282767089493372291336213003766693365557858969771061928332917476470874045373107064239189308524796789304352333015140503999964271063050537821944728206571458853861546101466626567661784411969389178969327345256348686833268120094526669496795767781627696807128194287283093755808924030862914936576905332813716872528099872250283247059500267439221919466956919025241946831738648068190296877689322057126994514851667278202535372950818120328897860243557616192242481780325313049391985327716928979906963659745598068145319487033079115414524946986043289823980834319207301849079971253007938219966491441823367280025776856614635455958659235612040199940690260199036637846233103448536678604811699975440428305394366735017827215981336914864543063847916856436325389482235756962453163436205525729975254994990067635276020068254620007164394471171853148610560373550182848652346029082534163950812113979860307714562873500024554533590494166134742201778653400103365086978639873714643991345983790588534629501825752844340837258414893354985231297456614473286534547217207969680253140690063639002008694480478467266165120595737184862806581800717504615014531145603305594183284615486495476130322338523623642734672438914607264237547401388429680882173515929441795160738672394804056913516363937467722932407846680082750985365610671746561975147257042926236882930794722735310850633376559624525722560593299243138261773956035973262958650830093236146727382107890880746360060938194978423380989891442463464446217562396115394860762501249110148727388532486726399928189131810105821024505830567388528897475386928245063241096390232551624180309016563850865054582664283799277917105662005917795049039782335087807242282933305699524606414016580513579486597703080045593096415151999145463513440867696490407171010162282088012871065920912948574229101303145691224412460764944997395013309428628359776224915870328618350205334841758393906256524860980622393590639374540682422252243597191536216127348561010954533049149221692336873045322894479082265876054866219143464030196368001359109233082072238274727353340376260465518702056206845895439952450520562367228943611715805342387505878831986274799806718670279668895537428236447356509496139908157253566423514987976764147566260137563675777210366128239632483330231010959950375871613172462977321499068249750139294438819539297021211200233203605376882162548873649646814013194091634387759585352178476367641246806976270826581812256179845346091207541353570676400693556192969205238028472341021689065385867169400035498275517891728847553852406928010658551357497263819354093401959170729718569358084794518396640713830052460923474105280719819424313319521108668985503925204694666111161904945586491518982250495996163548612823810560005928447570024589980448729941358445322399763277877917100490489634228274935299298856525487194203183082563849108127310030754040188718160713133154448370713503639838502770193574481083444740280431022411169867644938171870134454780011143626948261533531210099088884418486268138550782139831583807894927661729664553875556522645555142578356353648842438112551484130521054221437176280516533417922222374873924776418717973161611537730234562908222118176754268789513753513240288992586511315015359699338302215708009694798352161079745832554253119763991870983097697292310516165148142475126493767029728011252639702502495089779856806775127780160246186532823282315378684204901356633191688358953891756649929437146444599844412396670711591989172202090944353385102885417525011937826447318389032914937618565123158495985600116266225413460587679984063210948488073967892679790995109613546735802092499851228027004165051521341439372395720573369462984492417567224380879610215690881026557495350023520911099440561348863273266495382056281023699632590654991174955993456902477310762156299825091109247187598344024104167133430020694065262973337607359896962991019314524556098202897854534570812786369704280591947422128660457312467712449175685593443287790038572269506738249522111339495231669936937363795678191488064665265337049465848933427285325163069450568231450515963174932656460992199911057774995491068588666681018265903338117769846869662791806398577819095752602234875242457899982305326498263340725355935982453303111986412208574472590875591883459847893186217789726138982741799517340198261447719130906579614217036765156481886671637046575493205489008815234159745392786010908776063530850106134853098551958764992424234967812720090263033220502258099543621043041698404213611574736141772092127372116807808555678793241569850546362886288087406045170927362604566180426089316773949062423687309103588422483361940886762692559957158674924901846591382818250037911162257182625215916123526740296483926574911367455474229334779438379063829103019517007307915444340880213082186503016961204995814561840554867267610989483023588664607200755682321671062858857285505147572410631801433300326166649180948974073711521532921196916200500747344984030680623204836582081054811262010746635009489872807820352670207335178597516813517693460734852167629459025412051141369625136024190719375811891377729586235485751250182252971299013743813148336573340159299642658060816372995584524666815474991333990776846310398245699191210637069339860318297222654773345366124461572281972143306636797200986985849221286182549224915039138390252874367491972059617403000793702045329955852455088918978987093493848935445989215502252180624947252271081563150841183155939257985476569688393450012629040698748164592847658244291231400870637829914108826639453344739499081829910390993707780737197266098696586783305607527107939477945204011126144503174814777035464942883441368285486097157620106120853659618149017591641779966501090217778961851934654035625499298422870691430315131605619813493297106816508077237225934962922631679658286501918640791892336908792693269401420746766010935475266004064991044366957265226160628633348578154800004545314023952390763389851421737777760334145240053623992445817745122357150800567736426517981806706630897008433454452098280216496408419360737828552096588017082768708075413210294933466140997045744634715656384670606735689038467411046196806292160283169593319417160639155927244173059562145774745759151871465070334727586715938989467949933745686137020359687738724510057826699613494398003030943811932711837995615728779329758946542140395820839123907406625940213791644388161846508488548112619166412173144565007545962721495118420222598727536787842885224986225268757683273168382629015771705963191867000701843527878281867167671943110824860162215706293863051211422821301229907999205812834414820381091251848246599902415794164936820702551486376182866602530091456676117513138236422148806723002960926824103775902979508582582722968128727157249935221265518215602822695166646994612088933647733186719462887667479363067154379122373152440119415430225003938157137469726365615778479770237135984821744787776140472973530069758423225310227495697673023677896841915967665225527930690642822995689769025985870177617334513065561704381413218210793843380047116021217318065255775314951321589218346804172692542917267805857144224608881780519740498002573326645897044600212612357217720213544340284332253019881260346531957146830820265293491208927089752553784819015071888288691381842388656303605502247713425269996227674036102367141897153753748152777642881299148735445516179311531263854801254199103362571656923755794774989714211628109816665079034655382053992986051283721683407614149212932427293375623878993734149468140047461392553099209746184016526544861768257460593096414286510537864945749736918039750773297618749633548803517591517026609293521648309101637528994693566626573789745880368026303719221614296014307061430908192390914705077990498065437781391534745431791434036890471433934499692010657020005969872432099714409379911927774401208288635024605511871904792371992763164281617894938764061707506870889134866169118057411906164800020588858165464110870916083868146940795064609974387351076208898254420342335114516348898978883236813922583448921445489558943362865068302565007284884390959344957082888195737837984191493505138200037207270125680138746027964647364606669014764651757572169150425474815569524202121715456152124302508639466703855665732068795091258704887309242302080523206105022248805260249770839571025323505532124203548652114061483567805964898214318857759110142386995169653455528343832899093808657369101426944023942465606582011488949003334876248048964640166646108562594178525147657443099692255488324501735593598328707228519278256571745363153494574840004201269745936364960559246950856820829313721580996309160299028103448948669023416675197123017466773948324486492891009255459370647512284367968024637311798350795793479890251588022354122330872919595068693177755106131787903501015826000744205214940533192571684451167350508160868526335975809190332684162933994154359131887700328328930540689211358753863464816364796409596438704104950555669555951403053297818331422305557555339059237823853341374058842994635814537045584279461761426870930934227246063665443452018371775211933470351000364819408447052623304717940052773271434392074658025808938211503252114503027908844831617634688084014299895040782432624567649800737138021686822690186130051598484602352326637779685114083474386265128099548762875592067387807160276267242005374701358336526263286728988698352994368050486653674661949400178078018403105701347999732525041842011898714953660326254908076904646595744207723264374997257796444165379885746455663155908615668906979941652321245289225035593352785073113340360499389027138052564820210144227096018555824140156968072915305755905336098166335178075713881842091865729095888427456232478513512610074452654076134667312714726740688996833214141194039372740459081127805532459405286350984072908436290447654116083329283914535697954184817823386008768860496426761604726816276192752630666477510953038296399327629164467250405079742119913834290493635483081092638299616470722059298591311923271415776800625296317758646330952798602593624423962595239412712801964226511384152009316065812338088271266458479573890319634769093320478679181224151284359260035336639742743715285499656054619345290507133140988900514283917621210372157167951915210250594106892450529737846663307968411477919055195474830201891877456612758720189154551285727527661020016948243774437694803467101704241664117711920753381047846400751904835120683632814097147052601876961002853626414362219520861505419270223444119622586673244002144365484300074112684392976637944791585222749747875706615261542859291989573928703303763435311027693556148603446696644552850620661324804273171318819386524425282012522619483791865611915977122478877098730843367289793879598596891252241609875064092486272710579486756018210494976834530691035801876651714871654963771779665290313658960998759568663498940671050023192994949637528397341848070967858179568722376548478480095544242477795168094399118995853781337269242494998820826436741956723153008471365308671977991589610587515216811603916388101374377404045026924341186771894494281099186402705128054523871746729611371463004725274460016402876690541499730294797189039396816612951671184662507270689888369878736705142865201472974549825890865639526072618039631698098675641911757416336624109009090020945370141040423606182746840048690372566280323059770953002075670379568966472676035312507674805433549723475960092295284113488923890347270701966552868591039868754220416464778135433955296508108984685270215134420384449445297064180610169174490419458292871502643524111285057416698729251000482380429858250083039447505484239572868023665555894533493181399841077399697842361881255826069092038118012931713781164670464040256248515751142972293530094435511043573950676580020310918227712066735548292338665685803478789383000255690456168775059272713779821935401535006577551025914241270954938179352220087215980511289369497760506432197311689120053872717276393207872559037803601729750281275374725090879181990939636918125357149492206083830244846212796592779820756503655818650169626864191247745223823233967587221881389921653386156407880025872204464691064529777550645568709522551921467675451345083855344961601283716692737762698623432501065352356683957132677398756570858064739061547966723073092214345362584390646508097217609535719631872009979571899492526806643659986612474113506426888410464879477296958712019005434042028696286789876172018833541190099425992103709044167854568614885731137836813286706434906198353640832660412488805715749739626969777153307643602328706278811111007028296966357643982411888101712612339263781794730018405528513748992579410253130118246516877183461467662956795813594225608334682686904372036653274245215340047016707967767005287837346361100430463295801492406530874690902033590922138898251140012680620583890799921262895756253698827640161242671390472957616751378198710195962192626110813715148130695789332641477623736126845310460480166785071972214247352990078227931745184146408481053815577592208767504451088240629816106931826060266824455363053483140588030281468005645018185354672325102548051266257864161399990209633410582683838628027392491884236128327912911656681992701310965167733007789761498534878146912268512593004766651936511198592303793114224169311191479450613323560620778805742899590526617049266564716451238338389352341377717859474771387048665596123942963805953491168117557034540894871919557293356118168000530288534339073361109032808282748000604094489008940945792468654353996704095079924690076177794806812151567263893594652436024150469164555650164577266186920031243397019826533891742698114411384478614489752704618485245591890980201661777764847007980353564925785619373580948545936905314455127724621959518731311011172619522388985975565951571462917247396599397220144532991584405990536215819847967798390922986554749929463739973321602265509392664058286888235867091459362855811688059301153111697393224297326124909937569349094234921722690596808967270305737756290189472174105573136805929505154447007782217114711939945231275485734410874202712446514404399094064440799287080462478959472427279013047019672145578224094308958835635105651393419248805638279217064397566437859555756456814653503326818479877263796635701465820619484241645076187806450195816016926821772136368640007979427410385260528248966698087712834393009359761259714303503881743074077691294956499521670197990102398312993012123021224454317539724539369056055919303160796631114736603984527151924250368685575316653838272006451543404545936633275314450105508388390968841257424747655111821049777856361549757150326137164362759366495637752722767564564124003166483975621668797313988328543923964212343802375647102307198688604749783276883013502048169696776657897669411571044468851038526652225293085368742836546718911326065850721396363196502556176649604982425371286261485525414197357946949959924001286236031683389752446470847787928481828552327340806179798042893235609565677862778940955843704512740491864866773959195590916726641849989300628896781862627908836412662326148037811895440533688189598345197852078999011070135296969396615372371121223823157827365831262742332552592566448050699043870306420374887437280686961695213683622048064236052906005842926862150555962544629340201361028312399585588388650262855716407163410772978119377850627939210644484866109988078287213033666453221532348813030525940399457137042314000867299926894015446153929941563234304554566294197156225784284600783775212309727013969462536916861960100488104159375710747469762867597560172245078909965532474803089623109426023476068619662301549429051046663160432901146359171593144438700783102730144673625230530345383753449891716597419902522550355666421107514285745734806944005946703704499690121311299256897714688273846796749535187777205314237226124592433224030616387028000238637906120783187111716857963789139825680424415957600695539387176318205846892684990790104211480203929871535729736496324864507782602879773700147721454662208526599970087569700701903480726431248234388543139689795105871609041651721811111714265474201683263553068414960920362060500815216667036849533580351575468225862822085791587403541265093326597791563680678871476196155515893745308528705499993995798290915020178216580668097740876801925889033761207114348108528334321305055674459091248720049562202504611163488007024998082826193459628509512056143892888432490137526573949825946246087671086916494985255088901535514839410543962453175489332568741110334782336383135523355844970217320128814739207640995496136984208956016441572638689636849570214127991246976442586364709938353602760425984807149432348823943438947777679866076973924828642024922247929049707030772416764159107314272697648579164164544413420980854786032649186659343986571142980450119541664473257555656995592740031171411927075279696201861820917886696226924714011235587803158363671895080762149197184095494801532505432678995693283282430837982867176654036355719013348490039408781717774128497839140658613654582541396131132314546384365524792030790223565336847768606147746418037561857111876687197140533006269781930217069449448597556325628115254785865361412496442764295157094813042087160068770384303639206573569577995707973321540972275401216556687374997960053240279383821087948130206976715931741442584246671759606616669496985411770336566099813280125487104197461645683924588541342820232713713020562012126778354184194970166606875417964590472367323934568229002508079759928863328919317615735459266254140823208403605141490835311665120873793391622790670434073579764530534936510128809948080265868157446787749488953388314628202424743775132295704850442956408887174442707226125380893802491949397334405978215130042211909189499078586827074775581098575746388520966983628077833414659175351245557674636109804258077590991709861650553245298717111076995557207108148942958495385580217084095128880496780246094434869847241650187472338440541329189885833918138152897614761514623008759881299178391283023372000264989638156784399716522493535509235019068156546960805482071989210891785187267016625306634572722201689100479961322039286024876276884607166605937490515821677270784443135449755561120839322776384837126182354538358732925530197866966748395448876918134020136038557973746349097553586874601759420225257483961549449526854512040583589651976981845984972179851556449678615715408640607398873007991940289760945985925740597437941971146999101225554903814025654852429302868279184791450376788616145371216812871337894439670991593570261282484512224837497753484038189341061883197957924205139804054086455782266220103117802378511145265456688759155480895363468790645297553952554489947960283052393751276143040834443935053905499394256058169122388043716692308304928685110270608372638674781947166883272647587985833276046207657933754154618975925632909375976577770652384656487348461281520139286152842167811530367501059731907432509059215290869508068179339448255863150682063835672472055846491205572336651202033610564079965521149626988710754414223583889862493886471614362220929594667263780516482965700996936065176227237220927233793969814685549027225918841625416806101202106892007480502306797698882578194856647053182812139113587021611740340607891322739306981017404570438669718833112232763951637217617652844987901199185115823608375867766677648637249748523607655338821373216072337776370044629102934662504322195034924837061427836013314350375845422761155172965466162079594390503187520963296761344949567582456450566596155693098479337734311698728503423535933860298411864863396054593460610106816977845731364845097317536915700377115658157268646616252757726755470713942673610725088363361106328648111622716683372964245383438338244349926385723057021336623972100209755876297045439274654408939451742395131308456853454921633049786284826337483713484283700710083019321882812685695778954993172853148655558245743814226233947157979311672392963044951716325532356645811656184674122921969474881708469052872325185140549394470676668337611893513429475720760986158580617890280371490791051826289077672097964651356812297222578299649321960795758120800655639366781908993109724023749228052432209505249410685260305176883534784730581680089747211426627058752649507196378325727137973269134638954987899283107337055302539301161507802472918748590156377064773244486855063998610187430716557970917897509003082971967794287499211047866265089262656389645508663194322933543389472572602779753419240871759705891741594585416363419506793416109698469692483615330858293294346049396718839335162923424046208875155983444586440171152395312018811750154386363232395108955486483935365265160131192683619971345314701421343880729038044788903091771436262736965600817723173095808198992840637212425020728959119178522940950556945531953754622785714650247983879963363164100333469976155430681121970723810113887191016230729276956106591046300244093199404646712276195112886387891711043272458940283183785917195386926129028088686751629417861342146835465159811975650648645248688544393345150421077973908913665814757558543160473249316208957257192408814165712343894456954361927367545089656897193759624127459390935830425504615290158680237517518621583506961465041045004325106534131086865647261264358982209435452257122110244089559585961118835292623373645217298227942886732257530642799904405289452482052379312094717630699788104352718181719067939505731038608239474534565805082720198951899094199813351623438095083380941407469270049144520044492938930377075588053520623167447158015371665778517091164067491687433177780845010682835468576990129246208864510889550987191504496741482904669085580534294357994185642372134903235581313587027436689410747664158191830896606631394226501345049086099918421369919954458086930268121512432545087842515659056327527026745882209638719706405989188821548493322288992262084107574364185752887803400365703139233794164578225987280473659452731985840853341200201068701252800709233158523183415829440260901447614825901267919559570931806989136899064158732477631189480378529778350383306839242405156219950019462838505130459501218897337690823047762158507782032710091986056772409121226315445392037864483497167033413607978251215019684074353330213543683396309001475488054031408270210184281791476122424811291194518193158146167289697356169358357143033910004819355923456215657123622805727012598147622019551472172470447625928493148542420118655415134925442426509073344178732712556027885530185693994969922582108534358390552044260920586445967387842307457431108191743264935060373435141329938426131141002414758309732700357158788024674540703769651297642935248695875815366693191784025691656283672388388333402581606334498174598548957415095002530352948737092163852027191217844318009733962169283804757248793943669852219831977300669057807505369044435134545241827392767431158112229756003925828735208382620969221307655382536928253994565128601809137186736195796655413499603676705587236287818428477545810256263699406451928092086886145100239773862235882147788288740121736850591992943705276298543057335066262169351168454464429968927242931457669085012610251805084642806900446572586084443335410900991211419123077386924141867793525916523598846966397720050875460968007958775259302414594254566758805857814726839212555449131021118045367352635460033899003863794231097250532059928103306664733250917880123838384579501647499742968635380940321656519099080481518807676101084759006132862524242889314938893966706439455922520761622979812358784709204408753182137001094517724721222729219443055232991162179001315531250827656604077141112427582762152012322924663007425432051451827674574374194982687286969929312720382284737412978485455806865915947122438006254283703639379320607819927438215093429486740971994556263672718956294482682525620601910754492970654185419352171265026553682928199630842822152839943205173429488998390197622355753174198362397563964400109860315994365173495493697609006849382414130663702324929965559749283033579654875076991189025450885080870958370556858380989993189486798376656903359777952812812818067505105268159707360339421597696230444245660235892114806402855602379991434956496819730791420639081754237126746999877756491531209851516440352575508427239218157349616629714075635435343001377352872445663423607314048826884059683087696792133521647821635946107183201038463902039534231526518465664045825681861336741793676302664157664113862109303655284286457655518785505054047611737990953086261199120221474399242234018209622211139827502349150085801825730246418797807755357303002820687907299905327589323623919638860852225753779112248517190659435026306186924218168098895236561092932336675923533364079956872767438633503173476441708579674009923735208136388329268021776343034096737585050834397552221050611127700104724136572788130933195184253950929467701567316824868045866374754182729376922776190515314538553833934147723222841787360164692417245318787552861750566298748007037088063886977493602873447412637337154068092481528933457101035165432472204829003668477110425495230513092008455742148587526850189127790640403212556675192238065759184395133749761288659496303985402396003229076190960599664218389558594617722097838983013310180051041507368796725569038909520703453771656072787317127655320851030550585364160281932485214884836334965718822062417486157251081715940787841864334083272856852306366836691047327615291074187544054758152948619124464121564959683400715148539532440616114592223697127152049986317967209796557509400264099502509792141830033474023492826189860335380691585070920236558816816200482081995896510887880649396815185713923042304676637354664413256007170967103163780562535316521339319334150190692227836959466847584001219392073838144583242774270229732867411819764909626675179878961433430744051586254607919162628602007825226245996827150579152608349374503472492359058044622039100796853640521294822420798360368246721032789603597605881617341416662733767492621868628441269374545670215389872226661142360361848845411216971397935252791324130997431493228604136413420530105398628500296375723292302844783774925940116007729869187723823475826080525493413836648646772106627414876551895992743730813730270768868261018154531661341353783024979832521150439265848246630525241918196431846124519582225882346874069873413667364357968454167414665363987619150725274778378530160777131907906827964980819082009730291906437697820199663818787365425773964036194145162762778662659529592948600164868711992877812981508843161148484106283136530024081136593300529171208682255451499251095623548127533195116751524413647505314204293390198235767689585405947457529128481503035381077075972482300471944943650357341598997819981605955205568474961940052194860488411155089409298685479447230812424234778420020995867689211809618558267923994462036018831531337728512922051587239057875259473514035578731483573500254120036699857835002685795732731812459024785144370453014863849918416041745438683476177802309495789407955090976281642657734211956550272443035165327082196871698676545679220161532490762740225298968382774054216377270747707559601226717620706730897688386859695216443697122031218522428922182263867435608377981806597030065735340598827510713069580217384886324788572405995431641911285524259289140574203743053372660761699800574816748431556349161606329087840985949418947468712736467520369284250821063605709825439115722479676680828052925083351830077780092084821644733053022429988745653897090732393868602108235960161813524667787851377808119849984432197872286990722592956608274467251458776205719753911903174230239551188675419393561099967357534769282291536637590022103955791866317384432426204472826623567771275850409600825130314747071348058256345768646207103582667472764952374505869709128625203730331228682964244506274834907288885005099991776552565546157348244871133429334884698160485902457511306889266303145479370009880139760017747111396980975944207116381358771141556562674557348876070000739435842254348568222883867231110345595839622420900471668115738296984957931459329869184739675207990808972552406348721521447405770989047372181873486767227974234013509173843867178132911399662169450171188822942177056263582621081514207983074969845629709666062964109952339280871890852127918071679651308131460006828571108258257865281308988754300885380687091667027909944450932078868815894522701079985769939899759447277954953794527282321424149892716013500618243212026496053424261078726189489735122758139378888030082280477909919567801484037530216383540559443933901445792326075888076984469952020902154693792291610553883940817806678811458383086940716457675795823746512684858313250679732977848499380603433204175602481368857017767526927141850040171511204151769368105928891583972015562638412373244613968846771800357616898866875131984319681049353875660133941639036169458794536740907391484505796427106976617636477583805248860232372383704474452848081828827862720397308429568033765435132858329184409224771016289864161381170371257996925070796875847847975087462325203539853069510135118053696451951668355093029732039122657725460093190373874395526888911134819080771460632927708746450953601438472087534779231696190669244102602907111197793826912460083859427914526314156582997355645652088164691597232568801010112679394819815891117083690733410330380708591592670875219792918388699834018527463526999668309937903192703967397337894768734636566775230236595196573942544622347756463309090723305900448499366610078408648001577024046366710458342219212884685906918725283949138050314258264925081401381913956361823781145413189339602330784021405268359247291413107440918767268499201550873672233725860072352219475739718958845129776820482880423613764355432605283181671098180901854634889821778874152472624677828655482294510830190383731692842000177243254082896720503409450449244375886586346636818361953436503992768150705717597497130710333259765191305517303373550142528863923575699891363777761205972091785336070897683508162803483660801785846428101355347081831224346604246697052803739199260424572188415285173327531425096706352766514195708481595353812948861629747102424309676969203676965596918128741884683717019366285451153994750003493707853627864760054953475148799822242212104968086662587890092980989362289457273633673863697334270696714397495450306046060259108448655477941322307897508320711146000332419700078639253787515809297490380876707197025147146521756445071031748211308493533794972465583350775153251289724310708633919574923628247153606019209322426929727635429321336426058463220417941239995721234867574573020467679166559671826505963862199808062743775848377513690671345277893045688591668430261204755778733797680504913624347355202080939516152584547138424055470650967224160690305442279249512234770169628770346930283669236500877674345437312063238522831558542696872360550000596856793249055990134621650997247593293371080324307494627231263254921361944006302504614374203844386942179779698118518603426950600812139283826203254066902113057224025185156841660558509162152980795241621598905251593194565522886992932763236438627534771106016205797095513527528172752437015994768124128471240640924043773270735488643300220814737940210694534014432967660281176326440375009248155267477963178398352282224230227797817478022512116866223401645735628286177104542667752857250096110600391332667141543625808830885857618028170302777089170207255375533834069858897294468256856708976974374837727803046393170684831749731664506417967861510996206152652567800854338673602992144359889267998729864901823347652728455215933253747622096494278809411554286814532305805856172169288527887945633208962294659279845312300349377859164793591593393128514977189162513358165824329008111922241153211152618187794222776046597307502725080913389628666056731489685868315448418190060190708449699120100223817155199672855802812438592054810055808225684540197512560580782110677840526160806164672135760984152960167734014010296655960906573319283340465647447448894567644437081480570026512232162051085519282499989222328419671019221463201588644614459648189222722406970556258777984149946317521225326741974125521101567336452499997962207073033103139882031946949567375055939303044628049346776446964122333624319700977882354551545695724061408060983415910081035487064975132214311423604611985974513423675804790742352321077387079591847018816843831589876795253446141099561639395003178640391681618603831312437596034628858141868714872987101918353126123273321299004510700145219152640594337840569140918649458679623630765807906552110771515861534669905766844999517664559486069703350824066243072127314743775094577915254941457252967836534648937133221438460363479294089489351961503637854750614830960116705724418940466990230649693990718176212148084845213639197867727673821410872036114119640051233550340808151004902116832373729373653811758288628354703287189240398876082119904662044339914391596309065932050307122255611711560352882096378563017339243790872593580973916205468963699747431518693313031066871106912736035869257114980958241751940323991397898857882898146143815780131764363526848087718799718782412509005117810979243533546555118245183337920332042079845059775746995786646195688541840504018332386447477900630462397799920045578334766682126343779909779998625301200407154387113923269557765831236483398152596197642229194015844924312265600964011142637937990367468167213642866148325286589528008451261360088584674953245608753052503528936736539007035117509321884821835231521859009103297645752861783665883872761208043187055865475876948695170742127785057252816779665975265046573668215436981965264936334485396609747474889231819298139936828681382106012970390447089732630166809391230729129448283332485047465014866305358465829643525022288234449614943238384799796341185939890803040749085090574530064089674561811421484748548136493262933724949665541034874292997844653697464373002466258754188971296889487401980406626657719264241128170626563849252810948385120721944687109689475135518639019633121024708917606058494410003506699504814887209159047657684287318220830653141810081316493259694096020635956080612280224632739259665439179330062952404940323802046258604274727825968866663043043405615677312401637020462930442484749216030296442940071881230583912607358178291513851037529838232333454447432611125681426096243400936495049002616852651578692297410440233395745996498884906835341805638045493021895633961063063867025297469564060675616112256013722306149561589931779537294184002608853030606016653183633267937072472003479075132898402861408688212598003526187843705188629161367747463721758738492691599129418580092757778442954308608896775722721904888206268704468448753536167574871746037704967486624607502732470067932466219971262117801456781409853809643110474348072057979201612801238177706037114512688586272178268786300267212290238196913020773686493259041305455071813389537541713024283490786802900757074623973377601549005042508995091020024272231754173748389778941112362436500660140751870393999213728240006775302592825042380050777607978438266923261230991641069087287661609396553382427625827775848401570336942523954859486268144926795912037818758673291538530707936462022991752714315221370665204927439251692561720731181690413868645505501193324695080662062526852619511303227326052442948991664743673872833451752933009627040239607772368112213285517166729326588424898844197211161645069400410404463290679850863627867283471002826236267395585162064121261991608969164806981528110016893439739544754009694234310382880460811990140353609543761390103738285707795214600071155533165927911849032114423123728379224311083431195863380474559274685271647967672669897457335316614553516786150870328634836573591054394646871025104636864717039907205046161341762042917354992968289997598942036391562595247411633946158340466298787609817032111996332525679716963242316279156610294616283390598098554094935313865398476840230377637455624480416020262901430253342398875304582528729128215331389527364713739549239374630058745277556724281272707419841471611462461037376473007210463012600664817142935538624253266898428876787400565622000436656897154310746513418563682768772595402141462367191881860521242005287955156557675073960746801343964644992146131165665548545975366544257669650526000639507664305723117657774106561758650451822291883159583147154324350615703260320806298992865832803052698336660152836302259524034085252490325143403230822577927367888327960315108293521377472022395017396557860355223411534042371391163462707273586888771560916245566131625416747599653095019930053477644569760042730066457409372377796763521638186245691780227383336902182353485803318761934896313899647657296907793854127552036704025294105692131826839075402261285591372993407668866651466310422238499459631286336628555757284162277569192445589205518946042986164971757471133355630814960934232788136743722578056945558469466080361420925731844404070796768748773281267463831103409158245729242646247247506224783849021301074504648819306355079518031067299745722947295143776579774259031529712104883783824368770306356874383318430625635229884814058619671045963373850554021431583227151516993010479682163750727871390378777715897303573718124129901708855037301720337529973781989081625972668408587618975750042133988247613346808400485494092893351261793893384251499928407081470280571796110981999097141487761969724321201449082418010731985703140836127313038983535388137405819903789006135201560535224008832258576704453243576343357503935158718171490801101867197271265963136689088188221403342744732808844015263362182998851362711992394949741928235719073867913621750056163727391522927472992280431008681347823870873855273819704677865663342877966602954333013379625346220371365031707224203408228569030641092108885314880164755553908614816409460287881787587672950991141461040137815731855870194475339207242537686281662734578557290006609554080384580593541979417178707456134708525450377506489291426301257294837912173514316523609037820457822999267764388156537480772489681985599528896366423543622068037958781224433032306207868155823642185116375689139799227722083352885678298107078103857582434898699394323624227940812907701431302467760094400582847188382206314610565807988455755589542583395530775846881667164139709012163789749918728418074411576808105895371945398166323789132798322546137228553430692520585167358859159099950617016888155294548133552219839048917254749087829692930295482833991558351853633415145615620069531582061555041215561899325124924731776157851222101060998229214562826699245332520936668280073415455331177126744299971004174733055725278539433408223646913849831256595531662841317338554440656152668863641296987901303719109011136585675394008127551422051728081333396117564880378180534790244273117005734701196607380307871914169274688233950590445174395466354129370715028556998423846969425698650669072044299143462403148572319783860602931217636859011606996091952704431768290262794538205103390843886465955735959954594259960332196920916549231204882245973422297510004225311752953024807784185578307770424806209513952973471783899934566791804835499238998828528016977541696715157924780260407732203526532164576657753186228961664984641743741404692123335250857270526213641223769551460717468156082611851987510654761472729574021221626164121330609143505250821510084245982328375233713293762649221023434595482711203077142256870217125824391358692423404698524117624837123258565268765092830612950901228464736101916899717713757519399180982163527781558473717136524823851914373028409235348103031043747542763183649168512159939241623196491739126770174810233234740040561032694276955436369994397712952964377482621602209483909227689437062038378120666711112146833636874493380983495512950766036801312698457938560155478694723963929466251520612601996869948108952862618385827687141236801588525014484116365613380011375380666094171839686859498070919839946582338062413063323455230111083553007257587618464116972860884714484151133285914767992579045227327563510640129359631069345292341266881862511090848114041318304348649585936189425189102860126416113567644659494021585755075201993662157875166139226522286034364685033239925367365055017758085846229662685050811299615954904186995287072633086650414268738275366135778512392023397068347689522206099935235389454732321407753611362888490701496726674526630170437064833952284192510683080486617973460073017473559616183914702642745034685016323383876417415744407329158583413526574599678574731858047052339349561298179060129136167587920083341321642217531107938829144171838451934707217554526787592997742275914649711510631069291818307410577108458788432624105930229541786819075709679788889517781923423821040041092083558642836608889843679944479204519031794388310225056375487841976947499567920089661769143551695930457342166336455727869609756943394821745404366256260546317507466898490711361554716016552527672594638317738893133584318499289975743509038468822054392904298905150711101828455750771680021750371859879454947488649423573214206030714346079149133657335350283590761655321679022545607579980607858975166827449694823520806419862380938357129231041720907082131092181236480324167438265584104217052777233445976501322222344327146974318187921003128903098681504831058521561704985673693428136338521693285480958754272188304157437275987016222672190661820124907717726874315000548586992415326588269554711876493074645724394956854039869396347009247730834088556986446922745033735700503411124019469401341349730097849770353892734337270638741103288290728349216289217652612394408054724307066192551163419300566508845630910611390106372016666329647202678627621920895745687874802213100640273041010340513454600257151688771619391555846779851682614445909694507419422593364536453268763414526896093827096971291134664877554387690489074804051794726960291181897470680937739110786736760249309198180687867216912495584518514115914156124235945963810760004389078673872572009490699291568335897483608797736737665329550516676926491284235875053036627618002351000696476193477699707608726914832443829634834570278518446958068491826781071502959278471802690206587198588899202929647040060986450283763688522232884098816817744384596890528150903757627644693669903809020809089368107717977596195798301364715248150464207465857884971999221620964130009158615588873112624046197775697644574634390813307030611072430049978435451509040050178653130520711944569147900387288927350706419023829638995937996190804961461051033300858967698705171136649372529311537647893170598524460226590840800736871330643499656835652495894461665264199570462669182872369846683083521466658851445655590280508755100765089128940048674835670537975547373549463110005406650927653965284877014223673302445901383438678651756084671937823202110323364740269475184072071843128912123890480792702984828772183338571467596812133204123417975029581566052510111473603449278849295599655449174734883220990793492875693881743493546930238561651145161718714126882917601806419191772342533602918409435752343085201309346229565923676128411667486618058592248277678634607771398766505476795956902097719122587033078672484541839118777440223400334598567348035558690457145975458948977645723197553781212032513126543787074108991678493958465188586911052137199261249987141264823565351781532273578414106970245352502669795292962217344763205310054983785073974430785777786050751517552921653806630082027267823440975410831408656233772095162617191001988170047915349678278397499446688879907836078392675405790835746171477519207706992929676586209549667794744104746470659491422377627505435448563313902628394196041197821157682822616783396290575711456438688544630391692218909156672457583783683229188253976996604844132995040349209451720472086351924506799332009687562541954661176773047833350079046990546445400799108097277143973556788378966665297763662598912850187391815997297504852763631476307781784569911720683800926151717073370851354316814300220008091187071596232226333299571565448448307475919070235558424439349598406242787636603263940412568342735712446476356631879420613775363160243633351441040276755634129151774036913081704261531280921107967865121787109018095120082719607742229245034074612120045516839505928974047377050973956813370307912183753762216743208678879163491550044376300884252711545399482623060814060833306212903828389484008765462651504264311321685586693097561594915161826424134610876164314639931340715625382319983731481063750951244112107781999949734685678577961641882062460939340024743855912666228878543290065382964796423621470840351467708795811766367333296696251250015045859848960477579561012373299103883155419342845023914947374691893490907064883723416193850832745633831198672376339373260003813480235452179920448302440301293367244477708108607400790192257674750511134764910430527837850743127883139547825106750681861364018527766934930946400865163446888612908990596399908949683604594098748881188051286247545022372502792658437626410939101106157277133060982059199982587486689799772174185413129038127504691039765039546819661080638161155938539740924013392564327939169178605425885533585006689827025593660396661307513294545396327861208638204707690325517638571418456501073549932230745956111908638635449589763865256150938485958586795670502850441527260760390722332628830290229503455491121507536169616164026276182619072719188413521962516824288683919834755186412166479273765959052150923041738179884938470170110834199005060734634644482675693668776101712079844213192272175156705321470289467796216850496803512581684699961284478475500318756964093133434289676138656457424748535546380610984865592838609203413529517644595930113558925488655094445568102238562602188431230253492152687089319045310961444062677513396996280443725906379783053978067999845747656077362954658714553654147417714981773879793663053407608009585405546178686875082292064917301577489348106814625824603533982628645115512783640087703693706678746261878754763252384571794725515483356242066273064975376078672018470518033242800855657928968975457601163946510114087383840085435833764907962228126952696862912523644903093047852798805443112009827466045042903823118359195441242428599093232234183635733373059924126305120013667127727935893135683032927200972582723401420950304596353153574598243775033610915907295316035558133114696822684895526644713902550179857206463366314383037877957733692660994255888624175623838971222726780794158058421970060578366027836406404286994871518284105904232551795034472525081031174859812487402345289562948389705803174829607724853524639705820960094538234853671500503773931877381880257431592469987405695758897389272893102997395997941515974458961523393276560191473588692417161655070722532759348157021541280649401313148992143079714458200797578165335668968684858848098791515490953564622183243465576416679740196299193186129282279353931195656432086991008827918230497960709987893150582921994076385582300752168193179005217596625293822760449407139542361026474293305190058671341498474871034328788075094250494275603681590515332467064574518054926705232008902960726213403254897083183971522371202263529666214446167534314084500052133310271582037352260740980970623455476351100006133351561559636593363866918070404605516532114536650892099764613334850990640627584615319236952105637290041119115290421427875407637466002934575081111334808170544866157610691900347066652752085318791763784077628411726601540370800027037619504324654351351586471630275779752609989342738231470349577870794146509813883254113033351945192504511886862839065941129686332746616266105512935761805241868311790801609011824006606330447416145726377458910511731924291794451369914355021088030697416723428172445546201067100784145194595212582786503710297716588317267464761191994912897473432724818769725322988345284496357157919352915857562541348477398691434486298928041130240983741960047275142580641484505533077577081287179526293365067057877410007567777592765714353633534576861179679113819979862054596749032201466465544633460530986096777265108972714303625887702549522868276186943473291022877405057445057480751494572113326193142020918061768056949200737778907195196134652296020578369276046169293228199251887917726237350308884859979895426947514178869061084859093133673712543193868615294539733962328027116142720552105817919491866243751804610311833359593617081930297237359800494092690523577094248528697318138662384999992189115459074830458419628091769880372495300196764516573283612643486007883216103649115847239266680706010458691904702176594899283906822783203641281786259386139213518130018720552341419054245019121287870607165124468953431235084782104873073294836913422646553322287918565036219414019249734853493784961772332795592221942810599972503979241342064576782403514227065968287437746551181935058965941637281590782349989263144430004303053130682311502197136173805721590499191349451760023979114708601761099053850197245333739324639338424969761924630251972164087003955272470688821776148933109331619318030538290971992554948841411098354462912400240894991677692859953515043915230288906173538242235412404430523299131232824959017578679678233567958526089093852385527651497141192445955560155313210504080945580975058975851729973574723088709353226475758345329471972077421630653575534477131371750655112718481437909282101249543350068279932393172344998846117197248361453252728300212109617422287466884658035436632298096504416107409875277484313503088866265703110401040646820433567872946000891135564959191168396009829281280655102290338327615049079584025961960219631504436473986621048801872171616346420700981372426159310600614337472073739369966350303545604431160578863131221189520871955825436152144562986648701917220687105990461266407317495100840572985813577016991075371342353567659324462846188443357642513464824732702777404921633165880216559752901829299141602660397567492322862985092040698789652635974485301908164597913389677158393351761578591132329969832976012372743384762224237203774697626802815265243268054735484312945615405769298400823921901244091342615838125919978465174266269655156527578842253290697999622411752436742573056930665107767320119991936927776884244133265663886151354674627700330244126672644389605535907814529564668712173459219748842826142057813864965348010348684471532198485851875966697067294683541626629757698525662459421247903035965198268149137720220242816562849822591983171136794671936903220596956641480858433786327943864733935616151800587388230404758551350074782622421996445115842036867035897759762181552420681049999829230013489199115117506600864808912543529049797403506738962314074557447008761004212648742785564834053604650939901545966826843622114102359016973653958087249858327005218253071658464197047543275409152495234422446093589201583841519392858778084374969665014571211994516121597640530320752936877207060637686761994686315502486867545271086867104728138799446383148141613315062873163243119070976208704339984635991139586310650832690236958430368202608048415806952965726882531763229056245248015737613585706645230210669430494469649544755959519556238901142228072695790497641917684842010678986619720746604554386037621587190934404685879208137053928427843791537176327313592426040843164648710052956089089940930984947844535511985999247007663062694046557215558597478940520294945675863083295502933531558441650373941537185697184763462338727906051513304104402618446162911984740273242464288466781829638550307778609552755403439868631864610523416086226914428014475308301435629987316153580924534673928500284433895118589596528063496799099199146514592363145116463585143740768438000165995691583653569292904921188222933035234081932441033629514218482981667986445218747708336443361808204551955534787330698340483421626284404347262372481952485548542192247352635030021142779761261086753605732317150847525550127222703393918739742151268738906959778507414669752057605713723895769481107292561289176863973998266655218190888849454922774586050509000914194752521128352723166904580032220562516594305358682141845479040111883627359928972571984166394831990828601125219814924753433974394730821586061101989803913830740876182548450655269010029346791956882021769460533904332392433645646094909492720330655332044500005035023701878954155850271063078697087172825524636047077071502494664948478552455507359297784901882708059156583617677438728407511350391260942213415868848746893681798513024301464772202850640527922188126452682802425245867769033938930098412849999818605067324238316083738158326860523633984629352858124619126636611453016519850948604602116526329812145926254129680748978439740223452073680308502453667972386293310944558734185694061643803623222701158122808616007779777325185205863547374413463830098464518156474155270274049249695573850081689595497221048998015412323502936495209170948156853667960488095761482312214949605228228249866239672616514780399346468208878961186367357164799734448281071244748298347190506002448162563533360627294978712830716398843812786752731841272472356297079788732502248888546790122218215046215169301394144921836886753577118958619635546371940217456057623135589621483658055551322637908000594233287703815877861054599381566381884880641958798213897344770349482172735338435091127108758768098962134199909991861232951909563094585776343129709275734361430365784048969866050226856117785234635789165322476305975691782785309076150527266590210405479062957707320220987100151572770839141084186518644838784106192131215320814511620550581139190107174181172078688227741785977465981070820632521905032511910866235504499088279814878292181147055576320084420863350807460988897369215015000030018088254443551105013313322328420179142520922182537993287272461688794938142640407512063438974828799486033006298547522027042500305315590520747410521244273363279995330365523908788572523543815208840056707967404270167288303160444965774389094262975790622866826027981428672971972825459371953185583033018156950103093766410945891177245534273830058855883967418548717843681805345817949892611969621736823753103663619282848210676417676417290343555790455499214677471079998310840464285632385003632149774430922426898552506400397837210668157528347955147144865546190980438795841024789725288719804559728287409791584823880124876750311977616202283549816306812861091277843722333289235871235438428176382019391285648231276292831874064451785617347607230518825771615479796891646790662285014818798632467142469338205561482477080774818873713624007714906678370277334525310906403384317577303553397646700601111058206763698578193694808560840093013514811112858528410546783768119634037821474975523525333174262832181215982284168965458465487364090913887302980937254982694339270095011993434538985336150871543702033185633026221306058723063802814015304496242301732234870307737289882324472747832516041133075131124808634466016240371714415637671192809924170100343062906541643221251696895045271126708687250323647463812431684517585920896640336069768945896652296399873502777463079100480790742976858117894954324714791610363359587851516565928990031557782602541028623075212816695443393734323100303637950518072582418515483565594849731187289304539159324831449281568227527996183305919913405834667520819202846674545526709087894537587635610535415909689525782793551347571942760237170181497377276802285304804671478547080310301587493602656170781035033611527636220215586150694794531688207301910273122301541724932917871627232322476575855431187627982827988301359109750989117751863570821116815896905820886664575311785222879651942373653380241044794426318011490562490826329709856968871490562274385341448817219792645950327599001582408992010565780593750570708804824481942746964098656740547139479206047206191949383962132280920856553238932311541776096320924491487713077587371927724760892971840350216182136290409675147514136596982013388482866836074262636057798287232839747664297242415539747530895669921261392505330109543631157257833144272376071988674887693980003696113598738111830193399070419018381967981842091049479031973828980049054875299194034180306625897801611479163294635359456485705014689579298354951619671682230483666333583547628396857278830606204630235017920812139154440614032316542822615042185772877428407176994092455770023354435287380518823552674236747966237173044511202949676335561616983722342142746410662634470415007758691574373668189964481299219646246605605475065029547959106783941211133037657443708516840068309007103681496708632861852854535924903097605865898288851177655059554718600777898728578218932666031794839115525731149844871551792158900334269626893706659669823204855460490116112573560887898513877762386729721134047529033501944749416361746458865655430664710714658016297976270629959588665311319896086851301701981224259762408639090279774200231557687546362729808011016052913053008720338159657827889858822661951140676910732068317729851468996273146656711161898123304998842896321592839933239120027998441110549205196504539720425228067045053413852108259322260989162621198612344372989886773718649406818257261312672993374099917509683174159560889020026168743236843141801053961768463527820083945900179820955909298586125364502246155077381297499625006163651062095610025448214585845351198375313901818058520616311532441905439616263412404397108450943606320653972143044100521883422148553279219104123581527383783815072763715776797978045071282371550804513827189367871509589864499368634178410590709301411407084822924356112338203946327062780366276656851455338449295266541300310658629028670779516822793674325768052564045258047575358501176738100473616886978194052883748604519476026478293868003187454728666984736214056935536134626769421862760088216792330633703856726679347623604585074414596893199282801376954054773117989487709830062439960311016182254571068149843785529968850610024980239111922353231686116697325085734076361400066457415823161713776757457113262182823019812807163201031509686695901369638804561365675173962001450166923887274409081671232995421816342777427525130076802191207087811139967173285846484705856754004591666245214795662236568087811961003614020474838253630999710795751474272266336183781755271402842665013870185832969464699702649178577816190346246172242671754090106031878756590608877309334847722145118603470278480480635984340816357261321100509912546790773573102800912060353900234343673737404904802750361331566682289015991391603714917152048354451502827996136339642310704590575411740834861089234664456085268185352400945142376158549903598367264454858960257588713815118329905313515629612503703611758797206415064875901913701557813210485665726574112223905883047909856353147537470384242845265299358984041437698950415231699123676637445613647986370110364519313177145689109141591861846133469574739635986715221795688541794697622183190219979169666019032519569189171019050648150225460216800514780458831594458687470590978296817125040953917042764901058836339817232150613348814377324143020364232573921773170486450834392460888094505770477132810833115679722046296850186873267469567407024111856353965247212152201326085202929537116892138677485567365165838888597724424470287065017328629298132833476116057160328157316480870857514573902264985698030311651727357027825971468791687703761226910691613781340565143830279246235700545280953101654103071941634555614411835980462862109204264325363827585543087649553507434739795902842593236947689131939069985269874777503225867326782020243401519074673717100354508607064886704825119170223477062685681721733742114740837989080507771721972486615477880061087430392839796956426522374860996444466539272800145453279602032458665793258803616386972286838296425081236229286676941602688121062849973402629089618852916938234343978443109092751726566942059391423382525149185160794977294932453398607097150101874304884315341951226333047633752158877310447475182488681986040531084904482309833150559059628076605175468129810496073209308284543540472453752607801197798451618477438222166647257756831121266249529950727241278003917590118890046194257830986776943129941450158894524179660619357819228963063327915002698397731508908061882064722959811586283810276030332595725179720059214477827424331630956564891099927577574367441704685902495090639710996494563096013093594398767576042320814545755514960205481445642446622741514698030461449468474131110299399736770823925299678730231757138290442033468443890740689191151585153029633780045938216770845482360214839724186397227883980943677646898210621569447882916025676123121834429311446275027289831424033138362735171030549357883537483198158005424944894381171193402256073636492090472667963749671005161412239265187077330564311214898771174701767504648851329716107457944313810013427923818208073906322221384097326206480154353697299211156875786835115531469440169505942359237793367183974824680300560197991735847692225921814641230367646100759874206123596565370289127691922791306023398190330013644559526048148153168238567985070789545360493933148593219268726341265571007528797102675927422332174235871490908320441066252207423129366934318304439470984639337450186475080901131861296879689322873382760139866080732455193405776112940767792173597653152448737677453871052077131919158967661761276386091470059690210622142016434536618721242758817060368008728860133754008987339398618357924927960661020704301869160011263126077921160243638982604152356313645825179413942771532465424320072425384039802755926035781826704117256221353567186118720982452045061978974443669185170595311709373626788061258916998447100706350042153590154449009587642752672366226473924123719933405834819881692016215588423393460542099994098354881882011124830619524443551068009327653198147921183652584366839490064864440100252594362609034358998374025124504002672219307272631944000293899260040541090819440139525306116911506859930711049937423350983665557777847796105295037502981374539510563932461218264653381744503304824192884191623088729154318581687342482500660171861263236747259684313336503597987736831656231703504652317252842985320844947395608269921760909410032916431732306151072579954977947201593621972734898363586772033540470699158624880693518712061736018594740697870613426263492852277512312676900407843331170035412878763589531500093828744942354279229231134622599018768910684805567503555788974023111298491365929099877769287081429239697545467771210505043632286009401827476722451940929202838660000144527405706764519022406077150573981735663709921647251905531730448163820050545498556968959116281221818503075577421048814604841317789019799779628770006345282595317290746233064943706679671027653019719192551198198898041802645526559563559785989593362440741986358602091031441156172466322483993597280811348518610990206810527047659653214866686002154864066295395560349762237994551655574478738899726700435745956451588577351537241038596462347407332722614938124851184657450474922111583096787612794299808865473532030094647333658469792540234337830999245752485861524093898042914954251719541809766573123316964706155693071444412257416428462209150617750071218830222396213989893312308400424291218214703004275969641422872375908123247357954282304368461467158185048961299067416150527268032302117336006665707183554101009741381553815400685693959476492679018747663691962272857949959722269705427275185198656473312215594664456984635732367495543684352739672157543267832752211895379471507468266831775317473486240820808465484508219154530604173537123780569149300067510657393625243097404205107651567625703248237447888773478470738334269657908776913610185714199254968069692950173270027675578214366066315516992343132151694647315237370193819032487575547696406634425920077693031736041994812641106992003436074594028593631513922443337109032263358211385287700067325703989777898892533626837251094882856556117565603913763367181074451146817467067437319721673751988858798016599285103344376092154095423534176529414321310432061967076273509177951885162237919042222718654358253209345119345241956878815636130522447895209528636683118306365256687491163573248067891345276132725822594213069701754540318291873681396813864506366571950470815198661246942021033142161931985951636638591113498072071798636307186215683082355378545055429457665259900409554564005320668188148704791420615325401333042617675566910825331525458415598234135052114305174999642658565991151414860324603944287389136873757379895434094304454696578345870955283363430201341528643244838459901702725185176084505535879504194636664973523557291676230682399950266683148327331357663245040049804655012640852996516880256888955900405854222489402028862669159380580780355414707499886587470904068312432660946924680644722299720386351019691673783643363736045009762887788558981385934091625635510016899105057442720050901213872839867427688031940490783806532506690424654248351948551087734118156011372211018480938960319691611262666269364436484432167882393194880798882149237908161778373496591963897469973001830448035252821748628120762583885977345945712008907525562275542175492844816203164530373368895445302704742118323695451892054917260660379568667564339989419484232997477920270791849213521917210790661838857665826902798166221706445631001581736867084463090658237566098266084073767526983605700351401341845033994371438126592389382061403493774629118740266520522514295753065732913417154426441553768448428301409388066257193799208485767940535754707843760835480606123588853505184612352719713004376472118093632924843407746964206685001919724387925941190881353794932928045487175562291686116793302933703805897278953663089814210093164208917555809419856400691118604223450983394512157760110697662299071275780390943245973579887864793876556891701184762306159250784504789287087699595455619791855269423384724681126527507701214308579035115918171743365046820755923582891351351932993675261043344795680068221682615451926120836512603203143744304283269184142202087548359545833863812915852863328853727133837800759634367237112644672397256291132365570566045842800716938613032833588959944097079033177816171807032997138231595114121108767140424057525453074694487028027280710811725918464196693095474764395759289028398862498910183944037491608158256013509625420501769113659065247350985285740840514806301174285155386544511166477225115579326921517657710840881559051957527713546928237488064273581349100838625135857613220233783966891285334940558963637670583271717929931569633426886526152404078015296569505051330806811810178178988052699651094491608851484884415378789211721884148595995248519248333559510866338433993961463153977634672463776459014080794866319131498536695971843264791337448586639284235178954344843855275942418085663776127106525218462891814937846627907517537953331760520382387337808620439189846954940476327732275989225596283152703837876735287317378354163152076991583720600507207720569028970711156960764759622388623575760061350130855295564675291537122680172666918789037874348680799707485639136042944399279644187824096217034245732610231176462062982556979277232671242794808611415316711641468136157131801972653612859103551702743753352272110779284215151292261239841262278831992211410990806084977350455016514091724667062287546319886472232495500961443217054757418233948251582451412935682998924700568068207970610660725504667041616541138921582336228580104899881064180585558578111809190383846620786448793566093365010303855619623053107670761023357649397136950090497104072156124807975365984532578517878478460120234165105028221891381434949142892544387650978869372493615388659495964634556076643653070443375398529642566864584841602920077144000582215980929280380947007806892011190135963202061069762050137396035530001654297534125635575984187136831237782901476262804014463445096283628789774027776718095129948401250024585906440444029880799848905436626093742443832980248957127672330151458834383068508371881840099012986090949238232255213869314422222114589595369533545280402060113521955279056136252787151970606146156449993088380636703198517361465428634338919609848854863961208104389143099517234139586579618593901612767756255013741074380052486497418552412519631238828445149071157775235433791782217888362985476683649257572899842708367981707473769972405784862101950658708357836659844591827808336087774911263517765983441631438922382556394840680369697979753962241707103742288076149340666252395896945886194876837028308139111873628733419445931417020735231732555985576341078277479445786241427153773582628940280515734165439554784971403326035261312057409847650168578102690058135439156024187777947442336444448022489194670117880545221134086500299041971118784898977006503937172137402580211581321805963272136599213836699157663220975105583696111483942893179578493487101890808281254068701190887466519243055691311769858198244814330387553386413898759366648388615038507479760325659773585920576185567493723685854270937692621877535703615191257311723467580288842226149549208662723895405486772109979184807577737186820691120374653080767117614353814854071060544668363569033394254385819733917925937873693835564128374741278707077263270257561229108044771243056886634476708367172366276423552462268101006994132630274549746949332984312632426752098984362393992116067684579793074398970261440319077862177734929485021792487967740350659319471023588244551244297521458971827875302155686280709632530398569493290885165669882785915124678274090841127192810394301311012548088195758655070817427081951322546193101798463888724629281056476902281305347099121143258854117556112807231311238003394857091319957873495774618719836404439320722026448530065863307944380432467137308929102642647523496847943180968984863011463456676313612521724157923027128083424840427154142815617581431671167758739226787734693919385961229477938721758579487311195268976579067926875023400616759409586222387432454308367744119555732936085828662713756104033926561398283718982286830799739827421516731613661614284151760337698787010633749041686488546847370677862098974291848354193706420129816170237366300027581068830426989415670939887810215151553328958479251126604297382319889246927263671960011355701873189915502549049384835790541285425758936859933972004317857462064791752417175274785443801849922230995113968023578930064580210128043347510839208602120895270231608591730306333106920956494517489347719983357882771774535024361480350985644113104559006097353363123992907562116906503510610072408686418739388841603949779707401398795643276553796648006033662232262409695965778465000171664086184752931385544746340858679577452934687174757783608292330338760760194891725205354247916209988263787267770927334166849969056862745196354119253268096856439598675271868908830171172072218059139117660699548953390296742250387771643798388339326585541446315059519827992461525928199018296940292823239813469377707818359258269055468742200499289822672450986374079816250316044830105544522261687169560077109427858014489450545426373097820442107294695365699260729033218511733996170277592891881864597863104170942646833962304182184195950243951122855229463811777641624371877254997393853993162730708357724737707810413689711116592368273451264929395703398950503549440881567658524005284440687509803969602043936288344879585893234874156774017456839502283022887715470008365914522177697369618595284849135113234699085828736582716706204954842365058414424401212169667743910772498522732542763277749452995674186974186343559720275968071841070871194624653685970554042123667261600555199214395857604708054827667001990463930127447316130209148624129067674774745850819040437054674443364133974750572123950938031964387742439593057279474869623520531133730833549235652153874389944719359800542832476668485005438912633943962993790678933706965786486449084181935777612456811768204960751852239007659010050366182833441865877480249589481541857130432336030041851218475786009571179176136894269249973262069475727263927306404029640717081186498844448966469098879475782355586643175344360479559296551929347395874265464770535500763260148180161591720493315387697719256200837056621807064771885157914026652008521813965087616100601622119769931989945294640132922618359939135049169243247832383447713533259082363745685819328916257219789502079117506409492141598863753475057143504287643038858320765479488652999398513228497545391709337369364774279002008259287983315103322330086372872380594012288003858287753623279665820486144947426662317046842193374133473940923502017558559845760707180026391178366199992616344808935652030543398099973646072873953242200589169276240993934206905308498109709452826722028317486899897764209203810768409766882217726333810847931399605642634432045456703261690859641274474047476296186771527638561910246777909971493300170178717343414072595242830756985809961408647131093410030714899415204739040662321473127788572399426854761492313105114352915571942620929491790341344739983178908668831644115220289739947435892815913467089678797927152303995314503401470112512355011887537626123033204479544912734231770160846579231637562102195690921475333236840052454912081795577183102133852967342777316295636431276837288228267496987536868003841118185517988598031343475989122469138994660514209752724791102906665600016829369737815139360386708875793910198382417352732197332347239714771116720652384524687729174582627875637888031873351421528552159224900448484883939693480209558132857698611907434180340725507334804429788706422514559302552635440055924741436708017028818460464008002697802269346822391670340177223236683323019173829735578618749664811688520730729384422618169008446756565488224137919542223115888008975465660905754611706558431713808284846960164637895745221294303585390490707010777824045166801020801604535706663061703306729494914579400090207375074114800835661088169657646028805839292967691122075670162572151329855352749335181653893185860682732498664364811157829282219529088738190667984720682818700233211778158320325074379035203832377160007294903828674464990472556387727608962149158167970497432000975906054143927813602849308262087025223059446784173434340488242461186582799368373243764647148538671839147523458320545776928019423153964405316725994529476964736163835559363497494724257528223660247232537862633611101416720339686292610871277151154320374508978687161902307726196768450867614927445442667460993151779640746169512271859865797082231646010471041523368490860586561344461571806004397788173338186198601283018870136204481955415102764717345606286403712175024315939365849886085176789873727146525673358241569289662173481007722748819709167431122139036409572928584372129309766975952454168524841253510805789841963943086273027613226963677720182840042279766937451677308378829319100668878932024036926227491314545863376485196928951061851489807821233222667080943736232116088971558814270690244412278250123805691838865360596160904386488370038916129095424481289395575792088975525033476515521525020492454878637462305474740685098069543611667270332854151391319732968514772244055593140501158235804997817757025318994483878016654458346875950457106153579305288392330907818685316630703250017432220093697606478527095133419515816631869473129572627932795547168714988316225427040120081173661795528260772359066415878162996290211003729200176783169186471566253054987815574501971334589147079868746387652561217453367966632993325768427644853463354737171733839327326784066285474426188417512912782221135997755634364338766168741704372183528476101814092566534090092396031151057055411213834037357430480655492526496522105869331079457899117069434115671850127747665023606819929327002478687278485244094896264020302715787531666478489792338767363001778978675094683420098082709832172268106604185885483866515361771842133074755205916405828662352085252749924375290558043530852640829777714971576146160429807238887420767143347377041721235406924563623807614271910169416197425683909953719130447902155016296608464404446267695160825923209299087473442442136123932868707918569849639311393956735790539508957478143030970796043245956639924641391136664177444028552965283194441954893242757646940336637529003029363056368173687836350251038694664894336716335228158989362709849615839712847661254789827908329271561592006843037975147289223901296268278638039263490873807880016577985862164852941864648659740279130445727558513591730968212109592029817078183253115193165974034933155417124497593660151290087661079916209457223174845656051562426469932880050262451267134959353617099934497476259531501360426596253691426850738866543865458105117704651348189160786679281405934165581029878680205326711014817245765110517422799799492778350095308013408523770600210878679428616659016076402231776871173749250763284444388786763244473177186826917659490424312937216650884975640386345787813223963376150560326052976514535328074956282992407739745007564709573848919939853507234983226036091233788524187815838347020993740303767764728881230630745384652393061713487584064447950137316033165170400988685083752549156799990705817530029572310088382767163225515011999086324432031044617023770989273711247710143135334544139543085662856740612884526212488078154398635602919805917676795072442797283504277457852100240790132716470438747730311147006453372411194311381972571683313047080220253935712197739710398747518634192355438873311410846154228287946275753673232416280672314787029282750821528857032350225145468206590808011743879023030730921060591398822135960749824071958135618695158066706659137386618747091541996688754785549353446518722932911791254547445915376057749705704221115347082268071110689400323963455942245416450851083612552311507765342545474565928119276241128244303340491411028148558667831448332038318318583595638977463907661006820285130333189030948429541045098051378638574677241224934077113023005731373834860651644490324816388387776245867849245954920911225415625813862213467685012966337146537999600524935859420960436274813900542923052560560491809172513902036139349392189484746386505354197042742460318038106816389317045504578786058984085750212799258284805338423126377082456128367449262170523125329283273384014809917113919540371326445592531122860949148281723459548288714708047692713581687867117872986309331228389452588307133541032030752108709138415056199787896231645228677238693646613244299522981567904342705707051533231282242386054996659547260548959588087032675721925379659807674640873717085320895283809853660533962530019956172569932802959707173435055886426845525729104530228698792559812928762963024655162528241962661908489057282726087024558311788136592323945561412350277255677011213625981126541036611593660228629643119302296802784541796276470476276909343891197529671769152241040165207142403557406116165205994960053491222912181683534386648747307369165380544488624133626013817266011151926090143440114997812084558075091174372905410596724592860403818950363662436419944792382641221450876302649271148134538546262679765955302977243157273636223790146882870613444382096672113089793980795347402310850929442650827620775484843721051724465546865064865864717305856352355118131473505575994764047063475910508607745933600511043485143977376835684077380202842079464848890910333228622115623767722656290753692445862250302175182216813663440829036529865845717629578992969299344830121947070496795044173441098240428720276754454400568387288901569909949328516723723131576177301801392004717975787805796151706266660456369453808824461624933147549194495729243492307729868159437062276671268618229805597904175280090442604617609718107332605078411625626446264515408910081874128541779687891098623316372761045915140626507531888536465078771363678563451032481916525739811211550083677224102932423861050166296331204007867834313159908330354920530439940887982912591796798785379209709879702525773989188455796756106170569824378240395477629207723249519642338209566673137553056576872533252267056868142064841307477888937296673818847352529127098835317628787376165706540463170404875651689558548338419187070850053850867002384941630403807995473139315438632609969548356025355492018518567481251598550679464284245330912129069759130150850586881502389885046170828847433081783991648397377009549580997207484600135974483903502929743288718647816798143629957672649564284341717369597826491611553819827210583465949111302779594697073515487032735718081023956231563381217323062243070963539131341109618928886773624703512326567020320815976724731964430303263159845248506982706424871469133443272071033088104357812977715552680471394736061773096499917338174739793600602152998688610150499681333839822336594449265549650156088851492718022809898781670751460118121578101137223169688080903392670965624001640034264588450945676830256575013195645860114235983092467658112311271989571321234792593365200328765495169067669858149093590267220480227611575796151915523312895199790444735548416185014198028851197355906544203363913521162357709235766286318046666601952699075392965681588578944963050612065571778618775300166113398063221238382242493835037927629701293279469608336580846814990180533633583943822748337398466692712993340998461950438885877327728671443628490821379072310151193192213129867167916699633331189655407928748677070719564698261477392051291675892902429175235113989588479831786102486870920627610444058169382002062291398390696489371698777236630416105270177165712134516861962899180218781726384862615490788264043647268914847757284995819458847966026918685863702049635103562966797515435008694063756994338178120567428227561503842376141468362682770515941672164107088000623458961845217326935646661436180303709875946224039822539829119622654921783769948794038176334488184047426008911976735121619971389375697758761854470059566285402351798267358236907760227788809157119569314464124865589450716370316052321121300604382302822033393313785986525587914256496920546924044083913600347353553224379013839442117709227760982525996114317276526970998781891514505846101048463807266441405257481304460564982559682493531594056607450039971770466561459641210864439461422614551221026161436341560854468406297383722109101928949239599823837395518807232969207527562963818450370608695360431466196198325343536155626732914911165560973484939102627255114637354936492670947652699836773560310654091284897400683926191009103261389495252020452079479530770784044809331051286898648340152765644469974798934448440023780512342217642942687483531135235745765060612591615939851570746629377126789247704372464046516657015993970870521031779654829150878968259944563947172641534700798522463980706507210304313444067132361875370518165035324440273416902850639258011595682987371566164276639831427978017032181296022025610941248151072209828552587859525222570835159935959355432056665467949188657628126511829762001608319590822139064638341902255433190081334572301414826434996669966540829830229641223871608684820769026580242559937692984191804515883157729545432164633403830076936894433232727840360845908454467159752300062688258631698698291449306218316551061161461893162089055266221845723719239342983283105877015283108274787779215300527249282290879337669613326440834223438225726663903845508603565811858316024126813521861161204134353778398593594495295607340631897783077667381936083407221108473610910857002316346779808045727068507093442330661368230177258991789519169447251017978537619835581629800284286537377417615182475732850879572709186791104315759647843359258902366094545676517183191547037267557357952703759600077363973575842730630633401594668522320205831105316399635626630618685289909632358948371591310264617111291845059980495990938461211562303937905849304669878031342850701161421067225491537387286821793205449551485895195695368423708602301575118369954224048051544877719194877146171778751122225110920758458523632321950103596599973578596947578527932854530813219739143505188020567283543799876550243955385226761407408517207251219053784853074631850007381044310734138328399962277038782472168241396128397734834251515842588413443760385198072181836999413603451160812729875352813327825721220948838176490179098379842536657982797848622207482394346900786075940131548109686481836409825035943166865032175418228005172291194139096073874689568973594398369934535268390918070183523824698826725165067841701387176588444805369423885303268426140424985412398296850362465359725315142983045260197707158946056881072128119350101353977513123811161676490702842311950455083491128316517314372075025585498960973705790667435280186833621453635976489019913337369638970711066817485764071141033565724427641602208194195380105700113323582790376300442422877116326501164412070630001081722511467795061437478700366987598328480219895184722825305000068924110370793167865046252104226560827696155183374568016219145758011047105734017534994463695827683797324254923717396397531071236943780880168620998674033638573902338505010141013100855766106439068859738147067611559055591916868405230994124271347805351641211193997615294016457293665617832311765331856785322256435623952412573791494082327414890997278124979899360861465966514002529853435333413418976033635411410512441193434262976516391042359827891423777440875569872382807156103932595992508649446868778141472919162697955573074123139370068515445765574548662890821860874533400619907328595916732414627141684637401380056912436810713158947957841202235014160572374961075535743029196795173870022420440091991309836898738515085058441536754820015050826815256843203905385211018714922815325414588441730801215960798838056698357036786283044349221582160551144358820847724756255406857166406063750519550544526423680628302173304694955729207027411086447763107809563189666925251201743505236175810145927994071142076384103327652336189593442218133520814454311402071079091434867351900045087087113070906561815660170522670217495472964318397002040459373391749666226624071658625867084646642669891533071033410747672719642342732988561805944357784029186601029424373594562587515686018900197391167982368915015485534281548912903679612406072020198893827460055392305415714673007547799476897485102134403745762661782084464643753515782082499229001683125404548604806834977976143050050397220438790701467065710744745920445683621302622888317131258630969178740188762875318095290391507882332117861500746388646308198042685375810038080401894695323792401888880272421547510000750241496236379602299337443888099263109083673318246237390617098111026919073001377750314549833985756308493417713166358543824555373064929127964422571954865325808731373599471688087026842899342156440614303328175978421244592401367149113654515562114543451720208415794045985944952154683581023416825180088611255283899382781145660091929894378696278883758664495484852781398077689908247273299022449179265630607576103410456114982255596547277070964257973357099563962701524472033104017050798373311634060728716124884627403392304703682589615688627487807795936803258584675753853345758477524328735325866748290152754356267709180734448024450434286761601265239830252211902561855326844507928751314423646878807441048273446279332163776555031146146734344656978203306023486728873202131613195115802735991615401532550339022004197676660711320328731375120407974153113714514245328017608815034473663897753350902388836189052296297534735065649098055817234741056004288663172379448436544249248087364660753880097596245669547936411353987739509562578016149521290280653600954806664716659915959175182089629528462702911581789345442946217871397254115042093806267674105404503753901000554469453381738447631417729197802190061093373896924894234887140956723273505851073934764789896132473910846272371928467940759187054268563521630138910460899851691538702662301110949788623417840790602738056887646069919954476591234778228777426428616126688585099409397352113065444124103842354694885532472852907087107458379268163635624870663304931477109999012229163945868788264471944914806237951515207115060990170996926291742373025179975512976436170255075956883032884311506969904387971740335370771598348771372257782950101953616928575464372864118846631723043928885663544219417915280090360424687343917398229148906519898153642887576679250336060410812573676340293500892690491205435232392623537460988601958175705203623018926797982388299002704205250657648838702622846128359063268586735975087938480169342590497944228261171143491913401355051852338038712777915866288819776498395114212456863721048847682932303484159987024545480922480240501503822333038802236336955771666101314217429835401514194843101524931913890916274386112342801914633558186794452686151386042458974154472548925867017676497678947609144001002239542335117279347374317921554569097188304061957370191969498789685516521092604523319745891959628334797533463489226234643835366631280099461446262168696477857726156774585065823462552566124384336636411704351102987995222657798477887826165542583099207604687735705299058338735224029156325524536368833084625482431789115123438843052113364315695883272928400579025679568340699077036928692811249046223413787574931131797101763432955692832548790773342769541607090399668369016864525063894665674579467948518148331203954329188786119472400156305613822957121915665628535974928546899897823518116453336033207263631837505038737507258573899668637047718745062003876024588936980545263086547481353273961517881346230750773205441557538539583968259841620984251004947906996002562928378657542129108225703139097153553836013172968754113945556612997696085810232717854653418558623053230617970445111386635769526099623220352499511327424284200588323279160992204398144145962545984851611831844171915786770634859000568264846401829487672966085415288238416453560285729138798563795603618585017170372286395295561963971038896991894900511681149082106450449844406741761117702741520574814326448254798591808740526562373294425403840570436124229321292498526367196346426484271490447631266068417355624776069824104499619322608176950987277770442750723716380432317726498175826646939877558447081285750400778326843837667249866740078082072050113797307502878762788030209063565569336069922619530864092948595894016101827940439737328752254076753130564267657491567541473714644034531087559081952155487818014182535077635737988146082630059267850596681876750429124916627175792337424010941906974690249659403384401565772219872234464367815259105486165631047046785501643994578729750310422262118282743695207080293261616482000901492845275922789187351031880039965075290483086347743310549648174720676499106185720467411067302362563418150707416811427510578411920390484490581303043645893679761443710612588972456889053439591578743425339385599951002700905336667725840776241166090678044951314156297205968467539995839883219373630674770785640570418817393416625880027019426974739201621107393219618524395555242374971144376458546950602813461777077649779827952793379227165806809842785866110304821740422504824471436113154463475941141640420356674086558336643766105800295979892038285252279050960122156693505693902406777065441027178353677854529974755614675682065791810478002740430429068605008521102960042828545739118039486138601700796224421648626173106545874870840482808788999434938923511830215045463581987729755138144289239950606522802706153499851881600791399704088138731622812013132940080009560167022176240581593569519023751447780860862017395747604664140417725663472017050943732075729309815100955662024718484026677350920785923208941236316565025287415379939708822852998559389952619397243749304455041449818918226583597532531969738387271849421268462644243254430018092716380396093562731377178786174573699287453493959263460627976508030366798702120472798822389750950390785192788811337627725727265108499505144492102526467902279107476682119083755570423330184979925110869736097223358569213159415720258318363923280597396283686179122799846833611571740076558511487693830749581781695397525658652218527784447683101608357665538818984431416399289647172646258383641716065126409885107381668649354586710423113341627400384784183933441285422343760779374213213773728426171616559481428643260937239089145728671961312897214255204330968772918139450898956375772085845274808021171510823731699370040434741521535285404759378758772582760842531974110262778767054105907669920027398602160946514613009876919642253984993819549328527745657243827535399773034358804107826698815522547633402744157542188936539517789448307036734736004396033086708350472662723540330841742880215412077551104538297510816998567825321330034033196482842421896370073465818168043399963382919433192058438214917757806905835738494416717064396188829274625295349127791245634262258739157666608412658010930750375203045731916299144626463876136083562639294254959971746621856585108252088818631551510779745018341329685447507764775623543556599151325119664010611542959500136257402345238851148550673858662246756932010916999461240593604638378085900653584900629108738375293056558476786238206074132168542743810589308174517457104640866679489136505694459550586196615591360414021806670921896608881205847435930782627988768444337655265822046849717365108192197242243390261416936024308605652351161414457179292463899223313359902800520268726114397070773911808621634019842036272673266051340718910983474120971876468987599933294919616850346818319305845993983149172221576782803926515394245928660215699332461185143962626774224440830922787617858849106058111385925152921169209007703650288003087168980142359099872094601065104141307824162382777351752785571736401389596691908774809265668008723770364726467861146701750697753128859877007794987025745472822306269125774673467985686717757925712427283778353042124497907282596657841202615625013344076848320039361293390229248844297006642395947744812408194642272488131186274210989692230203026325491011556473073617431845878653496728530152617981779758807601247140847195040982139843043136718261461117324684653669519029658335289562547999633819762859437345786939207808172509578762940872214676676269451101741104763768148763587216074168003094300144866724722639821595607290074348595846261950935416462195043493838871591643433054720868493038068893078983729478849315682885674786146702196092034636961797461155137124682125402385772065416650946486030909390883446855674302989519110378636558603980385221752946556691677519649163323042223832340822296984055324620700081242583889616951808897208260566254147977502039827204493565369978657300419966495544414325866388799567520513625182191392445654947631531095170345850033507092913031905406301334470648230567452158689788517715259433048383195908730091718274671535400515579657530923213457933564489628616805139762407558590906740279513701779209130722739781838837112987520300283065126861497533175001552053872452174289553224842619192890156594000042703853364895934946747854370291033451087506132769687344422385652696406137496970334503264349574321291393609481546755762655121596304306287145031981598077448200963091873916006971228829682699589868651204039022528975886534113340568185186053856759310532702030450033281031022421321527450537861978225875329578147457392061765421994602995715985505958701248655999979998354878063586045472055258449984897746576321415842746325148463434575902528717608474992255545754471008289085475255420034913589264419997880533369175933415032362703763671590760097409926543978930112781272415959192337324173979067303267368756194219406299570411340780078984036534387264673477930281422345661155871568362719401977849257067710623294548534207176207649291376317847311760923852458057392955605536300276093176466214331339171206859838344545174284951808360189003430899310211421330604152761338280291942723482064529029790992804726810873284916580588734987872887422843038628529145217660202446035957762470985382413820738861542872536071474160716895643743422416324750970331870187349364376935710503319115859035668533403728900927462080565684746041995246809981995324676897236925034272603300608883152061263419905275659700138861623264321400015955145360161253175239275859951163267870684332500399942350494479594431280519655551562176295505129142538128213494686931448847712207547830803827673261900878212562437646186477508298416094685516516422622760310025828334522008819224649874360299735978549972779194226876419280732190237658957788638124328700835845447585666190554802973749705949407232211015667547482302510643595430214351860279279797167685204975131480327364172415594414463302811918505462433106300563749230346734702722537740587859885331064590560620245765799891184844749561732867508530674790447544871721891079287929863030707354376119856914169075629123459187164732349340648189777281517891128618062282666026230112403182622123069589639236360440846936529045381174676991352355980036586992825345206996292144311495357539968476657283653721059364380981976543358702592521432487938850114563799807039689436022386471766027983906758119831888617292730028535180160715040721738810466646917457585871849563607887993206430783276846585876234615379209814965438821471591064559219739248877103741126839455650360133459300613849938292571665271001001311954568831462474485005055586305356299795785871136236104581897723249492146297634569746189222919831189525360687407284402722162082572839232613418906926360727989723947964147942479641025603743847182649878777332118586364305191051593487300239792373763860028033324753597465928263588804283910861321862782361096953697873060230401077275238710789397585197247254649129268049212066047370344596711420941140308173617399001395495013151470513550019048401591851860988704149448286925688608215870991730385057508182397149381470257539984730335016882899843032187971245792187613405422050183552554814000434093418208972774670796506862880226915447718219618164172346418868180370815239058539373986816021604676239594169227873950561854898202913475315963819376172882871296694440916308492298045373035142688565478090051219525124573413392339038180093091881282522615943891866737781532847242743918490268658635592116686442724441904720224638510085880993416194905436650444928869817044635571790083406517818482436513995507323581778452609998105802809437522272094903551449056936476682257609455012365262191559523688057585500228528973076471809315253347922519898478587946532226445327992207474257892922841037051208399660375030414396963312785544735663204687486087541039129385523577519379690349081417620744538424656918213735755585838014441226458659566344936851027228417944511177371011794878468058031979764398016727487899373061238152627927396765588053883604685912789610458138365807423022280709681877429833303495050750350998772238068571532814167932219961042956002167121708040811560364589426768811302617251950958699973709833486093766832117925011993914261000161717803305708191242098419714496373258073484502228935896234786273647556141199155244123301386306796811807358732223269613066952288145354362190438052564310567214705527351770286081297889008871730174300662497537417804489631388534870970833697477269873577725358109863383519317624645899242188067669545327238385986447411294281732526572835865382458310531265058555661637615476154711666087770702746640821563619897578803764988299036764807286340649285196788926804437390638855361619853387250849662994081800884383182803909703150169218394469341924008966191465900827774096785241164362025681253637107681565292805286916237903948951221209476367649759414525882463713344891347285822897442751816252621433328102878979754467881565304198193375436808804738818930750800506801954890608165772790899966649085570396543061417112685744361631121919144408803612620439720161910002699029045883389001963960228438562066364391093602074912241654328367395633236841325857237679685251080300975115410665308568917599080690916697307442021225680690337234068989324634643231255599055329945512494541641758392379583409438548672872734767243320084511806480134730384925386876468360430298227412929432785794526141957414482809703865582413975310107983187282103549598519108830140162812015264749380490956509482814941595502808032321820876740558339118278357330749987542784367678999702126600006557637510924367128321064715780363896538975655693916137846348027762687359620387364883949338414452378831657240859844922716107788265296771049369244700482418480261886620690185863243754322521446590323732757104181667043846344686285746239765212383016510094119188343362294662493912182275503767363105286843877979573008238917161097872074097974236878998961149701702889271082485291344989421343466543462043905668786706845431830127094148348502088069903915476114195826728630717041355169481714695780657549324572361945904900121569357517341597061682425251710830755231978715094063958930820448419024612215535000117100497506007820511425659293792447554356444978791971581617462164427041975881079276090223496565916088002575204162788114176326393209162981859101768399655172736680669145291850100386082391383341565204493859845062809159898961779722478242113215893171658097732817000982334615734228819911688664176604797760184933869676249223872227008374449763952479692575099221103189188343872463547855623789335905068999421392932988773072786833921591968354472608557567235440639748095522523502738895300943262994672447182330929635877356950048966093655145274196632100962236268668809696753339168990830253446668699786345172861709450699950891332765203052896580307586041770646485960741427582632118942045958710631739409559019400707414013846590088654424492339096028383888852542037887717947392035505997402062513778684710827685771017183516922540325543312009735570191093331491016466479896191842438045185806465663540103614017474635303919087824744478093990679014077195497461296299004611436688103817347150854836675015229832391498883820662919446525608055887948679240297001784035652432618846397214333202854147853904157529570323957330471799627183430642223309974557758798595607519699752213438936160511760143574087809412033525484155306079017043475440784416383144036498148222248749416461467037602245971264641995818329681310054300551839895088009060131495264292683717379319050062750948620121439610604846224445597271485836332754449151198671913182141200636599437781380110666741366695879668174691113546306099827507820551190472965647199924889992725426483364493964990040506820968036920737807674523556945280486784226145613766525418103823470453614735824176736502109950591718284076305243074435775770210668111539964003260402542352932043583272595019155392834337925235959806406118552407936332802116414533744293486905726772651604431298581683864312245761098702101289648975172328579791324843488697809672577682429516134326798278962414031279331332683076824229282853412131051666831383212950189160867441766674063216537044719276337642546396938134160688997974406646022987248426784716745447770998080439464806218823326084062514008325560947832081221106761434218886656168794173012263246225852652941009768644231256190268129390169244947969461761354422556556947150660028166488030827432594935642732380341249561287498326628615844999714598686431080052220673593081994124238333717039332093728005367790434812384369527526426883212652103115816549972052305521723343009580104191605431078388242221594886082039354790492751310585259469066735400555125253741503656938263590555147324826213617454570854401295996253058039010260314828432766725610627857384284765347960820549784647969015102272561253590131413868367306995052736588537618173500124917865592521577496430368032624518614692794444579313369686231247795350908353824633990389782849570596228855354660230485003975191116245784916429060560405360422722862050528058730875342644911515535523765409585962072072408014727096080589129650074641667546007838005742402022436556385550298847322645126341237902217694385431823996672920893867277098553236198756188430923465661229509823533653385863816658085059596268053029318889078499572298571350457760463473781752816591245059167761355115205626910311606227129254785031026390113107827490515310279817440449236823415123170079548898529983396062139558122557522829920343066623061825912526947417233641951078002171098374793163242660854287406590332256150621110938239410843405866018990052726304381110415176344720388367549155765626878086825180657571207158975879671012781063688636041694117074680663791086237552811360860913248210643066821685799292694096494959257126655470047233993191714862747859117459643472166103488060608340682986954595619716137312031025560432165480631019470592115389108786840733953981627280088773186835218804526419324993129898816539545610276726974852792342414699616760624233562195469026591255962709869449579034212736425589817067854406536743635548750109028917565098481073928155318707365415250302405729074521816448362060711797686451434853815956146317557429335913047075171847654651133581715125339484761185587972624544579577273161797019393854616088985914630756859158940188482238599518993451675125857741531988605318456526328439232416016360189894593861352020899794680120710126164353476539433070962752725625428578088415647113825738237249443165298767184498518919922791258569614166938728569810997756607406046601462289147999957482573222535997588975503745859212287886936018147676562748149976937287042911739774871631240511740980473403690595883354634995778763574308801019868720458125731771977877084739667210842729167878710373403402621518225986681633089723780398482113479994671910831887525552580500712050494365571144782725352550513508862938393635658159983101643598050335350722446654980584940164860926168863277976994110076686999691818811324303975256396457905349188283125036321592106618210560119788322980378617407822318219578846976216899711150060471540877152684197250089060008494140864658501260117454096761365984000748319794550856897306238500325477298789099190332364015302676551300725908232876434485892892258058351712849446840110544947607906770089710085864650690019664850862213784228095358683021687755947197609512704080276319519593178040389043831677828881725831198865748801489093906230438438192033905879672968377814684316579632420577812704828850332264865068717415706473066119552287725327532323398100361385643058523694422285091153097445319668354790851201455682586938761675182669565012496963069837903834414457846078325415577569239752276894584154777466550232523538613365030980536059770665776253149453908712595763128955206728659794287125069481054417096724123026330726238574407928449711746678034160805987818088844622229945747906830166518220565272847002754768294734538536894419056668468001441275390878743032888408162730274388998942381350720125117657575933070849968606681721878911540910838778436949587368866681331042042301487472688873016775555015193302556977820162726732863694643593281134609174068740001144400991299119246123049101704959959019713476924401287662656949729668623821311475053848514696065860262416114916001522492799902287384712433246410439365783330619344925710996805110924765391176658796891927634113086886184505605162569821137084233628319982820547115193686455591569622759720083194422873061637617160164301601598945613100751470884671218720839221715201626597581600784368513649850354980833721314022636677108694195834246584519151604545564430885073853572166717667543601050278206037215859445426498309109280304630246248051029532296554060014556454015598804090115935765010181882983012147213107550756977575584433698286729269599595887515799934801120458655715090333722858675836765197840725069300072340817529515225195169942694864417868563945169932106375923683880006884595646892748780303493136972070114917757547813251743421974490271698954920080899647406975066998518847206539326486940226482361097522967145233836548751675550520582587976439619404632011756324258291960860299831292803682205241706553229350017830398237830887235074537504194928608636625286740450627281007051433437056164378875062634830690845359715420773452375942256863634851491700307091665189520474612148203635623191750568521484275641993195306837689175943169162081533424067344787416464116341933158627075316826841914143465854809447447299768776789418040151057985321002405316360824548364559971364912654474361853241159880048246201578735987989962560413678893818488516156399895129001199358376563387790052078799954424911040264320949526666384378120717197830203178136746086880477718503030502450208811986336282795558292726426700919997998652305904857750272354431983719661730248491860147200115999873584341616715027139972064595222805465704877894246238347226503002891903162638505892010873802680196311751923151711342473494909975451241467687938703466769963803911385094067363608356148071959903849533934615994456922512239080659868806459263414958376017871525597875303760985560478583407427789241214759648142527581449380340734445755266059317914049221932271194020588562102086766347941085608364202983248592582353533606796292388773471353116124956596559681947267367019637108698454153660333606720522346824546497273527765467303334948838189747717752723556005495581669716481726270571586420363624472027334382096981945042532285247712926893799319693694833721761572226355477952501756009356057246586230933187980099633501317314332852576851446849805458066747530480000064514718337969785539461193445829673334823369619370910273542776036054887238107827701084834782421112159845819942529492385917386433464565597373444034218555745847887059001045909889555449683634971847638203871909096371839625644579064856292015816901754731630681706487224044627189968927741836627946235610433466149879159778202223474483651956405291936555638438596537029805255164204263287085680524102557707983793328852130851199574102115827246734218313059483827954508730101153247568235488454196481552834773481647881194122308234104649083038434894323360151379212477412634976017163923345294499206317946399395670572551450211300115799701335924983283695812457056954903191227512622805543199463692154296265821810851535754163698307691576619130121041195993368097811104217997315189734443514338511430242890277162151124434104572208424695739262506039356142818970703302686902787652145808722076736564065508658674825183786755727939667029407195003540816415500694421378017881346098250349993409883243813510617263689529070058337286082988831464470154010383588075251488127778583015578689731044723156683085986049691704724393781382124841762784731472918393946873615931831534953423695356120123236838192173298338689236409930040629964110242168148488889708831568884116406689315948118810374806529944116540035564432102865053328978450354504109199279113359645119855905945593036845793387563933241603659408758785724671155400358273316516655027637099346512039026981042355184972469480938814460342687218619018139712537711940123514204102842904485242916563481213026815213917738101020274969478602581723787061830605597729604734049249706090997513380000176437588390315637367246408096637692355685119570254966578408982938594274525368374916569829487527580442151658130809838504673085699857235561365603875916824287484581648815641530061137932608812205745924489816157056332384977550229119556426041108562275292068184743036281756422088769712938166387580919798569890660920753871106105581186391003849062267076305789136132556490324784803863530634245504535896892729320473719829243598847164812969951850293703230642369854807270278402383506358476254858526869416691923228182121876554013809153289942764717505920424002567242441970083468448248647512903367455093641249466570905626740022938284807760289418082151128381246241706127200018499079581502708746459573301743816980079390956462146175726666660829876057605404151820273367785928506538268511619781759079748664812941075994320574383201287951604501933256047898685762699755089231506049866769082223623147469585340656075168234048235318942810746536493074542823898308340405237220386967307494382429789986540066664595757787858317705934442820209448215751769825258253110433631887787436066183459165300017965369677072015238634103057458474854336988097073020591206170752626074744879675841168892290666757186779266340299121423776640143362119729651394334010297044631392743879347138005452838433221370343192901702741023368579811223778074655571731769554116575312300431645357380353533431005393652181583154551363580918169396187650083463705698746108481860270766235499380516088666059646495117177503190987932330865925987067793270607994606107175495093278224144203805367949989599762816119003063320419667740246279238855019904049746894307593145191561856078735106855562719164423282702775963223250871010656339325832082639718027337984546458879586478090102833529836748716348548368818197967324483446290672981995603645331994355222684328456000564860493506433927797245561305979134402726858471809339443954412273245445098106155516518938236477028043373238792375573454548352120087423338555581874292104714876572148784970364399712188602120930139119013889236758256669009227620119800791670744111696593905257438816111929493766502444043639436108128061741136880163631898672715098020032551045976502233168124794551313260176762143574311308088361619709058816638197594277804970262360172706978806338411416565261923074715892857326730296497960589341450086034372221284948379289414285751596267177910592462843408491524476408455111942236418173117395847504911768216585315719842601445672570612786978135941374657747950713956998599596722426653819382609584863116240127966291810989080694781582897122109971652669867410525448340297193958273455413470869357796030375703573036570294474692058183705007600015032012595095403164064858334708888709040272746835423756186997498564901532592992547309412662428550643515794618096454354823055480462150252758645864156805822067564829140451486899796370015673133760694954265626376013334763448425638733004166545420766077316612254030903806789050454741118787521797567224852480667302107344172567721428603103828022828877634041595436746584515590921434707401657292690986862119989524713124140525224395161669106627712276278668785522047791616955479162987364268842240724983999028886093268707524058106477571858416845841946543584561144744028811478060534019527322181464454258615180517705155202527595817097096265258310339629059558876831732694673693522152263488431416143179445666147657671722801784624036284916623478875136161087370836575747816540945226702093036045808709758443724135079526774545571226703186514579460346596166339148722808383803047455879506562840484266147929444562027290533789621001194452579696394002376456628030771315516366025188338992452290967553072912704574248510958938625108901268818667892142449126362812746794865627906363602615774055567206180288166668727591514685641804279849046610620234056190506629622733064527882623298253855887110518161249015041204425336037305246454990225312754773070611633377739049900344425082484714137870027134033990539946226493570720339234137219207704052079518852343146513149393172151869228847453008202391994842056714627841703735685824951003951937615901305610648816315152194316444896285976623020254488219122861515404774964501089388012814010651638476887318055495519104406868020846522412733442401515951264719492999318838085955932705479859693732482271248355256102284017323620634044168515927400410699069024911396018548810773505688140585060627448201309576372538312251085568292058658528099250801999737027762825510717311120893575574396325899434526034947591633246093370986519784479880259465762705197932802648813984418583371352683302266772993389571054361083128899312395204837585269379568229969484550670480261188300460133264640432955636593516015411694336175781568551614156505329367573016228298742906737013774340652437592320872657568668636480469459595976383197700195124131195341137547202539488482462435846708628803271815142502593462795517094993228315502266163390038750627678261356480339676519015545925992458894856455885215279057032935697813948471030402156088149383225384198148778823543167750983021299732067912567446383088975171399410227772424957048173245228821569517150471102283339393472760073455793837908663961542546179578569325585523465414088401277364158296275281756228883949583848883108123738159462957886261810650229854760188414123732193680628545838138301023334238362553086414300253626506560901814903536075739474330401636072050524275519089299498539682909549604585105252068494879756358257392820511232684545222934795839839077496264850317410632418010512466842438597818596729539290281250411501726251301155302745980713720657751154733262996821880480026117742793887781331793557352440039518296137079825815873199267631084475366577438775190260706608560813715746394242127677582156632661930443127567340021924231507891242591745615242779961592558642090843378377480676513339670801888543302026520917450088916277490278071869921385949280554651112315350829450611884730420366474924982437152943054793066416018501554901561457352466646841698353943251697328863675913751183918197865168745052137763487416265270886195954343149606491586986868244534472981850682305032734678003834502488633432566368589033536848569034839436321010493221202470696200775085490125611929635895025812731200942129157234471436913548366994603596747414020016385549963405236793739957388013403934685067861148172752024043631727910594048634322677938566418431826303222459286359762146570887602793490235821998656985874123409238266061601745813338752186326548367176671347615722401397077208963854189935481694952616419810105602744221784469039619846871062037613105102055937554125677027389478272316355939707311672189191281856998559443653939219410490433989045633225545011925033675089704540137069319120643789000016923268397890469347011170858791870886620981407134938487835362392071076685598139469252355342723498148472952222562779456870236455110643897124205286285235114725266489266543680611161053201001528138628790801637383399421668413890755134032697670520161435842236115474130199168442353055822313835624043610294728062465545860985045903220398598531394644149527419660129589680843009651299972483788257702489588891709898292515265197620978943825345307991275914795774845566182274943411583606473478424181676651934114241301151408320197131273463653463834539340306850001704379839936497890581240065558009010345470895579713382459355215681532995161840369346748004307120048543117276277045648708966261240386778349887877365565191930166394311810338035041807788735893716290094135501289040400021802950719627344365655667943127939566844121603153121417621418233681743364942017582163518870004621302845325898695138756635353717323027643562460868945203455582932735383261332859909783653936799773003050435962766485019127585486851496325569065979308672175125601688409388423412720425166185579401718828970416856051263649478322123071953653588867467117978219833157520067943453219995830364242281807181018613832261829782484333515693052627247107362913126615845274058827615636764947778583023384046941110791809439387448152787476961902969649512987818044420556778883235192953511760889398383519673722971114903740916632779985032427069039410407857809726643463005864161630819816250476544226227362100569686458088916526780799656032067120276410293036232310365770989578465027208487805785459755904361722569289236161297418307777670194669418908527835702740693432349971646787388524474510944477694754590152545444360389406448478254868040496708848524607417715191587758491147920738451019154351371316266326410396094872169547429677038707702793503605810002024539194915331508894540344566696900900056297653329071798067067748113806105851986462993875874522534465777348404871180770824389791960234589311228601277697118161361044736040122862641322822872760979257002353557873464656213602022975020071851475910924493012902653873329553400422136104472868761136903595640695437194566147084817067996861099854456396848196367869371942889877017091562623946458617253471463277425913435559341431021348745713240442779719170003236682194993062875264980289396120188645587499314746927968787133643883118643061689134253153426398571905032481379109524404966941626583575400061067528899455020539529671607168687578821003264844579381172935551764347591382268113493037869819736961684899921604705776614522109545486484022069467385117850504505528665798669369797222478250431794404705228391431381019108308715991087031325795880428110327534461305035814705112121840441566633298036363434792816483580979352004576993780307535038361805576644407284428681383020145717062771284365658905449012477294653133015627139362218171710860395202792819006807763365292593277226737615358155932647364006647036710204844219133907551927102573557780546188702703880813479850462493374793653700646261421248785748880522784167685248302610641726587748237483567104729704999508512768053102314602602255814157608211980640049736406642376786068060425812799127289855660148080289021669700607357506755904489627967076149829134004487561733569792648991681209335975383637530238809231671676052379912941783567366498374835395732256650885694192626588167993267119923408033860151712604572616934045500089530883272649307840767478076405579593318097711651462159015106171632686466206085221032108513460317574796877054486310717609717110220019240067575704763567946724940527721904404920759630960052853002412585543991408102223318630673914894902330147834598258671004191190310224690801783136204948062513012243440915999063073987694907089410650850929344084664598106071416728465426471302882742691700640919325783834351374249245218138460447169500955088977245083624751845431363638085038494702695474394610571761463299203359017665243646061515461222413872434128189180928158602637709606613931185295537818540564975001434130273208435172086434434692871921001278790306551591400580875594918683920830677637076257372127269119812738847119624485866139398671249291522980649397460460850301670267486964969185796169728653974056599793936563150980715602395318980635874696252405695048484013110388997630509384317703265867724830375834445039725975062561247516764327228290913358435266630180610352509304150782848352915498333080888601596828182720136840140829227771608635912701538405907643390921173887450212012433362786180494086668757036963748913589707531162864820489037388259623954782928386275337840292117459193907063260298148868887836627617344147424423624309007181435597537534941661673720275028809731784037283287440440163837859811255995245618809162498939039495279445741160701681426294644530476516626742178530483107477715062108972663223994744272587634757190232005599921714329891495003291360054142523080652152605853146033076279056818674054548690524225925956661331125418739336856402232929214629477979630230368744134859379660580405039568118789632729806213212475913621389299700632004682520674877463957635560612921866339762262439013749936563661664678834186957866566318589008072949827177770563881416074632499973990054963843200761683397700643676709281649403985341048983686475781676603528338040612982513357161593996405351339881751925639939297813876467166689765011449655733451648102968413361985021218115288760519185423781647525265445744841510329101552447180590567755759624398176243548747357001108137168623155364417495424082303948502312179343058662124856302740410483010517659108200263755679089236749909798538397498645563494559733657547764555145650105830236585919010680341476432267224645256741499354325762608232729608963842587125376098531631114857538603330675407118863447991738685046618122937562189040541110594950920202151341312030942099307578726788675129007561838907525061585727201125432752771019210789759202884902218286166304334748841004539674962074975183451900439675788816494252980727584794059335287814360995777551648720202005992826174957343010834612120183904462383347311422653310857611003183314231976275355074652442335132269285677361893595384470152185322187090709515735027343268576310884270354241371685099859700651840458579046293958039849140401839066331608562291974415777425474224976445657579951703933263346038981748865391892546984505960563589810456094303570966746163434899280525916583521994194673197875245254565585030899589233700153441114827299628610115082385922929362702204886164247842069057832104314836637419077674291858137584492695280081644920086137801611963794726008018192425311113703171667853560212737581163488168577679489778601444199705781445236278170193791941942602757782358251214624724287472104032701358332731413502299664140168541879826979832732395159201074080424279376125885868826010231939151358655756179485113600239581438182077461139992792793834362857201378229948903971279325637485160815096400326691334386320972076488465321007734395045387196157773207583733374649298246750742234283678060269047333279471579982235233568678648958359700555711285826417617079530622510445744039817069560708686702146203331201764838249620968969164831932611320873009327379046687577732665912181789046532080804261435186896029370570664816271578884661222315037163663375161886252262602937897624321537589451392367913573076149454700423167518434234295892432190629881000183500349029424408298584127703982480325504191660806087560148463256466900363517480475819599386920819313706548735962052531255949698446423168255381091513470822451851281908751330166731908431505984177105395759797026455889154297647309935150821868746552859796976487811693455374844209250731147132554817479713277951982131654813059219080026760500868273051997750313032001618178862231424182942204475874443771947837434093716553883351529422754286666623935845195381419806048298050794878551446420839613570642472877441448529965968321556541779199284502834988049824125006494982091687585868119595050948023060497340621029424497909390601261999202948786946206082394210592830346928962508052224644437119995084894595253228451748899418894809765679071761559219527309623055149215860623395957498073606118219679471413941500894523535020483228338361166618094717362083419109028215231492747626331140283075221167585779405207154737462599668344893541574284911149368281071732232640488984149744512447693978154776779847133047415759893739385681685556411328736507116048998163286582577155052772936125787894939885903111244564442295125891428845654672308194300998607584273744682130618452272446304077109512108297563248982639696168468988834054250073936326017542823513196128527921341068433242684031344473784081728864297310076746065859995174368433632707654436045618292511301858435056248804605139318470908224637460887505153934926521256347146440286259147367915298717474852827702963036977121842478640848911118091554806612445984547682892140288151707609901742909302152875487293573810000529436834255531563487444422508883028130151099283602147794013236785493176795611305408534491587742332615148659520727061780004085078488229586565142981426851614627532146525246292012242098927987685553176284635034017947655909357995025614007331894689952700414189006927430293707467873623917393193499687350590317329540150499081069168235083048239251904956371831177615580117279898580162973236828472919929379267002947587445546218100228427582580748444276348441779498893234526367316134379068311340012693350356236805140423854568330130462334178077683420407801834748422517799099076061333985000610342243433937604525081143313708354098046038247278256309034638832337384441082009577343690736905650920090424910131815674825170063594844275982491295530398311368397518212190450171822137100294239354690221767710120116199101783132490377525116034681379968323012160088703281961126737106645552974631483890639838406872470777658125012856238883460591690896802332523449363417565291138818395424683784330947335786265890253094489617837972348077996697969884458430939824326228977025545240845826055923582572816147871283037060944855692529156858709084271358017536911034423586899972053054469656949405039346174501369924794137491675269775472566680882182615470613589128314513933756005496881827822869839112391875752592800175337581163213085797108954772684732601841644441231634347724620295814941877753886532398739035922130315551159948287794322119359155225808673466903122773894190907214599139760913391356285660787651771292978873314481761980350588737234797470125326230462883125212282106138380271542504897377792374494654242943854200472366589579107086057939042145070393308163761927805864393713456432545736804330038730055191683335034027247808013379484575006640106451567355051847327114844506829617723020151794776284675066656523993230406333366775097086311950415278440320088657453228051291575112802358257093055936521547606259813150128259506798800697590947190652252546450406985837901847160633721624833344999966057081913591663856881241615154304654119516846043839648018302497861900725643559267826240936385085257775576976741082320705163925872769196583174172036928374805747068891151912746122938050893244143906812254072766140959885452534436398777371185571634207331616623809660847348942624058104452305866171271438222093099151676553800759491830017184571342441077521323115890337226946873466332460096383014140784586069382456849513512096646153757166926854446772076241956684990501697948697610563325025899724265947100959221598867949398391586690311346247341226992234329652285367668334557875647645049318581022615975852481671543027500058766575978296661736903212119271144163231046070556351756845863055751307363497502700587793940774522746840137141231156915769302656981746577751892559718883455425208693567644971006903208740151336194974738176323843636365177959875461752059170656028541198527496947138132541827298691728103382999590476142404124039951423644399014767814264631280548736563007051953923070274890817609228725706994507169700419661285137352705496588400907633910022603536064708797392418243815570501207376303760988913641548979888958704654987005464422701912305986173432761976079082889994760831729147762092508160947064530370083632596429312244902992546389940813020685863572992222436149039415223159614627723950230819391880865376289311257963750979968651727243238632838322741039568220182659369149573671698605869145552624179185481090245504961667404421394617265353036751924820452684274422289999361830645902555441406393635120761982883900718342649805006525743099088590706692759032275943539289884014577328783117255257056917874364747536858740310889276062033461159342441754903159540482056270143884699653256891926393209794228162640826009397213840326629393601042930080536964573925219604750161935017225409912442714705556231741461508424674325184829321257005967086889906584403060405147724923293352166602565073463432373010946154805516667254252399774029490827463682151605493441430975032413606839747528949715180291289520074974548586633030736676243410472310364157715177848605325226212543758011565052049271943294593815707309711308103969504103665285388915817270795594659562461085833392842808999422780901449919402413116807203794996584994632260397903101634998173253172411972179437915822204630995281407980583783695227846033049104121391885636967308834566449300967267976047588595668933173745207271651916933085070039779025020053864665391703586583667572213950299192649059187011222460732293809449627231490837611261649865463681513259006158330273719433915980417078522016612178734542082277293573861869590467514716155620264703304968747156176427972869574739780169266997429350430089205440310022307941057235333719133514259337874907367829541020316391878027996969920600088516854267044955016224895908768892344825179147578423006413460122036329935225668279288323396803320009022827450779768943906409146695041617553718771219808645190290645256851630333193394933396995882493750325109172149731177748333400602896844007612271624703824895560743276835028685378024490254286347147901906197203829952584968411054201811918856264800062063315084308276388439880193977367167585565223204867819441038126640655325455518017753367316998416769183216263548947519292424726800486342890488592023180075545727920955278873465374910661522016015417382812319277148451131052174988460969417368684899504351211936600670020987836393319219043096734771537114639912619572719814223418539207332400333979552747126241296937405599645616900152030389995825946524677644075460465155472868614127769900432482047283908986771876236608515948028017266685068494484733706089446357683081207829536331080089625887704926130022993137854004375009220548899650871298149048347343130076806055302543593363027617979397081580925793669648311641165164519810542773210642567283568286028553626272493305511608940928278071271231326105712352589391341223232441721335515205837533989474014218948498342359163527464202500127618159610151405847485255897732782003567423913389011911809734641913113512922217301401467846714843493975566840229264384223756261982935464987919085186215551508374064492931870190183241946480359217270337224512712890434227271801269419823166778760005321521871317732666797451109859895940914370357063170866036515869933044735926761831491566619503358192069388472675841561049377937717453096910307785847278960995321280889763018964146698910153504156778302291602030077262195264279394475276702523013829409725863798004189463616501489561024013261924467444064370529192252674383424544826274997184652312507737597337793457726014221245731187380456965243218891832067376486546515298673860187757423872304220654649399794700261071520761209764048429785250123189280015521980469955088040234219357720350749225256833019571133630508845970355381953878465902502252106893385659508607755951882772927907655357894241909945166308677214639190202185206153199278218226998705317369345667063192216532969231961813374164910107800560199996564988818143737586008925998749244929375420355213650123180785940141221603316167099230203702469262606839641722721163624177632425043330405577592462797912625103283515832024452920164645181286242393142155793534067610453181744191352895105897574911351630792792199486686588833996668549096288872470073602833562211592992381815605298352779415580366142876374320906759633844439295587557189680610767933252089884409086280120677559230012430473170606796986027544820425110627313789249383985487609271176067478818076056133709174045005732412480882270210673256211098893298893644301796131135750936790238910774497118791231942291212127492178773281506344127591610092568242551045473563494536184498986045954222486961757679949863060745245684182579374973458087725807464488634529672559224630848892460488062924830670166929036349891738866559039076287664404888498163970350865594992726716496637116437498126159050535222865841124967796243553946319112713332830628185362482242833717039037568951807196664583624304403477363963148527946148240997162563068712655162286456798384810252470343988318208979324486110274480715497214758730516350163328223734929888482847517743861641314129965068234594632246802868212991497129988610161853656471328222471334388186690173631769772694883691571902278489373963567516201460690853529250353259711317071012098786945439715395956417124703611353155054636281693161827209131394040551706527054966622394083563072150275850563822317972142830262535086674015682702901332210735482172015475311717614030240119002407314824272639040353833852719549798876601298790815484539261585995257081456625869989019914277557464255221012113473547292616933675528364987691655398840878462773180508235055949705277134980658623489180088430061273649444498270694518957187319374473345162429372113760831170629564738057956195731339069035939461884122893898706206738017604597944532775852681829319961287113151367462942479349278402280460997818954019236932150566143496399427840094832707267637088369832893497615977895745414953877668583583979691004117478760175200386527710935629862084252672300875844795637003927417164648477050209070286006675355647096180510112373325380074265699811817709037216318645720736500757962247834621446412519918336042740715592720785293806470257256553698214259111457322742801711492476719021999592257594265218934630191696760069366991609291610533406670159941681612498214359261282249424438297332702439835956182745929423884346830569325423687580047094545947868089297236010053652250727250425563017188390926895517821521623666414977403981886219983256820851163516902935893827868091254729864047087908693248869480351516157912098134531724979668778160156693692341124686278595627051394459499530777530017029649013774637915933315642444653650702057464630450084246185091391307508429863286827618920933119410706160455354789374813765325069158291599258742247817921303517778493833885457607132177678926996279557031733903370308226525937475223853552478585188479941674892112833651219691811091410828458041146253285001377027417995463695330120912315401450560542442539782749247891544834484759197871051412544828934850150111710486817711533492269663926910771631713968535355782445214055035866634778812381977557562743073803467097361552694142030130511031528225935757588807351779612093446550093377194855937908377691863378737062419605250016583729298898869124817349073577163247448460251736118174748465398078090641213997441388036155183544667914491448258744859691344572973890911005266901513554117766599322341163495872142374063311059722424272562609395193462019061247049243504156881045662897058922733867662785968966967428159185255292623039516931628426197280912166558843571469440249605544436294110061279316465911960591813908115549430753578616673044831918356984997620086235050811007598658091304516142810508933408229374692408183482077849314756528947662995498090387655815300472803319629327658082790421753013788389082580815821719337547552645934322754978274392693539286449891661836657840991989653862566323271521706699706358872694166299784063507099958033760738621506805414055736957826016689056483743738772414235903734872759580801838059830248920297129409662085724219850052196539863097923769477175196758477790898164357997582327687025983017329851600510678354575814607877753283557101025619966086102190309196382328715339207733335205579527862898918148478914939125887740661605530294959581354259415150630189743318988392323522305915180520382090274271361887414103115628593617783887176947138473592837877988059929312123442097354863620534972437698475512528046902901788203814516935031837882532195713878861233296128606660539978082300304582985984332813219686257814247079328492693675730996099660414084964816561508004442081292894537196389821952580439085068809483040634462417074053999583428850916031220111401606877748138244614392275917431411716189322524727186067981849506076369484316458540744810583927507675620650457353777450589334100611071840583057930612185578683025238736404741459293416557550562310436745173020528636204309792963444023353657652744865738009757446807186834869075895941485750770202780006117368501534672063798842312982287947746367524457814789569942903927956409738586880791734823393335634761766138452964724486619769018572044165311094368589503151091238485451268891847325485692806968461421423156552090937830287816528311196765410076247567055267744932752600446068164159801573292198116866525431452907849317530994232474966702791865158528419019520987267135634540555622599044943171454410971175220614225250779021052179865809418145225007962588278782124206710315600761027626167307580365288596016474040580833309939818273276653297414172885898268076583824018576815216281627250844308763131794456845479806277268005572036178228408561269003861181276652401813619744564410008216766271707290217419875121395979545519065698624297692522387066962979559878028108799354312729422773482157102995631115833141657786681572719940663914362831018465336187649949512774755936134834059088065420650366233601131752633498914812008011315149035040413121783710556316445742228900655178841604301519691747442011299327247935390398478153983042927596440959057805123937059456196232620483546425038381751824471298051454537680625577745455406438668180184610736170867502896853446935995780911789217456356046532978844178599616358629836998170846171908644561327235091315009390474032426486135273621214453870086958260348220510951263912140496697846679750554829411394382388564156127049739819474508441089727078032918708987419010018875958407446188343291023704096658403827671684931684491265953295189571436658767318569692685932284824924868612314461578246719078895634883309879954216167067941622341128978270488118131489477095483339925584688802883457222281149332843074031362520346965051304573272518415708944614797035528656267445985516496851308404003181499988709923440092675614776830105644333183297619783231958472981280705435543685381512749990313313307670218810392332242193105050513164607645629705466235977379633152000501199872128038720788286747607528730620741012350270445684795774961339972128500195926198923531871461136966258067585233871558294652695555201615327330309010069940459377307497003428220567981896572522979938815374614149838456807914935362269156325865052327627770835957951886506862888173475074728762516683841195190516897280295482076832052854529758792384156810005871526366996983723831271418321582989459295719823556067249094577968179318051046516164797841968162807296942442793976983522631486581806573238077097246476675593946607145994803541665447159623192235117329349905855286766369926152174005097924447106878286998446894049099352148820783078341793710381785238707038829455692484483342991371910229469815838366853729947181891786409826969493744081211666268531244642919830501158807351966567278915395908881754551449963563888633998718240297365131373752623156406659375487797243950646123209594757345174670043165011343649458192721504628532110813515027579540684781459435391138874305533854958317734959042511041583164727515927875894484909564462105391468164654734338562840672779917896861164461005403263708155117909064439557629408220962238352839727682000060734467800298102399851641531354465366528212781249249864737769567878219899683859400324909072516015568041908553497285856501884101772865833498453932368539321173703358057652800568399406607634361040788086252536386243489848293674675671227757808483844571255166343327294713481517642295093673866329548807941359248105362139451893576298825913005621994341343864135937021132500332732818464780849344206394106575882577967563048205703376210713908161310375684142620365947609402632300999480490938765455716754980954826654468052139921767026441815704127824253572985347679923960544583368877050074428514133745402009735730397914678296192838442209112361622626312193578254512323570396619277227569671244861121104110468651600963423990198019719271290517900161271312311607808355910451319799466254039058534624496714388168594852827675981891542598676207235578215273246200935928970146637717855021666833284649345584244770970414754026084402302221742358659879557561170214572350445080323976934817694131232672725207495908030496457094621276420713784201665254970764194955291427488621712225888819360152164424862465621881344679283289788099467888313895896309495253453824470572751593654560122213747544060102224862844321425128927786263011061333294219208608446004795668820167749146759402967500767623908637278732760190616203878084888625473084346459349512043387018991608474766612808962492215712329727194155546241772253910635997982737954122228304922513532603263925389364262504158752126490655240430403379388119108467883335894234063776610391441561556272927850895172260827128513395237117959190777089042394001374806181208868885424698826360949242231070692796113113221947335531121461594455646229657547815455245896040716446678119695495990040579533590065402725619316433065432626094743498849980609674396921357173531331639696877999446661465685532644689408447260904913142893583888132736369163795923972038547985492162682316306308397648932530392336645640949958517423407535347802211270154513243137504565340377266884671739908386687312333933075282521770404744991023387466141982006870955756085633167440623999093735856274369457764491431831179999728388370207221793667947031186245370241326457490784806384180065335384403650043845443184323240307494443408204017316009161791838353809936632169156622499689041440117712935165580592699149404556732365448148540555995492387108388064826740860025344851633294935415763868645295944418342634546628269313635590842347735127559582618404439763145509308238796163902310953901509897370734208357072583133025121090921300975700990955577031102424607988786534349350977005203323859387139710450245700138010615622653438964685625925824988743988525796195615641278584603363961460317223912254734176505407936482044069844484737797266867428890901902928124658036152811079148565900237106635335311381990088432241795404712267354095793176943372945877084183918863618705430519543707451811638565201548965024611198194002173593130246553509940299778432837367176263351430791254515662323214429424543016172340155082189503059025660376226042034078007716267755203063157858635888092129746891625903314519619534917404268973887569390871203707264676786984680696832924352096729545154997616585503122688300699031317350428456302726769828552021059344231641462223451800033648491238780264459884837778611426629472429310376200600812260738294229240500331653334665111354465216419420105522402588691943046356407880028396793424943714505329107812488217742295737679312405878955560109402170453009397581406117627318394258081139470021980641147081256706159775927556265693143329430556398841128136010800982199052401080444574035628210379394814046237980192511189482748287321837467390685054095375944548373468558456167409308228578828326405092525610383358469666025619883313310938282277042899236362164590609493037969771694374359035574901606217484632903260287625605213339157049353335771203887739348261020202551992943586533771729983580157153417767069987777744350873797192550066295767464616651320901171076875534466251309490211365946493549247472395181005913965709436002127293775849364782842414668518266293488447901218815468232953845226627562173277592735815851670053537979500627304131991593631653708062114209529134918782153650492024937263357880801955596822323565711752017861334050400376704665090227162174259891909477325045842471544898060977038130494078724590085714665497871877063470250981272881066562256809296383405086094221403311443960780941868154161389247941777671289307661594237793803876708842481659838156943870354423324357585944512021219344751129680873520672293396253252923625761075684945664166789470801594078046244596152136872476653783964482894013890546100506278408755461355502741365181690523581950088318868505560604045672642684141215896366961910601989337972223223614137691226076667840519661227108502723378687400869514380495268239727235959995058886710177439292557747473187632247660652089994690118793021502968271416347149352917197231380758519422115779873035090139496580552221538503186157202236589647973499744781713801296377533404151174815444068693712998276295227780251897139533408922672946261329569079856551743619232725753790186109188477074517890670635339457718430944169148349729815806365195598232068081988550793602723442112097962960159545691245039623371870949293283813687399029876043925065773565182157615565369478072509919514496617533426958135733189121895797090985333113583088078802199833904201003538721862638357186307219035360040958402382589349192203865279867483558920174186772042958765324437678365427742747861611296663881575534301745672739878907500916172073871650746054393337935499524195344167055102416151550186891601130214011462584658002778941218404131178405100776533822961603657757167205799423520633785266816346669956985158519520517790259391831991214808853882255861812676163505030580491577671435540420441462715003089816432404349003401025319890577863626026605698761603662979739300049830527050209012670553260169553433402111674150990159572979514032737639058996799129915943035314838737420394949596576732046742590967313909312578814104923353078602012792803545913129212286179464619552765203915222677608046142750177029932681160224345564718189994319602523115007947886125287178255016967738350199394060251837212349594389192616572474552356960876859710704317606879371808746889237372346058616319677598874918939094855885468218902814067622933761015995514559706337883704557951271537810315730725246042377211681434280937464144866703245921733287516644922052019158101138711005604914003012503471813077705783823732893766704021609361764935557583824340982601514324371913777976875882966309569521185460051270037322038428730264191533712724746249065630288626251351873016828548931370031211240413564368198795292311772565064124447219572212460645279335943894321845854273748155330936438680905217412722859593291710060833766176795591200922691646858231744337825055696955560301341587175409208727043402972388976785988295588430063741873699192221638977679636246525406367109794264503790151093998097681294360840647584597968001235623042286800331171726626747125850425540825229904135594268817369775513762636435114916803865265010462584261279263755123016048926337343188186713373001349143238893841497865639775603328733408364607287021290162967861915481825686267772444555450284470519207403372268489046792091218233578655364697636072250739097222001675694563840116973199664858324718157123033558939560149505220672904530900433229358869840282071356895380643549524195591706676501970808109968420279329677771596897387831249761712157936246414765480806982515657351225131014052856128064683160434587368727193359716233140805225860193130233320694703010655076980505247277438449022678708959341763959207521841648105747668764577533710980621058712782161734246950657382254703225769088979657454261912241487500198288173141409859902848133339931518911806235539866972064048046214674137438820518356450470079566224666772477501658288360857046174372012111577079189045571034932127474044323048750145157009047348188676987312548288241199204998391330974015825578422481581528488110696013494560933105826371409582007439809178152275482063934043279435054240452490678592032322057976634979852101533185413010639151701081286596750501383438206347689072820163322076507337185505041564764963251499946360684070040225662095733958712320354860206759332605985839617539286479599924711051237472506268812463887498000525356006614631392348244712037229521856846423605653767635717242187376068069842698142684687194610521548322136104212706496375543000119274331668832099432652748596209305877874047553004107042195372419134830544523922235105426453881064277928345526730615362496121776487600425766099770309956180609422577687040781934521806592757009799359529103160978461534835298875653073877134760421824005237543124454285115723305379491082310057059044545639227017971125397224895405057539844807288042732857954978456805094020516435398303579938600538004262770065650113142424071909809459178075310768606135349589272655015121612006355692122374723898315010064531214711994603775213182505505236766985770116277740234359492735228853547210826266514767556547173521409842532750297525752020258978402023106774304528602945854455997217436752166162761798831041324838514902243286771983322508549937559523405509105710491111103432036869269704071208083977610675336943912635334889251196236244450838771347943346735566136962591661394831364286464036898774208593286595781470264713407744827172227861528755216840755911602324558928764775524272866430798845663420896585739158099105658238217299085795661299376403708576408896495629401617627547894252952435835655257435097659532789394695382541990454985968368481789039835789037377185996198086752903170705346711423674858859961537784644602077887529946583081771333000191467204456814235035205016715412944001418092783677952102625042271560188252463277592678537446923299706566881920027889954499028198816001325848093446164177602424862577708565086561129339207542954155703355895625395049497614670350046826201927687756104841742045044882710220377657526619257502299202109183494778252461128833332002688117283330381138714112211176132573842598239241619550969937410631595220211452833966982433542010861486802173759964053455433017491480010909548570521384869347955384235539361139643748285146973723744583328257558283916875586379842752477688307311799733726774757985481494660838040307976467900717716455838740710064890266241200511683727306415924617194658317405725014662330396269287034758047795680050836901114738122341103511368122173454326916563885109965509967072861948362371513351546029697461086637372703042900329958708789892067379997318303990915859357247665137010301906393627697809382452196771441304752381459276351119817526884454901106731716872372272400143776738950947131400668090754779824522855491522748443610057107270733417142956050771518508990886118077209807156359700834717179319868931817215924586943479498613384045742976920797142372567432864491373327066103183072407792757932472975749887497632316668450736491445474894574738288731169602600979382158347737051718299297990360867660083866458505705787276021567448575782236204094592262492812190329496009581069138490942338339352133418910961387804289548015003941776429080808080124075557480960906708407963034000150914087725127348762513600080881528785973340868598868500467310753272026807662270992287303054074750963511956233004784055981391098873804880103550059102942980170081251324214795029514083099069374131615688666256570779703024350424940515524067833717653586759216276108110753443285160378532654871922048031975515825943583006058357039807912995458286804106894160106926689469251220232350169100534099713089163540177313503453360712425725206440965583393189975134634396419818079326690599572962188658055123152840035292823607946947571880936485943606549868832864770496772998784172669757730469212518614529224148910737728460604635232566068135916344199747723380455000317710746904903844954912665842874883802661289294832672030906245983861430951589337222155520805087378432830183318100696589586337308173526128635794971148198092396281808848153555006633096284297803750944113971648055648395851538762055700310181233303177396314917867880761379690762774036262287848604233449410534744641673452869231110639887516219488035787551653632702019904226438096630860426984854809594448750706715220604613394901861633585817528522994099580209647966826210954764584815555507563574453274423680672058238107475319569459256974327230986476729801616016669130965822376423064898101844670372979061865628608319246636919660385779285983261614164245042866506670945197257696017905986370600979116241229249628791855894651986357606067717449480479995281098800125122828021305043213934023904700538689410659105255080317556588853668246784026509496199086815535039630234704298783955643638823029160355851566747747073813275221165942331487697955796488111986947164906609059624991648497261481232426589788981182655555670709655886904877230626020226236122279887862675019843225192116266643401811278056825236013150644074288626696330308397056954329273817702690212507091751919091571917132299396242660466046800095862618747936949537687220540688141842154345326686124976863393711296931980638937289984183183768561123037399181799523895721762384944660091220498033709822213631148117909474908997041514138853465462638847992518355948708353238213846692374969231159055792902271129550793964857063852003839328751531294100543152173943547336705465956620282228018165288074062865033424088133589164881797640472363619692253035842672595802883815203462108971176800288390326644649313993833366103763759542074082439462360270729685855782541624120672834645887821626351000196618434155994781277157350762824799924905516214428611811570924207532277732096616195342112195600321196985388470924885625816150776542147410126973921380364770588640790999404844756202575907045993846602789016060632716953094256634477931746005255317351029593654486118812835045968061031354995040809848593817906420073600821123500839439293875809038922747572271553562872300092425395918794531623318458133551522948059839531296795532874791496056046854545893169380881480315046333146222323334469972483608612483241995019306755221733577932685822132711545862119423247768100264701529949892240896405684094030530274678795973305310626476787685726396227517116930626560198359130459968862526832820781496294874484548348049402999861081061476427927809354261756189093054704781358091484440858711579807693777360502714271231549155064387524997840581500697409461359896905291304185405775971128435602033518949698230298675042533557198825575932632384788774695064865182686669897019580353518204551255681725833834065783790405346174243925168871769066097536356311250076108222239677878908124163661932190268607687681051948468404489751975065201441742278320490369400006589801142049584747364925517597535820295634662564824275667276279509133947454291038302001925188362596276379030556346748792128330497771674685094605230860729322441752676009259442438676205160636046385109360483540052562046772395150297276282059288409277070275321430035626005210269258846734779559696815383179649643538605191086751247666696126709153511045429446177036756777435178623324652095872703716323771892472325150704813949204385805866541792609786297831119866804649459543475155161510847977641184954080306535479732337161248625340536161250745729352761581493855566036325012640593630099591253850681492697230076354353267736254549067993571170767108416476528291897179392563292394152191268127180769402522487968597183925391465272537109608910780612264504717586138671623290165640135207310574043880705112422517283664079571314124031556004786149211460229924980366689786639095952075240930237170644267582536006730165305733580072278608406057617368928711249334239813537007414449855162447891257781205836370967851557963756104748012392542748326699917951019450437945192591921472564853490064638891440091269784150645234469044022874226047602758169229989519233060968328667874376137154348193531879801022256842086283747693522979178952187229726380770110666380664163908149006853866799942308702125065079692608655438589748234758628839712309091602526059977622860306651761490453234261296783267295481272793984981161608596890782268453445796341172215843019365060354356562305747565023119793478688260022603167217929587164176719535802672571570893330616489900982234007196534359271812417045913970822851107250849626245442830542395785955927525399400110722098380339909212014646966312798006320273956882757986300590681213281837354547983262245713242558208274832278996617216237142316465658623784167074887021325608359298176399985455816255464450287189317049751985155988513090855366794751212679250806286929738504319989814564826311984379631683070778336973205516722774793800522725733455435981836290778674604264825603087068225282719016983519794183733553713983309943173063078352700224944785283887103369378492054357795839575899822030678313341235027476793320534696830467112688481715477944257967580334781187506021288091192992953474436150650233965938587052386172604079121220055496061315097573216719086854291090209182543656493741362027499829088878684574895367211974222318482042866851041683171309030272797367474835138035413212004231574157248379772033056564313456150671919190813721054073743790417635762479417205343569143580669436091591527960201847401844124373819560913736447284438705646212267496796445192403888475323166872374959514471033686031896145109943215319804890529488671045541515547829166207989666973485361016326262756137683907390433042096141578491093230221138334451092387350644751839382565056151170677740869905198724583818445794280778083842777814431878195127070512262661731695019201668892659372786906265746806404945409597839496848959016599842638435154711659401443078748638102386438571210847787600829796551884599104912669076452938815854546182644497366490855324868392581897830681842292799390825942103392093460425555209311778453320896230080383945694275281804899268390713181360059056816614182281880869405660142482431994720209863195513574383392242423445102922791798163455750105692970037431884899292576989032082249541675131288835427635649257992699714370993684382125782252783760565484801394915557405150322209539531450120700616694253313557771951218331770281423019295502667482516474724617896184321724080806045549687706433336436957057261312433796068536441227958503732611127075463869038146175478193061254957628367397139361922415376815307262365248502025933200725710094111007821101287758255883421920669989375492826488956368412637407710945571964476737242668822821549575068312976681905894183975507371582293111616561183265118088100163304874408283517069443445198387971051577265741024667336578539025689366185911919393357535976949929518950387316851391554231285748088869133693424158736340124985956699659166265930303592703127632973994269628326720750803895815778838947255844487671259017860014441991077610299876010393376151070056522853135818089493739018112052091594226160248806526660040076714977000858879623666572013258131339867464887882159748793469151727836186725225720585100400845655132339695146849078749958885957105700671607271789617059331906995738552321838170876325852281322951344345958507535612116750678570478984321969428184080067223204731102085070732850738495229209204899961947173417525246315962020202762133258667523990546355248230170297461441798049123827130709574837593589425802343312711878570423203526817767032831847860778100695868277288921079766732498518773508975986879767609407059994487482955551082544016885535030878080556119106535948190148233154134938336544796013491684281290526722921657975579171346362537343159454371120936991767247780828086199592262927988386912930110984345472008113905266183029525135778410894749974758598720004015790799974563928883659467376093761997414120677872926565871047456760091604580968150653135365148977054260579271541727015357120413319531227402950252656733674690337436958258376584762058002048823932170890441187738135197104898298870182744602674756158064281757099799273667700347862667945147622470792820461430785775050063712907685585901806199140433156333444974803175782799027962028842782686747207622862543351527143103726915823176621280240908250902108277756698855482544404807737186789653759544732435682767499966158225446504034333196584342070001228021592933456615446156134941189674403967658899268843415094745867577872061076654543922667827550001763889645183220321979381355649314983417460930293756961524937202528186106318032154595163259827512847104781637871062675060745362875557258037678777610073951664537992170224374650324073130501307069221785106283569590764741223724335677072457651719049865808164221849939498985793908757750939449171545547288801941539911332076195055342761192493927740143732266059361716520222734478614654741613941517656166355700695271932104522896311746894394759046719638590552396227592943870831555467348011156928238466428824638661816624810133067016517018898863412557221508264777593481867045049562607291996959137700440638908726345507666972754042106150613928504830039412418409525059015783767885846187595398169098265477318803497358924030964645346034125990354688650222220060813068327806755791178643162072443379352647465507859199011919524826504626421817920340782077896875990741539672638631792489354982850240408207864019594990274889947135591210225557777131140143427998349367588601396912048315062374435984757946566522898191747662559463842611194746872581399179810596031365729579853618545492375376428666558406494223852888201873836120995127994606598186470274479590602308337246236821659828816770371941882362583544693187385021858052527336292348735857110815288942903397581578888396203224323176675499095975689716899549706071821054959068032588638676090832930851070066279459946655867806202541796246480853232318993412043101812073116618877345548172355011683459058499076640627565592938330493226481994945244980226120375022839089340567546380919028729453437775137173013252915064726622069259436526524153365043878857533307634982870087763667318788621488244065490639868737436978000813272198205382637496149854183210677154958654211447947244530127988987009416726398912691401867762983770914164398321405264231693371795092336573551726605894653311412147442704620355348077248823197857206163754928162365100540662548095663051363361803059681083741401779931151979752405602891718564718179235829357905657530586816615696527154063515007304511592796510239568408875129732373175316166157518543258550954647394845032304382630619915657080262806645683545514517632882899393455241196029344485938692611015061074511180555267790124163283083372821672493414939985373471850661864672783415692228565887192485154444226893153116624476697256326324299430002618275701381844043374465439401273775020542280712132062308851634660019187341009371609904966940446246875924805623238108605744848143251562468177351492424656262446678866148118271046420523575916734594860622713967343730262913764340932261764194100648499105423497804739958170754667760524532710993293603826713067224946161751390793763184212158408429171685726765655126381101193228878246656681619886152220859030505585026538497970262549243948134265542200243408044242826907289140965831318892811717217076327179418347019023939505238209122800984577186904430829636252632346033214177391184379106913197422276376770022016442790143212202020242789318301883301840023569164765405287284550042702218155032269963170683211702307353382304294415641411076702851991862915356441076328231321822441927082510633637949433770122305532677718744429472894646033735311823567267781734587860086278464544237845274454786755377838849171146491148089064798977971479286199541531224095508204322044811655192980541865150194605671797454313891598182672954814192077388701548349167784621399241893909845728758852252497914552288223419600395005820992845624229416588605137974232962786281386357479519236387563631613085311938864246205188582172351080063643585852359398514948643277124544055743157589511259052222600284180298702667544012751237080120729712961715592985034727487370972900058912523063000779842638663379116298699586765929249566516632623188477565767611337059747881103813108530698942191948737445090112652698322437458791397724609332146182930330811355272471864229159567261358988596159529288270694096348225755978727165518357587579414827834881985222208512187967008523310928499177919442564360101075391612266800939319078485031745062375726516191222255870257860375208405963696619739647705454151389126154507704350828250052196100923508401384800325678477176095250741788071664890977692607979873078940139447461836009466636456458925351163999587900953483946889045602010079738858744942199279166514657333384664029684304879840435014563297843406874731620346886398877801090579863305349176655439282548327229494157918760031799517096549050968520359903408495282070692840914789622113881927218030230296164835526707549783424103382565859569907177885865170155463354921825224119124919007279145827899531336197542643447913477161285823197601523561295913323726753275457349290301067485026746034169176735638065509791184802895866055208933070697734467622530271959095577919148084253733633794624812524919412754444749050103132358731889322519822420998824208311634143437455422350421985195869369429255391211765086333912991569081060128598749401810052868920258396726076053581590355786166220734839451701669389604610467039248110140341863959454222018065673434526722364729063190693243506082839327161945387039622322262790274570398606466276027932261597311047163835801645784503541392536508026216606729298697414957088914038097531352680599472101786273148554106652577319678467773481985873098837610074187826136745277248893172772524933966226827750000703297271652943358924106089796111539652227898493163948318148312241387579614059121690925576595803808902329195860555960104946513936749811699349658966281356491851396368045010169149048301713272763613955789431711534826319843353120671536209587163811713382001919312133546255249737516029540714107397392552824371725884319395441361913880804902023837584220320472936853433738179212104296070364220918998003581895613942007722334962185716752382904081090020098177076655010150654054675504808211032959142379379974596635093683987763260453418105709493355764530268617804514743308552214816874698133091046956886395837776007138674440107097285901495304328265061990134907162353456121198864826696261844770254827116599142606810865792325557920923363375557819290581757834526533514592364642923936052926298387607562553852698994123426966789104761625381113242792792353422162407833886782423670100119965782645992483108078593880302006069061167008400183777752004881413636756090683133908879614237584373424084812172704108929566082376717573361722326288812827958173017265898137694110499569407108764559751600058402804984902810771949113364859576639283636146590416201041387420534144434333725893464160831155099823318150756876050439015379365730854083489538181433022554850216105964384251794019086061398188228592098106670274008271710272339696071603659767479013436178917156543200708357193911594811510897197720709634188191800604986926060897441219951268823813237798569186713241609375156579574117870137487612090373631654573430387815733760503127080929930826785214569464145575347809026854482608671521238513831816502457348303791951298495154060782787781273334905848778682306935626425676955696377225429786246749265413436246961541872890294779823403750068508550507984819540333312943685788458585374565893684573991573580778086621458799542496432996006956120594163231053172137543923854938847644761361225122489355367617186852120191798029285917570948101856892353699919086576199464223853146059399002738779511877764850295746546601609531005303156744386070185737963651638858688704763665032174018748092903322797692196762857608291452367907251470380388781875774637690030161123195016874345087450409913285700990074201498586498219013116892219109118110381029050087476950887568354753665669460323584603517585117796869343030488449747256567578976444550341195278751215105709272862478848227715425144482699828410697759346778777243759449819490886960642334501818034334842968153246617571198813976589400315237140531943380835681479138625088333962614418303212928388359495885385927062551544516808919752022852200468409895024443462263825236117083939614012187784274906923899006527010527325465918584683691611356988749478958696744039794655130493528278285913562087434848205504448663783389155846106678635252757843962872306188955303836049910294425880604659355568659979910812431416346516314202702033134416750815409629498609356397080502950632285181684604943783456130277976621798828323123577974824304661169841027325023779547148177814479051780881285346313005661053997511327126850552268277035078618600632558757374993962727492228670100746419573245483173191004259639197602081182406069010559393116981934250556799082985523712686630588509767994162449664162251873168633740372355952307221870462317640459820607288181422170440784236324607480217379942497276904071922261874137554265926314258585629538562766204499175111200778135651018412150509105761538271810309763111800862719471837622407653840189673527946668760078349540242178262828181035196886078122192917001645932770486864302248785991361171779230487981488827096162127777101794647977688961283068669812239906815713405829232341622115765929588507023531975806731580487128869244875425179107143916584676356532360557150909668665791015127853015475841617938202136791144325377255801610398500284038936137257041088162453938879600509771547557748128524590847284972012889638931153962118876618458692961514357741074514603982467636779750390439963168518113278856712484442475109719890467191375401853105462847157929773893099128564731131633829697711015603447725504805190215502646086400755975378394613232367797301102286743873298088033644294238173371778477637624327335418972567234630368587603841554067093745148395112867464202664668656599538809509346135965700636949851620188556376932508403582389828792158889149276280317265750552275808657838798389910295798965685803637613589141203193138999863349000206418224434877665941682311996213854259273529039632738539145642771038025237114362560433980888160230722603466501723176686173992769114163515240293873578936281371734638231375028241310194184336529654493603620796907885249939191995539844775012072555929013121265462928912983312743015884027919167594552002131578160910457076860556337950724657104961711869207600631766718726944200270001515573589165441640288539384438090226161034127029103601153913995918044063748712972612172137991356771318154418404655582434017446186560584311988933718425773102990233838855937710675392794310345930555112161457395017803383598510218804274318097328206807753321409937119455541351516144383180747373817062964245795799755169242872812013071764693979308823370300994600471920408032464068591912557241494219136797696314521422655321623418285385546559239372119935778886792758977864905063158205819678367022678931527936303137936713383065163838378965211960414190440151131018167977129130561336819334820084944864892271191113897031747839530941932152710629447736197719098475557096630354418389778309649955270406010681418946476702282544282349332520632531011846389505671283659370592423096462690943788820673564713722495237057323445089183031978902135959097063593376161352809846502490493508980664393795093429035191163755129235643097142180237360240825443405775172410365861813024181144025485469033349846272117393584572662709017854663660064158506495776676713377788776251415770943782920102039417617182709423156429837936974608309656166805377985627866422678770509901071532812479535187604007060053200646532333365693456698819634275555683900958427375530515292893341552043125450554555508565560169949419043545806743066484473460159238660644846169566953751775208293415979005884831817694587167558403767969963252976173130694182386745745072922143065677145445802975630977438624580122946480222296098152904232416017021634164336922816952180445560329746689018093317640571613579775536181089975757199125087045895583448613354522737422071271403626360226472869498077861772326863767317326325300991654124789811961269870502324474780781620119142513638394955842683213482379280658037666730128908139389495517644577259388846244785593624019432753653855363874165249289468246230038664427371364406275437328234719110225379780135741219098885704869948351592207802690519387520524855769232760575196438991627090090038998861903300619144425929319867848226026737155800284646446844841895488105059194073728006844830732397062635692143327667226698209390562363796567684272203347225482737327124120141268970952391940194850348936667380043290947648937376999449800797386216088628311153166104972892008272115551637608225540575830994621450829662386113357921073204985967003186240392408411283004999832028061952423079217497881285562433979084227377941638472409592338067665955651819194305359343289343752862001574264175027417310713007419447017547818796482859598034244318527546533807111681703809059128686134667181867225612781691571428255315282483581823330172510498906054589003227891081943310508979086673716111459786918757173841334410852734844646477061226527231856238244919279409406798285262116729608512258207213715193303371984403623129085960449721875225678848975338485226083351400236735248866378817693669464924809923298281122707274692764668017546404444475474801730144785004794686072632760410499222238772717511405917326066538397864282586190869361376099760644243836874547994531015647206121712014198799633109274597940281259914237708069548528632004817584129365021031028708584077960093583414994429241611347546087812623977371010556747055214699161055961413254787122973799305278708578437478308190102213094106296251892308520462921728908788607055628151114795656069443252176147458818078856248300009733722964747861175854461086286430990595957250880437241853629219121141119025420811260869674488662441220796022056651098118312190901406628785289305492223055513207183751573616430541090406021443640233282790505601127349870842579861428354608259479731131003914246515485899314282520109776229019848848085943554329235041967601223628922460255023971885041765735989653357843868214366500922131963522157905752708107177488631340371195125620983435137690752048527244818632963536648015632060238317752033530522897722464616265146847367995556865030084174758160673775905534472343622005488592932911225905562937342542026039837297664153978833040685442688406665772707548641344270062530673830054309729349694461639285440365454113665854441498400136179520647477358925008353242890959111205465380365223060037778430055856326120293937475328481250503323666878293810945154487422063370365413978069279489121334383606386026488802675312253510362090434996852294338377155494456342204952013937277386799004627860136089166445252970763367161674474900894042271021214503484131505138627980415125880351724557081657110586066520432857163696578022403302621018651940610448019483001498992364366738207074000629123853927694315297456038257789154428495504406678697938939449999506527279588181541019952092390707716919265621291167620833930542497144180934974704551505982947662874376259681780839300372510060113231404541502350452836699848691961598115645879188308096164236084314100327780427100388310972769429682576256068874304005805855600213395154420730523620528974822460634148025098102511455659776685872477998365368142529927389024087179687715858527417236862724101853651712051401787386173247183491952369806407366200910035402857464959206609290112372152021881281599306924867708706343551312516298147246363024462251706936935343136839387494145378433399461728571378113218600007740592740273779437638616583012822727621359388960177204689447206810195686589571454102745742620779004328456199559064494719898347893736080723183021754743554304060196431751503715001825913800126528760679627647692625545121705054636825258367355027464035760930622053307111664517340470068310413689651366235671847122420617646346847419033965029448732506033003297257371721827711291487693267634445414823118684266984479051740824585995317645800725885047937193150078932662468265898022883403480565088410417305671367024054277573371255507069972332063366837616167515562690503141541775640205266363622491636952258709368702424494619405083128064334264029554879230653455765469121668144689045372596438357302016885880885081805424081946408940287228295238834599035283451517310147860486892325626607968478267545135634353745915058729928395065512557849793347471325274859630843041614390310951051582375012692175282836051633679934432998683404513847041891990959671846117071004039783529279712570784218846712378878046449951516220347393697524570892125514659254783781618966806120644345833501601687792366555277259062950559338381393708155426944178648378159762083039150549588585216974195605563502891026759491203353162632221085215771218951740590854453790058601769782120490659103094307191976090936453079728841244786968494841404034966343226460912729168294311564864538611355268785793286707437282070652177262827760817711839697061388535616197383489546181680591715886507707012451992802133014842746100729077012717860026660558431519102314781197735906885934225803294380071309222676469433039183655654496795313973770637884177591588682187281300385820845833719578901236408885212405469673329130491197087127261665162138383732033089667742266679374986171460613723247704092794522243620347592910837851357944512067385280300860891980981009064590104301947747939466250960213630995943150832451749458391353704993564906197263863629047904728839535198030287454611307951165676837609851946912713148506140567296114498299280695723002794717238007719965533016087419832752144076892722703532570671719131194279384199819107898621977797408573266648729662575081531241180075462010517535437296317066789822820421090286636803998898904480533942819612932168585061857357496794754840268863078990684356521682213088821526591823958367883452190065356034392066679297872417549135351583770440226982692277434979718505083891342677170775031611315879630937387258360911598942083070712419650886062606521220178430348827717458745460493154307551403929851353722466212970655957287249581776443912360883994628073105769919571141166895162086112079352272276136626325179650650422642676476407414075596989687098714479594916887633505508331173490843443987226264928574274863857312996686060406581208447008492546859894134811856654054970330775745668691908360560976882020246287161658051161744134045846642350899623815508087562104075082909074443697852298546258165085597652270280816175427008915082124900508760676836603098393015221050824367765916565274847513009887297601141725642667500821304375185984439050828712427983663573304128481506239650568081397833393892227536151529414336092524857735954044105717692582474672088403054500180625124606357421927435194828884368576769998665487220776704691769253610485787378737259645023680435766297412227289782760379298026049485352974308244377671349581029153753905933444386566180462004754509944962004601572480827623423811708306539900987961244736723888416824324977738215815987972570232731875935867863237675580537254280781789092694104922428811503156150042658374066039713881597187068073149351482595210971358638365120861515255235907925275643321990070661225624806954016945727831181438265195905449483947482576944720313012513739533079650512797079436626206811605211231948353434381556395037599338016974260547688442341962621141293164318203448274383562782021456606164680077423257553206117196577419652583148774137350736250923652329623592533133697706527269865485272675647533522587890496216838111600019941449203925766001249371125040722675067798144907921804107661451268896974813906833448571034358352374233723896587473002671390747405059172490222953521242192959548182600379921809526191103105221578438996668591880689393974868756473419679417398977803250594304239369273477157323463499390400437278973538649487981994431100406881654674779216914317121178819490157114391116395372483967553883928831326323203593529236512560164855453561570636709934696124400464698512454853418742110991626072572526502647255714285162872199000231477265177909045551644077483589327368428264415456369650023282101103015033307174005331003513459674419707597142077523662343206976453158930162481919798165650257911818730230129182997594858819104836936176637186828389514021144740729397248862145937168308326936549006146763056968356295251571471591093880424403351618501584907333130700415861341610120935148085611220860694224785442975394045187279916765682445597296963462813545617849928293784238596268376362876328071288334883485184404633207497331646856853787573018273287680636102109301067133386354314940776429397974972989244652991410138940049739473547143317262943215912928627095194696448265561671972872472341346354800673427967602008387763743344095604997943220924028215893938385751425753411489829296387575937924492737039627071700658306325497342299516534252910027962998195489346742034973904642445141291169894745037000401128901179230955428064037719971073187463830848722033946195102840815495510820331797978918180503342329383784478292975593590647405990231410554552758273294006396669181914380094482046089890089456142713921518327802554510284742276058603575794564932467536091898378383647028785266919248238131634140190142463250054898669523027257403624384204016055549344903695474244306955290011194761661827587896147733933419890551818619786696629725702357950823073002865238343373143831514456153988641749507839397140242912480376032040948761656573709773568095487072591591177936831103886435775181366789194992192779738425563517788103049963004422569607319864917969690600416250625346377895897297902083941770964824556658568267603782005662825771908499112561616603904249078355082172751154548608100700958453673669094786453980024317043419453943012858357873893530105345574608009619175529280546347919470690802651194097285249607387409253781634745379602821537584331781607978065937213300392775210246657916599884507626351403604058824840707731914632710036151018620393249563889053414539914354213788590474873408518187074003335823065742889054723020542612848466506940726861904442201551614433033580079045376468090403034036016458814574863972875177215501726369868061830147334746325224415118019105516120252385320855875844771766124851981898819486807465376150625178156044611220412955752374561769482677604127130913080590701885715269388792375598268673787079306978622646815853188475071320894838463386350340788362720980349739362400918301134640550969881361583991394697451195975949150002493810568034620410420550831730689738515124603224351483775358550672420330351304499837615405784600969708698907230842655729491113149482866143498972289198529133307850655808372069105239026468162645282728692420113381519729223776396814723688462691472817356733033739350970482498453037276156878734290091195805195808023522429866530991646922122215171227134641220176015787710262549774098848521452080036757150919746926726681496738646561178390089818905825544161443890885484939315463544449944663855812534853121020348202524459910790396005233548416841622521478976208615025399811191839478791244281648309519686613912807546375246721544262305960060626369297647323224699736751306427922204233506797229112831924239888170968770149602534542026489682595487847634775575999270439199678569400606710381086846309679510280655006367121491595112201944434707214969590358974500131680343609265395024162917418715898196629972454617352236862868149612427129556696553130243016968561570367253789462059166249932325234315542823950772744900404050450575013607766446598195908132068252503554373337129359247504292352320335574577695661846264199679458996363446887007131901460150319158257499620101657051663831664813155956080339561104848765423821919062634025507136011348423020154218657666900312362889865895203449640749337491684939224824715307687698330190013277674684771516741469327337204149716177483775069823718860567059001457824821897391823394678140494892173518403879495832815136983863806565583066683819050969335108136451553072279050762296189840188538712615845607896864114258676719404941426487991685900295415089207372345455600384098577675580119612490228453510476812702131510880215807590579645796706489625485765787082634439885780428860040612638486570887928798666506569193982761470778827967358624940909933487490750021250920967235031998815561035226012942999965510736124606347539869632689631913466859073997362640309351943098594198682035763780015023068986055310916400037984880022195553812021037675808861807918241747465079503218720046849166699161323366866782737699056955057190040630246037063344797288353701100043127950929658085307568515231756523194360041123452143404735509504346026135675223340244988948612079349286938896078099572263346260575773650463539538642264190765092756875897924835851176810265341775640498085523127022871101884524429839545710644691199913995866824501973647568529958878524942799707778602618921468603033953250548877282890955075194192444364403712011139875043223729657944156953428051331287759955861460219116896141055232612343551656666222366753994422461615204568575797280520103901894133384761686286142315308747727775445626126251765719662342420842846451807268153365086078833082440039098464989553106562849959028200834079926610230026559081671005349223662095043135721098330566403937984394882540002823467168032051384304577796767204938572812140859997594535863177759577396297870229792339723747073557177487190384256827971522924348720708623601352238258277739988792755390890030076259214757776466024250528451084309753135176597974308134018760780188236205100659934102427857751309134333143841961251011671136128385375343648064006084310452977673822836263809599950573542812489582207379144607344057851136546032909553685781057470612758408595754976133876044268749292493343169306730092611781726543557105234866888969832342176690843413423080661619901450226833788763981656236661138281750082493324450661970709695218596525734729149062227054416393919567973865264995608017645836707216886690422415394412703740335889633756590406345324506875045180305832139294873948309583639876931599346275803994058487549241551490293594572683477195051012564113359740496303356566011233341407026670788422410662421587675110561057581217755612845108928494237743301248038460563663571790537570070926828356086696836928389899175074481990818224449154582542576378843280198131959712570288347949336842943680829942742279424717087314284812113533375771393031460266313625179889287250448670303792912195522698151080586445403619726994662165904329219236428252613992306332058014718594009392179444924192745708650117369785003649085144456064447045661665082814660122407781089236196854750982212125360323656158574765086441588312740312450252313585662223054746409129084169946607186079444006855025116738316370813223691533486034255086354754735520850584356968770279225548615225484705612233278586647525176179902989270264899457115100785135085146395436841738023148673630206570373047980662381674539809432324669447299974909818438467122056065978265771486795595630294269881749707043616267049360006762372166661008788322781333518728376823774770155385769790179985888864511904791026207957593219303082454068124789971979628730640261684206434968127730965846686189944794117244178283368491291312774821885658251221328945423374070557730787841675603173901879401031475881741248874081685435369326791669733133729603247463399428552418649562462064005082957011862991402172925940515556677269950115448493936301051716830522708121345524637969685290852583971254304475169379798802281657456804241850247484806995737343140320322283185149093548732124055156459270162072550953576184983774658943363002276152229623828747779066524879654655335777507391985170644589947516207223127836916144494506022215527537466997739873865940030041179801435566111655410882495297131888784259251925606491311226579197837280627384475674873805025396008521828590381891967486523573471444144478834624383048918011134148320701238025862629337064819224072145847151749558982003324010352548755592759790874446588363973027128783697492193456652185837121653086858230718512265979737563894483213403775885316407389950406917116905810096259952188119137147109717389497036025149050190494816869311914964404597929301367510630063953244803848087261494660711111378572491230498527336412521906114125488918524808126327722823737338304681022746846310957605845502451474304240398219488930064281608671088858088512217863402118309808250358762706574953386095229821775169957677266084424326534407038450068113024897336692774454962727274504214191616016236303453809447983301539359740930849890992168401565687128942282848861340178317549193082437674594184714376732215398814733249911305714142018692728387395853709780294115245178331796656877594348564566320308819316957497507454647200902398676693914290322681447316823895928338072317306524188325396560885177308997288961841949921357840530519901014480441771526830306507597235554875738769151839890907671627616158411146654209519410362500638696743828950077386499942130143978537121335486561968519602983454029983017669934139068776307030399191205751167642547318266814821486567270247098718682443968973561382674534388502623730770913200525549582487949049280930762027815878731647448688272527370630468290105443861479864137933839913090404227936988271458266003699537583999318219630868886872308452939134706298100562640461043377215916764369501121583006364309551611540989208076545814001377347553619134085939388216525123690583734258766544519322087421192952591509177537076594323311887045161210990155801394007079487094583644607427225567772046203898978414831461121430484364569462012197923832312329176028685090482301901500891198472693439729103997002275129661441630627176716432634858716658810477738864926970305098891545225834092326102534396850722732221943232309143686258383976808714291812263339018694831335688348026669186485538579251992510181487295435060909645538958574038281888886825883694349213775259782568850267792008275027828863426420311167853234086559784403024104518805079290940009384022089185860448760093555051338239375287003227015333882612317885767176014269189866261338339756616971022016587669107634367718126773740199822702894517833920905328026800523300729133520094025268552812566234301496218602666896760147851099303207487279935007284105331374620358207218913643691027295239212782393020282431816966585578476796242274078202905372114759362309637308310674861503920608944370393042540011798784675337201811038930141642836732527740457589428007395826860234408164497806563638238382160828674343439275816467537323004817347515300100264895223292345820661542898641236201855684704698127848509189762685530562174695083287373108160757638415469633275714693350265880965670722504569103719112756271393369374619948493751203965282543644795714796600274846879520930620671094677016061245428532143800347635618933222213109441902646523819732390765922699106305824462337549495174547144773005393860971125176255326254096449483538002810689663505974737978804064084381773824779751079120467318456910068310365611470716286550930508182041422937088630291580641773199035891353415939126967099046471410459380727994721666340898115889213977294942356888777924061396097774716485370087669242002274467997433490122434863894359493973410571184304695536019312862177243938642206798921701660116077390565442049392047443463738488701467133670218477418100050179235556254058615474483745699961278945077764032747102504100627700890379329924139904601821161176512762465678906411182680240877381509095715387816961511723226375496022857152959508199413008918272428042997002717251428595907398016042293679550278510074201157790767158072632072942043532171854416368979111720916765565303588067122538403547870928116396453113189876997473391917816871868487812638486691469293146416746903021002952908821879201582438612299510081064488296839012977296172032236933118441702253233995868124165818140079348825960530711394865420967548828953517344750703494535164625967015613798547383198048508088074580888649409833984365409062662607088379430745481088187514810902079188905759597933640425087675736621268552397058588595742243464037124029421377375522074938559380485865369178510780659595158170755450618920779575188480790878256589918045829187726081322656236077416423769630992127154706821293056562833835154364641280763150743247503860469753573477597365019921103875506189724458650899403534997859258563052643696190751589740475854509002789777325969386617754190153278928730437433455432848902920810369650245600239630789323836971302646469336407919284363127155361600792955380759006301099622214588658059395497291535624907288331715919676256235737775859527565582852601706232551724804203010935569687249802188558504485242657189309757076450217959115783136309955000431121776764269745694454627389414138583020973178903661072741498093921787336481244851977540308989247211078491307784548501727723962583729775734833384327896463932744889257292333760221679989469200783699348147258297847751446754423120133872056233396813130884282798580105461877000230399310233127143539554354320303516082027005130937862406897731574604360629435293356191110981136827004496195504482913133709600134667898010674042382277644179733895196947693978686013962299239209245612557351320913894310071312317486492336109327984752756536405929788448914535467283684444573193872078549829377927060123981891532953877689755144697415166374797446406315624248427598945358407688657959690689402275842500280127330636333259293776146509859777016847988075090181481663333280679677651292787923062820589470342672815788876752367988797604893633652165689030466124073184010538383927389089959079142435672420525211326403525349626686701235748982351604184743937269961966733623133323219647718264828631676716258445850684541517383190685880131880698099567336879549154781135670758270618111640655053268648251893882145198020209224070011970840906795239738516236130478118351392998828672206743773359761885521143384077595667063224367967785287108827220861720293665873631267271517358947666522334480908882761379624745703131582830081050091698730621781172368445866373757643894381162426457828872799994940182592337574339304455979147857262907478505353970097551857385093057530026087876030669613813118609234634796216840615850497849153256579121722177068546424124335096484722566315070874098685839726944475881458170835514015257070206500291546009508867590085822132705493017232632185266794255477270252947233678645395402900486713391658961068488276639558384459522616589485963936044570666776600007987768361783736684504222065493218876793345310727648977669837949508393552425804982954789090592437021216552551196927120547031252746938769978167931873575161919725670558840897278934154461867743816970425576125369669313141069703313893452806166877794090751268912485284903775703804374912554197059383359166299912986675692909654520276601956480366312820771609566804352239382915538465517764300485932125879078422167438931232414556774495521159648684218577449358082556767554104024331187946812481542111310295993842764973714108544967843581415298851577203186191834608615564077641015494656632530031434147720685231301038656863744494501018682432172665036430799487905260044645312861100154433314017322515385809174126993719942654529885243694666433847478017869049609019495675878337185172454361044501130583671407830654706362689366982585711700700457583955454428557984960219908872913232258567207964540811528970909567233751228131036680082365191755735770138848357451629472174884926759045240794351327444046778715751226646049374692292575299464346317831637333828336644003631657513733834227081950811749039276900138557439980415503431327723244455935275068518987774582560707097447433986907070985943779707871713802557266991151163520982197072675939465314897400378398359125180106826115978248589299545645038315652295296667952750228670210384298197366760612827276941804945614010039960241017083341413954122671140429232337253527503842565244559329127932018886208554609023311229340807479116087005118502508561582609919477772167312593188102335574682766898825679225611354960578300803525963498921883520362252786844871789217696572112631526636026092321578702453031105366689033993994737406737910205463572343222466661404361149910367433118686073134775298437050817285799876487911684199457651064000356566104141950444264835103301210440360601992220871295901860329702470449848659883258380414950630773660306512300644919716136802118110249217225678575543207282696847189727538767861788432253568572597675953656323463080768986050723733391323266906777912167381191979063393529587317786419408878425787033501648225615298480633289322357780911631420760382526907785036187180011445354087192036602051352914605959507320287745556283604308157446391159001279447216286005331259349700852486373018662397284754797068330819813398541190919631097093053744124359642204197627967222722715637656492138357865402444969537128845740344408946064984147859643330803893280032513538979322779524331127827105907214070063047368773512569903035680987595179380767396334861122193569793967819100965011662261054265702661950585164449591199657997676284885194495088953103357331350359359434601152102206713907214978015823183456663556614338726668592209578977305200729612445467746228666078249999631071828127579147778718326730005610935316373448747387437508605502410999230830541091859269712684453965478347621401914003838058413462288648375801025082423249887127381571581573415573834993663332370720694581556306481151087062216218000783233814971789701725366173608300608856141368066895688411998746851951959446878870053788069051575657513393225407654668812174722768624645069842456769254554658969722105776171109303618644052183281589118753240154420779285060524780200839920476635775076418120359748431654098228989815320027887962094733814962233519283213881949326353946618023761492965737765966083233996695770667049324347308080951007667860260483698677173941362392015471487274757545175791994101528120613833384749083756886536197246090333559418405906248088284850464479985147849670606326709667952990605539329407168302858663564530993330759525851996024834579509341659826992354859158083959488320097483806978886548723972167357302428112721802291864854802313120282225319752888053574673617969081785082152242678090607509127566197291849132270097912728291865522922599859490116000721931398197326296819095294827702307101071246566919121045575984575460657014253381848346086518006538517009131637708992139808079363516173060020571624577762902727328947882058298783679429547027028567690738847528802512378714312844818160984275781837614897847057454134383206684242210988292949959718012915912273227702106290365926229653959984254745072784089761140723309562175597864228065051370274890979865790319933395230203445423349312702873752980384390234929892605050812314893652617909942874882053332367800318453406778365461547429578143635090055630252636290251330670135269481110792802616658605496861902853793460292133907471267534063579433738306323334846980787236619801071632779264285090736291830724434471401033267017756738907169996404543847942139379428139844541714914473587563361149799771046349480169158618629489297141722869008060456135303187917119186228942172351627146464525574936569888324835270943961759173443985771403203699884974823442293443920717447414968492626471206086466697742955581815463870453526155461025092159548281875138511029161418935781553920891424483645801231583539243290041565702708452067039937502100288014954896413426752963794364522626010535044072877078335638097994438979227129013236453608552677982668425250505505057796910213673757579796623980058570553753827638715235352398129594643805117807634841551807518648514805704030685440049557670590866404961029971972876833801737642341075389360547599011244121460539551795716282496352891045169417790346622080351498854220718433016733893098513137861234123009767977028465845786935780513733679678166749827132908721342597344995838878829564695647797108558787321866950774280889715985281074398937606305596178859936551683605943738016098530776992972186543582321550036594886784706785799590499591807401480554687894467665883750224851093373376591465157741647451365744769829137364693735941671729530178700796860498381512594515806622251548420974429142598209709829455736355625842399377089124089267711674206631585935588302008582427461845181869206592339990355722158260654811791346950312837213051311517065282940119143171090319497555320148399071005508165983703726862226847420076490803547967753101937042356490255257457726860540344763473235652740277590066881828213226341439027437216288682975631904025517498470497745390162156551820985236070564127420713413408223792070065239238671428875455921663342624162267599923739785514708278275122399988421453105330270611741859370755600336523823087049650420792630840981053194571207663454024322418337982144534155294741686711610859210317512518951033083783182315587170209970600740339386848144088538025992185627438647260071252245571061845565293449328086378013753077256621033958926288495129399772818637932510602717766914151479463377773704221697978302000221445402349261767300627248790258907286118031907080939802088261322415903632563099569382138391404831189573012336223233888886946511124665056435044363873559564597383147817139766770348258649765446632173901354632451067166375567004660869238696266029090697491352269789886432273446795603604964836305167384409503077630799242596822881548033819832901254371388760260671592976669046417890481718748539879729959404479474775033625519043785547212516880569223254105970122640719607928790139531606259790332447099716643360966561883019272916139246295117515676342711136285271323212163395490390946549320567358331579667561189828331284460520295791623000855360552344451725369115694098027804396169977306246684818430326412746901484392157623106550774867415813227007155945982735121328735010923380626780250015961704462601960012150337392467047913136295449581152364269195197576932550809442295629838352684568849373700759911348600594926308659056125738893067770110462802270397096848820830939492953761208903091955180677964017026963535502185354874550807962631419907923431269710395513880496341732940248396632680762119695800417420959412297256458901759875793467993529930736017663239964684405177592025440263132728843022551094983454956373055470958800832201417110862939967973905063133646723872010629499714107896914269344491843902958640595310748759107355726635611877695473776773749148530021889465613977418519280760027557217103728438020955611543017387317679282228429275619221983970776146280027541663290918774473697727124043056149666230737559441881522344694625430019520798375403450778646673753210094876011063919154617332681305534752354830763321195299341899980328426836272543497433226778630135829389564887594787346393255942246624960215834061319023043979118689121959821435734712505025834644432913064698320542221463386607095837040039176895223095443513595755820460021332277696158522185700580179974001384715254102283658721291710866095033035304904465688346052718110546101626889267057130675806952550268435966149603120798163135477074678616566641019887615670780220432744617841734449762137529993183126613389139928756074440455308493723930494007077832213671363601100319805037763310560777328245144437146745989480870262459254693125478015202625388515344961654397686945562340774745040368484403491357402595236375587792308125327619265439712485304493306096856574908939377045483302532059106836290511188967113910551903433773466841612661033042015585244235426624375537751667516665511045405903837125783427403078366314915422789845266692815405059987060418948497464566977304397391502755703022732915080152865756275897820291480691987042115105858025418658185415560904038782358306793408579469629612984126746791811095364685520425511162422015395803769637102622790031866408061478013777520589357432584960063834889205582468021775534184621729882319875150521280817772925379313007301958061011562588107524596119189707042936348676926172445716642761531079471672615527564866776735428049010726116414681740968414496282147740271413638903530285889025950450606986622149916736347904700065124066731622886258927902261640235363329267831623127098334774444234097666628437776549287687908228616190325012397856261233259813980535268933634355308299319326415462221921714488397594456472459613213850300886593687517408661882031460838276360653581901781732591925816956787107837114354215626829046618842939405149656014250815803555256691510349759796268476830089639849090735127219356100187040863708159984102074453177360503650231718671978539240889873025308996664393257760680592516880817585251580048898054266620549653520658635982404007482141469862878412013757514606891339270573031219961106098363982917090521610519934098589036444608784422628573257930729089665671724631905110340141959084615791997512334258338337722052178367773858933953111032059214679104739587976111861488990266002638476633696115330578886471616443792835967898714941842186981677877386765074973013992367064878941386456943708248460292031129146722002917000558909023199515439134614459742513065540036918945772279698608547897630600205657587361551508917348272336792563758580313054663882027930506123604580509135697260316352641979755202938802570444717405622270439001538755065302157159413294290061939387463988058775604988401184014631425626868486305255707668736076846259122517103277913480405353507879946414991289612329609329321904699861120220172113525944063850241015419162406117088809053002235676257090474941467427856180381744348080584724011507159860893811197576231897820631681120161669096818491805694666802994696048514307086865864926461745071807358213483834737664593487516016040375441562623118924856039622027495160764465607755507009376647582664844863706206053355052409307866059451186059762966322764364760783725336278633312547043441607011203926608745537399128136515699154148546499791017526388375694719689236131829612685533611658302724767909134447364524413368171140844993786462959115558503188770845235665307021844683864061934286523694207794623304509696463334492831135579187569345148267631419174058531221311326849371861654774860549533588384161884511259047368024569461447332960034936704528921089977631064469320874220247454282214255522104835659159883218149938295308981261858751047112667180206863546218343066739239927891942675274524244573810945984055847430315839427140070944561920829844124277468618038952641320547365214068965722798765694436168265904934642429726982512104826286193277818500231468659565359605017121852022275626155902978040994959939112962017959276719435018804519943552340052211211117496663860367876261644149367626729892410928646661276013525177201932724160883997052023083283715881470433969383829265801339789802481156392914826172090220521626929133103883618761485184457729848427215126118064880887424363673621069834635724126211400303172963784408502419025016907302326267804559768658809497720450643498109125729553295450510479754109027373101547557123322113126168993546744942308102161192008202597524514316455350342409904132360697972065485422161626196445760771517165353266551003139536911584892914861967219273920086774721495102390628226514787666805319942272399603365426529042472079106604326788998178041065515233443070050487390428307619752138878245385914499565073431961043406970381752452705589666405998290443926070077455192978326998900272937463798271710659689308205354360050458327378776460716230338284266277312366674432853416226823904053556701039249676885809263542008581536933195568066533132142607398251523433300591374216749148239902921412508548328850363584650748428625852758820205497961637898408103346158259854633024624084889041449191498148370184254951890995678653900783738974744452947273486200484164431742349531728328077903649932670035595142941243564395359392937159233476390972608384359790336408160325351360687756511791380752740035626570209849578857311131923603702306186643391559979486856702704716478031884260574204212514357153782632265099015880461582935109115163054089367524272423022365156414540229712289493657376612426486395410654383931581449937918034541328133997417845578613276800694513671402792848177986017991573562300614527326592671310751364851875991945095351786878158372832345530593087313998039471657858981239966857760338273318968639315101458778343521058694861282720008423361091192855426745129856033625473554360884118739348844343255014238645442437887706879101073962140684275624865825671746583600652592428232902081329372162884895936375833689554371642351330372580286157083778885814768225398920897387532248478433675650181056689582312607181084319810086317988749745001211521311514846054684276236033477301449301670879261256961793225603443743781929594609259305626536092179109204905645970250562141535158881187354805213072208355617238200495965159419670445118782916075945791510911911121799240202890806643795952258893778445303797123792278425430592278785072741624234624842906369029013917390348286151285504743131509454267887027179417557052899421312176930788099057033967297824693443856141773375238626089873005228980334747710129926014793711474542181755406367212932714337928682834321975026157391914887110773544655616559666141750233036091285222981995736541073710057916845516317618157673534180304597245708523256789862292629888795625193416263621497148102090647295004335843192400532129269140573073957845672532477797602649296145490836336403930954432462286775903752846644248564124798784456533907695620117563435971485596875857992069004576685574359866504548970569272178490028208341757624088348026491262638483208621983843099467317854318721718136433065523447672848568548257297911399376974691914325389967930238530975424342558201872016789728544433560411257643685051339281050423930470671998250199730632837790762516190285319450406500559162845712214482298477973431204370213063071080392755519640583377127872545615132020405756585131705010800454278622020490967660573543268709517230401229254871404651757052399536138177681255867202640602896594150363684802505733361417620332841929608176699320448765864807991030329926684391249766668066875763678296485162857466496610907785906357571926506831800446532580554656174992503117253212861609576937116256647925810620545104683415985002680542028141995846403101548880134279475880303734258648977547942995835330399499409387749865315547495750172242558050096345489250221874869378912097715901343618967270580045315387970980937435811609634872038716021806295751886739770675875561910004037010991234318920141521916814182971788571386782637716614967365566614113710651463552036967099481885101846184165716950147268959268399713464940045131037946395971195173257544176699855122558518955908445756517468726267413385096068892100634993703339117438898508585039464127050880919499691508000773925692032854903447665762764503750537332914612788463467998539244827778110857040430770966589884161709979489151702435892838733972717360696233901659370682861824468556678631850223226085966561041190082873904241683849911987634080826796514181971451280309756783924798364879716703739702316721957769658928604725282974295163894227770484234864335396684392413155124918487354952875212852127078610713955043891280330579181178673688687506203795721922109096573395329459119337993446319518214003094138591905504122798391319249199815927920743312335102215122797144135148618675572242292702137340676288824567483863582605044324824665241982858021932192749669024523699404850091515927800978030616626315642463238072854208914827598468505865548990568606456628376661558480487263363374841746962097276642199184475509240453921234932142216330781947946046267474146498650275938777853153118908106687652703555687731858982531246544260134688902342620480468405777641759768437607172946262552209838801713787425337290113086008278912627637206497163123899044958004040782468843294661095367519907146151029961869183525162256582615678543275145389443608592615959129263640393158019177452990755848790638674933693938774812273067135718848811938750863978191719483136754296319205121687575729581030219997663412154531698206994622240951725530632458334093266563967424640033979930139953528473149707919833330311683646349710346770599860733503631801563608648519246949514930472203864777397600526559972361770529690419729878604668342298589235155478975171246252256135538838425912785555140695504765608513718253286605261232090232865274841242784069072682286563771313551126734355307534324717154637580185888732298659511860482832217775220434735582935225501507517439963125630292726417881439675668044953491823587742876121537164813173816365783933627496672536364298897163519469524713620388556765466699591766935148795741399666301938137325720260437613552253816408582099547786410117033348542609872708186146065338198769323882855282428284759395848196535291852586552491108586443513310038212274894416231905698223902870884419859222028253575553657532966040339738947868483960299555179438697253529449797757079204058998408211356460953151654610764206193546769013042225108545425209001044655431471330223815808942638488245552133553367672313808079979484346106097758116343799339454724533351923257789579869920256653101980999094284277675907780055594359215318227976134498294314952451401449923743600217329178417005821078731760259112125235799961882565568945615933277367657199823171662040424112115998408178139420904413147094902207665835680380087314376016997027571793538898484080269045432315719175043269435032183897944201646274335383845874288438116850323368894467331842184324788493157054314680511047447715326835531841317256511792123555634851048429597726353772621182681356022837706829066366793902076825688440873615343380439895455562564658423444212980526518818160133510259897710085540760127211749506775839035383306032037076806249386051872295114366640896131551428979980512305436498773087846071645676143849691197437085920931879829761690782990463712083470299322718758359866758722157106654297496286876829108244818756162936309245162942989924183236180893374579489954320799589505325753997713911431908027967766917921761739896537493233497844538950410769345881506037546518675994119986185213752984321689802800723421825502661091538664017832013211190067240382564393108747287920236079667431491520351542361502373162828006438681907916043103778397672102637982330726234663478884060898355355450200083345353295298544489313450252660251277987089412933431523869998236309504489221343198806758767013229752914111061281625078376848897012332829821904537047674858500896707621035581528936393313459186648093254996512988915952137192762232167399116592739150432919833255298909474356038177501840354911744557575373110861419045854574814040112511745075626346700278964563324065989428251376212960999276522776522299950940537447330616165832213617436455587964920919912319114847680969903215956767943967748034155017470476434586281991725663259982846685029028674718534178846761925338185322745907762301035998005211104432647053075764634993399234861180032720334161641184850897629607222300800849071551206500431654746357425426665504451747976605736565465647537157628082325168494048801013499037215161320081561664071386305831553981100412852595181107733797154856417509904943342534999189722189565836830475068406298191356352024037787871186783101510739780015155652500315882327217059780016938998893538572505748694303245697519127317675085411212876067072773155698725650091284595061990553279903299585900722668193490863998773240317896174542453028141727385168249215869103040072897540943446350301155564935995627408402172657359544115899948458036374499284933816439380677156120176467384313651051853933112014878487885116449142386319695975562581316444048121751509657080609583865605696033745828111643090168834985745060365155578875820921450981996740275674203556966454299386718280125383766898061438910988671053907192029131110498519471224468224697536807080757591481876951646970196529081761154487632773759374408017567172908729501897366241942094257230583483534572339404485870951572266775935002474644756612282978307128267150382496993265946684979077948857917400766440121914633186830426524243701427827114036575893829416031620331628883753705285131082482437111532123673962506021506772177408291314889934806954457374553726026952375696147889107035117791523979871266372345610049815570004607370672567781751411255961547187836476443774752424744204744927303889012443191592216411435584911762032785065332378125180410811135939648592900470165921663278852205528875910327309186036299389625387482671873690019160766735926125451976495068695473499694353435156181897410044704613262298054521919299071320578592783801807104109043916159993543052813693595556560167279353814467219930543725305066861109311934401082551572316246245427562115881235050872637158164856844441195295539460215755207725909920829124281882582431953516998098971678207095774628911299745485185324743996536424843943299786955574481600271160324251074389991366559223377261302835131951238526384944274946694196888225617002957046273729432737168475180291574696155146727871773691018433345315871269372969991458684871841160409111214897139151889019835439707039244892105803282748458498766150457488026570400484408836069662438955408858528077036489476854646789386690167679713890374267639248201078173876727551138131618823231680261258033231249384930427080951795885352338146004996348222728281513358302188300406738054118773190272653401468656501140717398671149471133000932064082257787647553165767881289287936824078960845077638834665720246802726028373532389647854952035835537535897470387997822215725365512377158742776338550617857490827516682826422544148942947753268515824113933373820398779100169298212615998071350045607847246790075871561882428716014217023094209767587891468698910101217195501368358315358375382165969736844026525667139374930381701023734025089189764718555665338464727097714891771308346427958739013648206455628816069276196168470888480083226204080323557495298191446605746091564502252816875006566672699771518018728254293292651129727661204774494285737623448782681617948292612638041211113719331152780523154241933968255395353245545206826258819533226118309800928463332464322510743276584876856437116389936708916829279197168451592645402641371127865035745244875529155695668616612580503274981301375349416625385241330230342792361084784269338679631360648255822519622824075813261241838476137590838047726001491636075553659295465384675774209614659304644901230978990564133498826820217880553881946767976432930986271923520080812912567094947799831988513222686160523911833157666117575842717317313378114256614001022521292892877015493200690713049034185844057195068005085639444529383955085733518405936289724321041180377640497114267657449708725482093050086281066298284751636827401533920476111925036890631890477721420021514735384120151650494475452525182494911784506642165560432329305171140713349632632276698047779662997625947833992273161120497452006115829278817543629972184428153633086057438015688747135233879356180067758275139362193960214601225199295024468185381824422146640861304405004626028979256977749862971932330228710001415666508589244268812048507480955838905234820251472844983486961506134210011052639338181758403728200478955815163164751665821389022971283100923344104823134980406388911914883678255118746200782925544957982051515975955468218587092437346278394974582427034136022117534910301971358700443407551827874690566657618177638070689825146632677848278200267312397814393000740076514931078444708823156912740117255856030389414404965737724150439791649861219009686316629006863660006037012286339584338540239346011272383130746374806804469544108443168717040156194926426948529028102305235208363628721529315141954562472077501385376382679178507834296698954092193284678508853520078603971421894115586180840404570222504644330692576517826645897461346921893047607852564305561288443767464998116528234193912944046785245214134108741742844162124319782943399713436573446213350824506874498124932621093960919931028122612054179012028858618168784802662127308847902805737580927475741352147082992866798421140721755092154446746985948203327761201762963016939012362420456198919832863085913921485964610932237101991394365322155504204966231002493765695923316799411403988156353136032641063736619338944848497062865590674655370033162645958893618661956877977186650763155180933162376161352433552450456084427219154156785184431359255383923978733401855041351030562921800897560718760665116953490606964987778377925558538878727973457867329913359784606801021030921023511809999599640766977410395627703653235347962833398461190126505085228695568199435857771868360719634005635707555527536248402072017699201356000095909844634994815773073457710656998961431214530095337337198111698879376932479267096541973451680272507645253290634530431464241789278796423212299294648523017388001583105473054777443945735027591591586329462065362723049596247087464301195230298681061380459550801781414498140672149317537954389652100051200908792110745582713912321550973832134663157355827318786580732447588740596794771047147879357215472964507630209306911172318803980360289549283564739420199793515344538119035327627133345718065819390502861630553060091870538653481868140714829936756880099105205011293040455984664388467988004548316856779980791617464230091412801499847213631719773400364783280970801204660151965050328161362822163295634205852608526175085159860285477757533335756135975212559283757148895806448554002162683438523696020471687553662387701963960674024283205071889327008860047060804165121864056034704503486439850730127877932444409909788674775353510834854361309565136061445191784007227943528906953955833102696774972593805087283611803232651055532610325437761355603992526121957946511320359108524830792004815730151343900387391096440577340788235425920891854960957216377830599595334438267976401706775290933713462939676419556789894162892217928796210278745434446370513198767350582872994282354220470172617168281416222567109590755761378315532870798982676544978584513711398865569037365537010187473996482666301534323103768215022031808918515885708935561329976203904880598907288310806339213763523753037331405827144334418549021734451866079324855008019519467163959784433113575307586541616422080749115223990844893488748413651223165713010352515527366216480551134942796007926775273002751486266397589129455864662978827959123527522037630185836976214467888904573580270606499007618993312521413064568148400081198678422919374984595909679369517779192291892723969522792405333139936063793660082245665204200788256624941934274042263419304130773787292000587208768382616067774835557678420212224933721977812489316136031406746853428261824566701828881728213729941438670579283276118649455607916248574651976976107468105133944872964321054850956228820688973024277752155519037945146985980326968140288176927806359770099167362857409233511087945442689408132554970650263985948999819904106971562793329033772736374357275694030155463027796902102923678811846708107538288978540820126515041783660488706095192128911075726280357282850118797978088795755597093007797534100154497901375273401544859352980491822615180641773109501903866230553162847186648702985801677718486217155190818936138514586628164134681674913979858071611628009105153121222217984689932232224168676842305422518002424635760338540978220874679552349479223954093750311453227924554555494510931635655770708705877402053793743927434152501199284647820837846826766973218851009687282033061237421904401010438905415966431321556221280917362033406485504080511857821895364256712802972422533250439189789833532384354555426502433239487621433725563777416472612056548176764286157670803554342321492525450462073479459280047569177196454787447628068858002125987881338002362176233914106941626967467131763468837598422270475727146977623409284297368862385446984724353405442716266633693108386673020034886138550740112281529373921159261708946287084295862212313573342283815819801956785235838600435991018358610962025537429763691590070110630458172444242656325829266651950730881126804782192071247774580025779569637476054272473459790995299070039050650170991363654582707991135925981191813481393843021386852648198416043352292833262066778083077198557005086412238583684628552060228756420725773473384847482379909511719762194534237410027270509929974161813485550261315945726514709204535385290271018282855415103464984510444133471678948165870287074095638336056638774145297776849682068929022804350483678693069704675506742945226423185355939366622434659998518231004635897736792491269847571676160871180521806351723933135338863671511389380052762199401112256099493059069664740284508969653082692586239236918812674030642893318087857634039626765236735330040626960458403743073467282796629124382014974579508199913545543411438975952972832983895121801655253696820200209154749594917019279182523433767796601158253490555209077591845198275799209212148520910475229500320743511543836514781193402060105110061733575952358397735615196757810873683436219459782328764006530323285057770546531019807405355352666573967148156625285043906417239185043295043281393218244322470521807044839438138416994278361805890513989426684050395296672678343171964034401708431020964197958131477500590605806879445133626127777697380474707584137790027533216521071794283417347496083323466769973661109473393881261527498921654348406918106416486252461160419265271829665899622216035937490053785020724576780320390033897164794704485021205982125865152775673185720767732473755585050362749021485276052961923767522979388589329763281645016273174864821863642355467295263460104272117464393930721485306899546125472541390138844982655947860104164220091182878617464115462188745504868167464393173388934693762777632610046629867871682142700389986152987704752571003772054195057553479773667905387529815834150060785603312124913210226841373252188079958411599280788933077281416262383930577076143084144780784075656990945789324294149334736247968094590314095473594984641922601101508654374447457148496653073809335046248908763334419449032421484664829537789271958661589819682165848818739772563923585505802603800110904031820818283272915951204530211827772303153374054641352319737949753588765274121643136449051396105515961706702883568313941336734638930338403464441294913507417976792839395390487637258958056025384589412746027244192540911275152323833953085813505977039883606759463545895143382846425889829329207493331205439152352365209174785822689257857537520466847370455422019994580747088300687774316251074755544074067059842283982802093640735398936000209795674402623768034706059462197555602381333074199309646376529882961315571805280014440204453816460566212397082225233552502496635550052375903926540460382826095311825261601746438038213424159041244702267567936281797463261538867567744077682452882223560946454074736369820638986064962659129735194534306210797235995022318154674416860632128523395342340709299944512725034856921158931657610336954641622574294890922964821643160762027113454216692806126974917291578564553806686648850038628006622629980232653830656866486212622404376204768671638265441543531210424513286367385603142198968027712901062995554804108504223859159791289235974842116802992268586858810107798038550922350139008226799220379765945284386692959385546378756311786222808348221316552592910162287807035632809954489893632950156977378478859891671350037115100169234981482848378124994617930566523608261672370345013966020634949090719635066256059476278910507454008777275865041817981423359886567328401393703990169257586978994338801659949550342857934641782932677234202170357804033293153140416988276023601661024308672737286002711401913838126208735842885675009282816376014183234992591945009396558994956455078296471508450868294106769731848204228161358965738562322934352750621407662712864199391778273182148153288746270293856545888444600857813334484632888794679479519841967928645101992580355968368120164860489114872867048032675240869161429458926835186250039944878083877014342031408048043001011932117791685541822617136313939251688626559749663859506595374975739777635959632541556162292602484946884228185388592005226173159990736930493864543314391765996380912215960251950975654494530170203190163716098573529916750450099093366420208322269271334624096326215328296675606726398620997347294560946904798456430143389417650432505785693137323097589390920322110226833638056008243043967499622799147443698542202849852854447630587966388418711700992628078089296887078058525698524560880595925715574262148028323143285416176504040102074611395527352661895653408747094080072194530765851286104820905255720564906651967973490847875433712665868456718718429918511344099126389912208001064263114000550145873189045148996493081848206129388385474663315098577370425549736108376801475029643847263186980013943016504445520731043618690977659900627101017268872651664310102124082295486057883136264902161056185115525102752918806893602844690391784853357679414270187634579777585167522991198220616939089906373275046277190721563140790023559068328965852502599993893336450438166074717718420813297258879405899333450752706869145720648921236789109963870608318541716334002055801636192795894814381533359116420255140667203828506882330423699229688123061379447055401780098147848481712064665537414935139892912734026065553169729774524782030786938267126362107639363527733976641616281902234353677465985532640922354686808318061016026137710640069909064227625554578001359074418391737306774072063465093410063068650295608035838041141775588263030152386316394507180046184011826980648835319814783452298213471217272134704565119859982519417677907012123299001210217362873827101155056866564332667115725478642052206819519353926824225465827337732024919662931565737843189760525151425259618749582962402660120362369507509603830218986734041533110897894639519919622585015459926462581516931103560071109759712346359289823563219408708841714955137877479353534937844194767904990747603867670329041541189812367328733388430724589686200151873272922814344003006035712374288298205821447814989450835997509907338150471279420427700361588992515612640478162203223906556986483321239084912414509305186545354974808721195820015745360236801152772131133745689051308820758951206871780788829675405952115348863296505486466683621288599627320958787155112237693393179843881243744023854795626529694665358007965250944294443106915108315057100196780867346796736149905437395092925171909287457562453252983840148636227910990810302440849309858220814680697066169546805923389350622576389224831850621698314600932376196483224994351144955927344886601804346074987375703286007537668123478258514281964527149988275717263525805014035343312650159975538853008275904841272151052127964859012260302994532823049477736750833565364381349714718865552997328933470110204283244168441877294102993812143885331809737670836792361333644996025958117273616338118903067058549229111682728690570604683690339595859289917304527091932177728250962645435186104546358426598418508938239045720810457830408801946714376981931557642651957983614949658280608505944712419300299437562141446627323662956484920895699314981705212081486580218303144317107776009440048173608501609301293581487585175431912110773509512315226179755943035538872145511194596777727922113146223374373738505361436799038544908382562575224293204301995860906962825154257373796474325911010253466468076305421575922214848385455230601854590750218722296867827486697745398041682690015863053212186269906829495328814483684421148455337693846936464928929686514626525137678784518300074342665341701651691759299502284512069835374170457584160118002065417746738512051046618926705424654943160027698214632626217645701358848777749776721521374239649321047239484091712595181317521201422186818965239109279076340703277970774323230346035362371314898394482464355714255240543540889878424345639699858644392103321471089532913576958858069450357375872878848469189912420390577086453405711517193765112693934637874509499080034531262831681021727121521429841536147967378108333969763155188267418033552728673573938637611699435857199431407610153696111369866686509787680536358706805887210700889425912014621412620359827047125658070994505741250102699790326412545084586395826040280370514382304440637028546632608557657317561577962217118993064966116420577274819782897761039533750601723454115956868630595706385455160267249594693557156473431845639959773846388113004345121423040528045452537639669657601680288651433384791502076586298449759372753520385059211025368516468187470348738445086053103409592682727803564848871628637614110147421451431313311716054558654851650094797655483413762661754605981185925498683110775537043939718185635602564402989156587327654493160571905772375285040254052687323066235649060422472623267408487690757093298770480462131723673881332766420939498771768960848473775793548285462148568672963863735190900269646480859021341023760439626507318855166188954970854490886641436072180539749183267220023109626371971739762532167638729442951693592464420612210684464562689356035307869769417212543966102510399099914112255049210316181753811219841306996983032900894374504476501562251135271068126414552621850176645752102425141983500987973376162548454001508831737486823100105730201537685265353944361916517648100314478478662689273298961898441582052221972421932449897503826843684327130105364842538743124438910860923030362410892693329218702298780176298979384850238134776883445799354984794118151320142401281477856155135930703989687237525401039739266165264214792933699106429756983371414894523833197693539396023683784285672470019864257262902428687160660961449832108575886428035851520083526667363986843079088804834519460593845065826296617490942860195945903569405887109229334384012034114673971654753994606644231825896747395525845257777719119119707764540006016379738721552811956993861085561345049569992837509474642465547250293658567075451586759830579888673028761665698134029603834870508183162542353454855909311585822904619256193549247369470567896255141643434824915055324319292242607431641884972108472469307526738199689311697610507051129547676428535444124693027138117721245484449078803180003172928751328808282479787223971228535113404397278130526184896849632226701643121219939970856293332555398058814487308638174508722715919603476379213539329688567904795884258279904468922417227105726383032630955936073851387770426692643680482780775659880970306499092782049713577359187015816942041867865674026970296487598522397003170245065929889238953362331302277989388718231069170324473638103303880011580635514706217137975567465272016037013899275591124946964302925337282161274086897898838267646277689187188336519256053304621299137734664990060801213592078286297975118571219675816686749794052871062711018137151548602922823462257328979601117150734465805589304335782489898378291490917420358388519849297393540507800713602767750367064703941507960816256935892853102203324753701624234945823828061623507006832278706665042771231812605277456449342502200532079531421186238722312505837103560469381640393567894818363799683149780640068103425007624296494950373172888106275423415151054837777892773566532898331069255475780716642902578103839578761173773443921945432492466744752968307012020840099024452577361415799554994826994333603045767775128141026864590719701492439932867330221362556583244778035298288381420793406504663448598855652162737508911139170403537359711940045682185209004824366004580696962361067097426823542323976069574648477242216453638014494568809977728858908968014507728012917501696507796890909587305217089349191175310635308549287087525657004318078825046278476909621945648580695988229885196192947829363835811154553319825057513593341464724577967955229933617752117419145120590108697416044212762916248734833343038678802100697089786748780155635280206019491909847500136104235782056999857901318475676305984824957041598206964421996358431773042908760706667656998612125072877752352329680112451589475088610004684725414971609769214934412079553527021412393501102744769057035357598503974361887898733581264690626949715662485856118365017277936353673787554545955972047215145284136173770809522819209855966908116812415186943539113450180356955511328057618437938760707402418212220714351465184300770464155401748995279143317644492892932021786251049826608583056842733821131495908735886115024842957793991552309262976251907974040189778834000109567921808828474140996140587583469099214813750278496813780580921073914307191593319981569139425485514893587696582555590650081838771894640123624914290784473032989599423511943932726257257495581820489086351502495315513267718020432361882110552550854915966052706659565155736569544486833825630422072185263604459885159364769878716246925449262602825054141197910165947585090788266138150838609616478006572361728178405971040185619354242483399855750367509542162006083529450268988418484987510482772299085915802627293835742239680967649602879494718495579546462916247540303420791462315355331937358612222507448962268830206507003076023275396536272253217845988500552223926078732230438700376058668563265492390995417203183988816166053443264051059460085191199941742174014769107998369806702231643674010291256867308753987254024150957619868540508568240880462598262093975218788129940317852206192618678725347675323209387172962642077915041044647328708663699521203837722683071668535780798120592142304710716312495930622476402455409242545783077712519653300783915483820686369090152950081267925530830270613476468983113145252844714485736871174300616313165835823669382348190982704376829669050351658825591174270403750073295283694731976168195398735039433816070754179757798041956616485556664309010397617314987836186555164874088669846319308684929721859926381052529890134488426717353629220701091380633193195896015704152128267430377195255753466406652899772594231573029487455389220788384567092221339997030536790071014308435626244641382883931220346320271988502966034503094982573313367238211402692564700674493318876803793783018517274867834321848365103748915265910179195960742555155370703171141262562463164831812256111950019308489858112211777072114412246295465737076295364688537157693107597320932894269273197560300342733520196613761744910335763659880898227136893670729304220668518521317938904587757798218292888040961061740497503893733410215912992551447900391689691171460473009085905123464300643684794273567611342679120045049896825148147501363072572702890432597464704402763233510867571898950157812470685181916839599094651517793552521885005271787059719022013943360451783535093350447909691143671530075134674578970483577205918942115199558468925024209585279692899988840844051847765638606457378616308249393785335852707608795355259906687053670505734339136969884612379442175394417806344789434037692986758814977525603888071296790092648032399021235696142163887268583209910204921946874375466822513861646247522249706845499153025670106727710301516418988262175533744988744132099046583879023962833299209160714577241822346025717588627260815112329399889129112968871201285580434213981351541197177232272870182749054370525360539385014073376800910272722604186994339872648566293410769299459177657962037396709521059754670618490607213017455076003471799236123732629918931592253736453436014892958652772918435528526967222865950130122414103223971005325015137631106772738322398639194570188697644698987959291921210794091718476721459709646647798190310788843104629628921519436545508747445001644467003131508896909579154368638658242828938652913762203956002422039278192717589245546471137599799479725964110064818333912952079969533363860308438854973925992596031632534979727722463570311061196789968970460072173733915870319046777392880061211456508748772394890929854754453091588472928143440704471229278240115188071485619449520975837407638743023024937587420706806144942104748237375615061576377838981346030112115059748078546164181982469425380494000803946311561750887565680085216228410502444983152119355407564429712917569710200745493261429662571981347459130801563860896718400326949647818923732734363325633272165099473827084048603038287787978649864079774065441999320286358553655747976991166466119565713979771468024662615976019029750832278481918165972069645537632274252501114558551699165228797206311536807614178828549834671213028104859069684834366073296955676528033832962075592769523608430905883654537219353107030762563507198489238802752014993514151838816718458034659623594119586997489355596045591965699351334486968379983090357293876936118414197408487417722202517712591835693304401226468893985288449058682613037222349396351451756406193100585487502172254635483661756290948715552468900092667638265292903396313181781503212815516485519737487661636578715931911807732867715605824428026431965875027994264797243373777957962639791972255208378280387286309522993575906916500549328048081031995502794678813866719493919372745107120595628690947916830696496109850248916580351489197932687009522575364554166667021097455531994338516431954705473258059543706210186611755035329639884838972783450042948464031169728850982587177903323880108561427638852065128294221694100002009583650795979987741660605606158861000913623048852863398650958441001736118834095971871468324420879538986534497320658650997116846948668624844069181546392163681368080609456652096870504998541917518838664859340897764994766796796690479385111044126133472984194198257515142274999032051251550999507271463888580101129087008535751588269377030566120241108757170006567248254234314079574455277920676857112976358654994739646160344296469031857401317306114875396135156465198652506731942237720306672283847079727405642091848928425687270852904213475117986334034851755036833887632276477835175430629225906471259444387209052339953372113312660549477733661729106942503431656923302991460859175781944282770200281513836705822356609097226654473938087856690295305139891834545283636283230762023920076524754891048551420499158562975992495623570736242685635056892198116857582988605149980530882065325501678975482047094257066098804296206154070355446509864939336082177501997768333339436502975950011303444193979592791591432777128215880585415675533955755853310880185586003077800243957712997501268750331228266112422232998292361909439865973329534276667985140282426312166138801124602991393834092591431269754167315860263071236770998857783434937887679184465368372576017813135907384159312807290826548143662902734166362549697976223428586111577477716879092706497933416657244200006590328925059915700129993682149319595466365107463495660792455164084922198922559612244007851754714056902442234303379041091386344270478621786054851522920048149216732302822774757108314734728154858362222995072182908730388673648792961114945680889161567528307817133358255660129688498033285500139476731777631182692674655442608758598141030389587186326710840330611037335991571210658786526835989941453971652624425093597974173033911293021430051991735169047885855530419107552491837523513934035089626108263120624834549994011206197263079069771500073380904114253842646281626986198723845300963151076870859048496925926451770425923057762338732726710389748857309827502197470333123344326658517026919618249108641072958570405165268617639943150828357142217064983068976109943970786041402100604670231257480405998046379313160451823508128060406650235844655191711576382215512083381034688895357628217269680764546852816401168977092174478464611570644808987060534542535718765674190166460620217160695352053036508801913230422018436312119775808268268744829216319205944263776381128941663973058539935312255546447263803187660483545522048560823217320973963113065266893847784899371114514089953410886078079295224213597531328195184460312820557458218370834512017079190368788410882495494780454300361115620739904978932190835159556913443821521783439889163015646624147653691864822987353072355233948555058207143040255007568030759447041207373511089989632980993096005262449869302723899493043992064646619141497452518976973438556007695797434591747862804449056130852290572865418761644401948796843975414304641481205179966478841542435367030855973124810383226665933597393283287621516625425686147072727584072860899694860653692247659194961888319369909530132481807438914388716379579946937976507531653919652598192427123936542963984252840534207028614784235433290230466158358480336988235490880448278630125456195558013542981270248863000120230768703433070013450341362718066501527844752521269691216444907652060054392270169394911690492314351176438163463582935931843513043265229886713586576320320843806766115691393157832172566677885063297559260205263702310909352427175686109928962654976366962327462742999809400517755510385978743047295741169522008855494746971447357336901674149410571319730853954406038625510914593100858873778488593809461701277137016392262145054334681972634678734385060361754705579604413470301177371344240474493254490800607018952669109199326489803869745680292807481987234526500353899315511354010052040836832042361489694012898036395358642009760418790474183939049406432700859278024272790087173407982921631557557356836058817392929245442548038294284067629472003318099275573295292122860158352522784252975539128823508610651226839632566122819671017889306691147142787482007989501702233959644957368619379370178661673672147349602984321901079123262015987101969387612392970109649123092821313746460221547879808373630576539520144178741733446669511694304526261434113597441558551326547059712707605064146580176531268943218100258246050674367940877737446106498845967262516676377442895374183084131220762622582627106504154693364333613348798200273587716785777407900203257160255421883471360092185982554367500647556583121769397998938273684162646401314393088481909723251062533946744137738202083092173885804437266632762083105390751336907697256896256145145417928386470701958784473024367451608258553722383850495426676996536444787012784381683923799075621183363101274491815538245005797376071643854360258247157721459715221562954027876680181443312603938956368928318866301050254562731602340070228637245266548519080444775487105941287699945814501998400102356527270597688311561082153835859373090488499785336175390079282917960634580085281377604210267813501182013290088044949332754269793679963327079843462861918034681650160631427099646650951752559778257579346215728972342416762882796772570862124547313143138117639358535967729513884510168361422111395804740555951292451398124555087155914496433740278224629179046267337074553839614215210824987764405213826029277069328701364216053328386960605295158258483008036634268333348015285878399733957041410278330057140407080025865357379364804252939652639231044173988875670178886505461595582830307452227033668187659016445024740221198522331897956085937853726020902481494617503910707703391282015909068186603117922586223904816339552820406664194548947657088696661342078308660955833241880445138544321382379149875377761285723165168417379023529458314002026942854771366754960215106587143725807140107750435034061589269450467504787820716888717049358226701780854579605026249012895012511815539956751065526310958279347018711062918478034264470119022887522071617219713618936480802017453506407335195614322549541223736851890410600535497590163789856744951172216078548152360205771594525250266439625273857857849578626464842289747861302125902129336527914545364763510669614478064168139228636878744130228492038770864106003914578258059075499236475469883227625238026525396956741854298039425997467346901074353000605407974824590016098357462856567784872280279535555679531327474164232733171898945534529759572865893851742276088545733080769694780485577865618165672188529041835902901507229747881524742311610512443904458153914199992773702020869287525871158311692106036618616605204120487716465684695478717469008563207211528842452195423535429710576868457796827341923239575059742259977364120111280971052359003281701727202463848407929860013608046950840667703845788713308772186094985924991649339765516203978913329370842887972590044122464613383900560534841634437811234616915145780996758461566773502123527592303153561661197005836678693900088871928142536237524298832785818730324765515792952286134477976293716702047738170729462595077296965728683967627117562262996213812767024851525026898344201574428688784289707732900895515000021408764894667893614860625597085481218212391788988779637448724903179344365589449626528037651447823445940904825591219721897482299103019091154786476774132176343217145241615291951601391268028585319082579179642689812541560943443997245141970732165597854439422602237219540633715085931634867339295586880307949565316136094518243114020556901563770540448756078763813829295157535579593459453460745909967590028310798897273809431299242523400445834139049117217520060417386951458996750514298076385152081725860651017127184218722209956866000089889324929001675772071157923128286655052986769087538850353471469977380926237601941282774272136454700322325941432955647470813055358533198069150996982603258661987623172238230163525178083186668336971939262513899029973726697286764253029987489824243597941827859364831671528271632127296146350104765998798345501180745480246326219868831144212474633734636593315548730090103633773092018405356618881251019057527335816221863083853968415371960085177515620216322708721691756640813676723640554893580037005089390219577016470742367593606408978728055256471048586231959744662844235227860085766496325525747803102603872616796679718886792871120254528601401245356225107065152486581127681236414832497948023699407535118590351501799294010604039252907413358342874972053588196989919670392614697946433297711491618565498651099247960005719637604651836865403138317519433522697517978269012993031163342226479634951071608847886095359265797809087974752511360092257699538085146699578716196760109279830713949453488589270524079742946430202828552268296479297327364836868958521158539439815505097563024239505886006552615167360295455756968065687013506496919721904566222539559729861192567334606736527608845855991637190178824265941164666415496750654154822475594407052775394858469459591099282235396808277364699996983074204590219126920400942536907402525042109770021737547095964838407536433009344526537774597130506106231863603465891788416215750295197738833146667586589616249556564176391993203214668461924551052789589441180983268997282925592699629946588992075180115951476316371311711833504761146183340713840046618572502816956382310644723913978759175118711505093570671162973838150606060525790890274749218904545481977982061388463841387033660343614052113053848879473862008375425161977539450431714008241631663105665502864486087951979674076247214970483191166633590760347890357090445062040382475245361832194496088397310204125244382497447707870926363411018058172611086183555609697462062773528367856384703852552237491772807190194402601896283345949963025009004803628747730701361948915828750744089279006488277127969623499393158690883791656781981266985294934110312176793728018195562807469823232181071058276522621790796837394771614761892760306684507667648510752524853061991326148490676815072515107668088953614036799857625347996153855801117068181415096331774347727890352479135888304186292706652449535286671000382916509538015297056537776012440581634189778813549846493189025845450399215867538217084522630534377681958964825330892693051835202388291245046734989488205017883557301572425159511908965395132113858646333302091827430342677883384650555408626258023097282720153801749467937728509702274141354676162359729692097965183353776533400987746113138606611289883198193962726679324178076737664012084295167302792368737832713762349281041801446061347708087853829411657786051464506315975862949330721407491470450675766691426702812741780313267812988561782165584312942938677011839783161076763011529188510281434302618539006598676365193972153843063905328617216706695400672605181532696873669509041651141683078572461475997784831983426903298151074859177730739541667878886579269245851734471725813424745868554026496312200126374008434557696916209815142174388869423872464723939378477624339636983550928385943519563268041461407464409637352877354336817511466348161441843569773253559462129293705286785995065241152705620484591712129659196434783488045222080221837203194177211477550683151196758477588521247001642695165996688176018273406566065922535478452442567461482977157551205210534293827040368145321247903514027684430005504973092721635375036455068283570367598309296029676077271424289180583799021629600882207740820533611872589968681956754673576706905319462697056107871847076143756844340699405012526817268280855361022668050346619459174808368287015787727297626119108164865642027270154268981477075123765297122182793791100398669458556344587588387344529776365249742525674522688920622278386014305887224190568857678559483219261024435767259329458933235848415602647318743722019442455694228859951724173832881519836988506529528494203048956770678471074114936452478706604908429306001926496226464925465935634441453342819510828726672866143922876115222665734889422121313619864819064701079398216886267962983794989470078325562421019815201369052067674775202568585358442476518580200903064780467428250931457784051683182015488828832704006489038688027702138394769247331822648859622213484027091846339939009669059724726827237980734552489945248609488373867923919518364383586486983799240333250659455033608611020590540794008202630775826751624719825639176892673782496601718901232972114547400387149258999405073811004434214548717460130332302492911878146778099736754577343594610994020650247468473942947454244402138504440440346984895389124117480452947231734480738739636470287579848418033476301522098120005107767623791340543390986560403659153626617327189854195327202974481855493101456189729727506571102289228948415830178344743157394650902003667486826654846388196733964770025316343859659194702590974574346037547831178795068195607084599382669831463407449045678084946504110126333984784396508806760860597711164911379993656771135457955913771527507740180884102657378739746240144752670113932916844070427317159101981353167301369077708981624508134689126367620373975012723881942580655773599705441500007936293461886656144076154081256181844358199559200860175026333822911435415805256447298950157127625068028735526469678197543390180371124212874942622509454854530916507236130406233123401153780176491869510098530134130599085771253392835633991959332581517336051462447168334871568453603613730636071740366682237724582396059075310336567611325117234204183881747791487569890331585641016390816450376234362980591075294065330443635307970393190966074355658024255283747828213636809879037783548994728998624574375383400874678873209603716731342521516352657110780072622260259496161297287836702213048328775776219232456101829757907629024750139865040535142218752746787511741343658912439329666392304958965951979303788997681154764267152128703082459235341669444657716271563642657229524526188703330989208472521057705819764389986948644232280659350344518223906718434305771825129272584977982155587701540537423965058967215909880517043569995284426653155895386404758467324181960832052930961250047404954992955221254990758097866624774674434336896422267157134397639838617521500094011821284207845911816135179075840717445931315672753276480463174549262553494373765902055468053095932457204082212752333239499320611721724716670259817331794539172286360393412783892551633248997711929910054540797020591383244766937148878347205936273579498485774530048072563433307811177852971717385551765999800534529568354967401310471265904943559234762990499905649148835058558809526867423233122062356319718359809891172895498215376147738650820824607579742038400028392515324214798871485813188740035675749049963383703039259370723709936743991091450656665026612838301371502276705533861408902268319715573599062541280814825391329545854013851317591788632734102804045425613053494681729683135624475761891275413606124542067296227268907111567597584520820460995635552265789061563440748319343440109756495907347795319004401532192604487729682428074390847440743086306443111405107429419309741740174543098470296786487241909410913632499695793796187028064720757173061836771309852424057810352189116314604267152559411262063228191507862157911388599385305335676663723435397366749582993367484545685076863821146186561233696465929420648188235904556106581087875865056242086221819221720547394096242085671239601594944597445488052438156271428057725817881871094984551187114000950309901658782704257364914575921058153756106084594557238017221046969941073832497415439174403184244128474274681453994231056089957454741079810641218461025100339570169910844000110333239474984326623196382897543665307960993340265532341764005970314378715238436328682859830227852959092168128885483175797510332926221616701237726670093357678959962700622055908294992301743949154079716468489205116334856691783707252392823164865663316651642081969976274693337367821642877090381868256560582381726847367959163933533237657290624321538611002648130843890780152439448005210346166410097377770620497972605793747866013845080905487819649485002604077816345024552250090189792177775539241468969889463247669665784468052636219427313420520301505895968690103324453618825414113114595900785803948978181840367858639259489744212004867522037348190350076364948505814939037533036886292144138455134467524675323932541395128742342516900225107240543278805239861463634968482988788196396391036082319301872475777121886890479633812724206577784209571222318427733173124020833272396270647762031240643640164466080754868625144732662887766162428259949837168141148439613880360549624612142101470345297256681255918716843905318693842545567592291893584295041859051236966909048738368227284524945659176290975026896465235678950524276342755400373582120684995896260742939800808478337307679409429365521664240036003396295561404475817518956303980767572032756297506037656711376290189989475196879828101629713701144188711436971909621145787297519015628328849546663108745799485508598506864473738870355309078934649718452486516111598747292183663467802323798175006788135456700920552015499133273947266537673729431017007069165773403619261241927067732607855315678501591994677417462557685990859187869212281998105695166787505436791615177961686710248869560377365532556843360921544325389729776646084539370746701338736983100316128878126797041944685988746606536256348530553835575523165027570575048831737951645082445087663963783781971685332269433120487839377365442679980989290046251401211223039236703225298307425356630732420134200154562536728202328461654551513936332179674194403868605553987071110841567479845999018840587948344174432616286470585127855622252655718743123596451467707473090646031985457820131870410013474814267462561024335861905529015060312143336642482875110302476361915476017246806020563265641440554508116523755606566002154304580285082073690496931079623828680698937359370230978763550388802329717158102676415556435572998584334939157806553483499103693562223484715076079659382790194130103023425342299745093099406793350548079222742351854240612932934940362923992723233712365787986046355086984665437777129119485460962213912907061882593121859573515681120478709428440994695389161092320028833449391076023344854099497058419316666964552483972946215841231525800617119447701083582828445339407660454391723528339872100981958740040086068736677320393215586491360176227735754681450515913696398502934910829592955287859235391972624995408070857726231181062163363457953318705958556822637553461877090015706891591027922516010206268379609930248614029308212897837320991846126254665616441252893813792160080863896083442749098566121728661917777346136231761113558677000651792957503940028137102365040586264746249387311712211150847596095084484438034513659485616485038247940693272702517477472024518778279731518294855011725798653562900198840791895966810662372919491179931946998733213412511186168891444647950110867826379471367087891375637955593612504150004843205599970701931627630571819622277823560520759336520880247966837915863548178139012220559550416178698875525890165476721252614699876090872528203851925183083485474667614204800037233009522859277561270131121786238550485652612797585845090336001060082582742042253336696632185960417394627492404997968371039087734221727147866502987583193447622116698261616179785039494676742949700864055044836499665340803471006918772219584543560670929839143447190316824954671377315054541472796518498810688791294823573902018220464621501139668270821080300783825275693111092054800101053831016095627101813267726242881415014867727466937340155586303242214681733711270658179067214624026001549318823715342500172879090451155379256102155083257001520617362938090726582132322459782271663756799816997188632128129481780321251132018677305846743039356663205244165404014933759703188014161075045387103045776590948900117447861599816565117481811370946939820860591384744697901094582084918846006984112978602817842217656051827365822440554222499364147225257405294947060270447238026522548496769390745441112532125604972527110556480450116874123706260978410419121678494636245092557909134835794155333517169027832510773471562740107158557878348372355977756221164795430937279668887324026834611659263941832884575500576294333988396229171991379068515595001221368168389529327015006980738764772910596259027831781604582264295455668069248154288596330948760725842873313047573664711243546122374977510497595444296730725146235319368425173288603292665218374377181814179572984668145037388841867185862367751194851637346157306217540250704592374901815924379146712704205631705839879955308899515451269775897326046403734267622649345992351213958878244197801157242287078212225340223872407864958235950402485397871497784002454637509796559514518090922603252087885836012712775523949470196530031978172187261996693496815587420000354164775643785582140633408040794911528570106792274509967184124273798777888575554891127460512809489427315196013512972110477188857987273069152247170037818770329597816372498824290600314082943318732347599911191869148372296232413729363734723020390369285807981893813432462539494770227106758024574653973104485161261676570798074842312554477631659956028420049618433514642242069085992570690551612626228796376137518347025951396856302022629693623450178325082896278761077620956469481187800286552778480704737129765824826864613872949522205740535168868727072635167096238011633857446577944872674354686632807977152360300672455899216764809046209830551609235663854535162178925695844007459349292732058573134712358531889805372318282566779805822291409898870604036779436582297206116406181663955012067019823330064339280458435448257030732116262798270833316060608874687371305512621454164783320323485026255904334239329736439344771204303736543700330103625448542905409653456240521002075772954484603583796621941719396853068380688835956210308224424243454427448995293703136455928189901664712744822338179719929865924402438165941371946559661910866308480355413011187598681446051979558634539810803762835167568198174213650072821718495767978273497565225496420756545110374934517723261197968195754659811432079333428910888560377165110227718182995979304455389030718854557607185520844219112987187044692656332127095074947639942715209330018478593662373709209023942287751480370470685461414253345019164703383301298592627979912407910327109711669728480210579840040332235173693100873072996652009521342609868791528070338718054140463622916319882510339378001288736392455022155731976572196420060162600164124133858104810135473250916804037527202734481445301802167454104212980699730600081039363608520016904748343333878625291475147029949199060576146785984234887407887186750489123117221207919312030231565255977849612353737731937438773229903527904383456118464969728909720877648713186519716866198253377358597205367099268851996042925099493742597918434454982648257165961358208636716084828776102135457559993776360161273800811323897466710296873520050633564666590094406470132675391340339710899374573142094746074162570328746728017543686713642131481183363650057894819844957076031536367727895151443242915485686162486759687792433764869837574662001918952627616737674521941082652475203553896133907689521257034958282059232809857085452431067915462685534639319067203368688692454051168406344915282157418556399863982073323464586680475733267193627435694499859257618934794089346113753123670403819345336056868946604454710068625604746978591883368684533599484108324275024052849125759570706925659342409492415118480281730231700549850098396248098649435996472308789950280668358880467316810152001136104935413485121471042858606924182797496426417367224739483537636753090946220203451197937042479794218756696612391130272511106396588582485193847101935092773510568673047707065967495932622671076497598152203455498472597679920159245267495902352716942342652394205548517208010569754880192309099170457218919137770755545142202875938176782699393263855995019433143876218325256443073650286557657816599074206233106185721404172203134239488083662807806698751799077730050206418303821180296377613129420688145276970780957216109774457893919888762388613193924469852061442168594510400514082957241784917503732087248632922161955163507387423341952358473595843139287896841677082906049902329273580472058520141323015952090420705260860269907029552273046900119220149286332719678375459936736832792571998325599251574751671259203034354632008700149968085280662558072650047153105829577092360739373333074689183138204365244032837547403052339066600847004022896515000077867886580842945644619384146224576938740985726582713187941607295683742071272753739117261709284690608564062948026336097962537722704306355933384002758720061135243162071608509352350904050504133559661622049757824921056871781966223829803860611928495192144366868362989888016850679468298256352081339990343721210594824884377947750356587747130044296451634546696292964078308600375942633394146430393201987764226586651533035177561074439975561305259428374060296500596574689893849611598499615038379908264400483488863355976839613515736275378590720029244275356480287401464675899388441255839273146813458043061227595231025525094905328481135669414370216130700656366246613193786311446323197294831421646591064351541854560824960680403191240051667584038891624905949832732600681212574754814673362450693037528396484985445985617110845431635012530833538668363271373905783935362773371274778309408621921103768422580920888642684714477935308004843246230364023018991694056435017363064045925431212836994397908769121223123311480228587207002114709737495328386281753902639876761409182060799071146285985794228747522355501073072880799919613331391802583881239491879269732903443539754832099866075393120167607845992406128782292459970785058963920112410642007999303451500393258094858529741093344230776631238569341900295145182137586816525864438498232413550221517069426925931597438363386732364072760116768978659679195602541724916737125311750916812781712113847850971793241750018443695019047181811434126987148674166232896848416995603626833204980058213273688639015071039990700141455417298143053469080207757542632524134304849111543498846561547568731617905524546091807713834064847657652903659097937615853643003212762270838087089652987642193247505952304221067734796963549926445402455788899392635812658033465281492334605820796973714198964750901781754461590831109989125780893312916978710490159721986844551286687695265278748775413588627961627753253547244643123187731074373886253273408823989385791612849979448440902676376371603027804183415787881069150772517705104295119047316881983008182341276112648127999217013340215309709226686723899249788033833481231337527288618569900351623160136563274789232834257667133387694503354402787868657148740699025548045593579105597896430287268210424858286309848878484339311300491191383172531213225461744285568041167033406974525335901107596135294255584026266228250842539734753930737349411105828562919338948518885988833747970173604243166116370460118164638481164359699540949899891348086798469156152928288435031872082749140766605765653498808950345199579829113805947408646968658074470176298204422936992570904327709011165797034874945595171151865604569030110078371364785054695973544232136388878359177215975498542925992887468275849826469262443986957893821851591116849877004024399785067737484744474514066438160873837126074221785870433833849120632522691753789572053290154296811854705799719747102571038977643834149933263254615796124601917620908225903277222692356928168439034087387229636058245082727356746727331608458282037753483718953617599502831463130241784271602510549396054227640141362346914228595047721511023381049046768768351803645507175274260443152779850963707878824347553403031772117149549307504632826084375000310943030322391056081759490370968464979361058192785545955968590555951861592419516005761501794754885520673029893143592763653424845694193106566365666905766043148343809622870964626195416873279111403134775193199205429636658552907045610105447525059729256205522613741947974793906014339424881974116511702128007828102412717844111605700749353288554426051773402954842529778852067449181894267065310589749916145557277882784984805528846637010578779546998832496057544409957733971175550767685020589669412817151458117816686478419206297439845376868675162580529908685459930671311727272628614946259345509171428702368201153935958768108882344090622844754975152412159448137826447944790680289250664015113268668845427142442173374547911780607660285871518606663344821442614272738517225434324630351675965195228382938307013666285568828096666801197121698084821168419439229828525592821336015277571458407407551548078011312483826229686788796812655900895340753012576081845158731870236170272714988103619714123812755723958661408004551626666787156400006537222796890316629017012452619332103697717591255449135537329635718050131642734060707615569930551963801213502638797408148221590212602262920023762110084453655272771567226826452248929869066562899615337677691200409801036960421115349918495211665758070663757448695646997695584545315785516269612333778367423681044299578912539674522886898457127979799312578219675280201156473433859414983964538431727527422504235457771325309339208360590348709982739359504862374006489207932132818788373828188208254936286362742471289097908124144782894728472508984023531374081798762691988362174458400409379180055691449262919378511628374855222533125135972506641440780910474279297255666939590811451500779229159882855221547614457088474661739783854749528806847666964807247812260424827118039579863802928747368658300171414138716933716453188728943276904036688825827226044448560752343525409303475955258029511406179667844411925747838827875698560423071656769457402870857075896976753155297839091164840064682524879414264449661842139913331303204287827798032043751601143827776144866807789243103494713360139481494098696504301469375922658555009090599077762447144778694051841345700082419725407574844230904069244573521355711015455252851429104987467677200132050845427069457236687782657686130495873669758629379884594623314836544284457875498231523765361154124861244024772662806412016143788809612059230751928976620499468466741803489898424940164739694906221895010222192963456252040207615323442788147530357603156718182874274140053204113232219848038032157969384512745618986938501814210231174200832601151709112291528516954234054103239535360021332345445280191897333514750976592710222677312517113557301857531000924429773180822568232878408761610892553823433170233931356407423329786653663932215470352367471483427803928710620781507512591307057300643859230555651561653930056511237770613036729225065691731582196277138196411948307229695575055278190461173816782941826549432736953416023053268039660922796768715625040313588324547168275714636520594301119578503166495841821676660967843051760856071987637645922926439026693573384202839664662415361443318314789150791204172726057461498146269672462788665989248160943635705787342053945944221006393463468689203806219471724717807702108759145020521329052531210495110968383665402946172522594688208652185044938077984680222957084385622182795936827919343360070349649462355524477512102968204374217656101586848089860774464159993300715915328172724224160253464861791506099828358317987442010653708466265681252103174063832592820148773205464004478434760798604156468662034430055306289332510867818816666324366812772996991274614769217336902416293484548638067462198013959084029215820949933392616776172899412853580436469864713837136069192070970063477668636302651290573065240335310845974607080292607455702454245780615817687905374220187086928320766949974866962458735757203623402627670182553590349468926111837015198200220396803179417547937227412261965259382225302490849559734377037127097004745645864031106109962709678258989129310586685141330137525069742823461343841359332638010976043758962691777997149659539478576079327220452073788559356682112329742298701695336839122662154821353503007599170497533848550047796106240646263208481336816741073275868941136411707941339548443059504327771608034378370514298131388694310287271904999147196966249856677145221643888803053127447081897579498627905749010820519865593730360066130768751157163241329625662682705009907172002960995400927017342960327680610800318200976380690091408174139037559159219958154486205372859178383679235913197976906635715204973290677035748271773344743795757510476910102188835055311342401125694022876262709912274388681575374897712828080227300441075008424900169537667873189566984531650518306798847593700288737604393441677917712007139776063152117947847957821558037352207971914348212636666973250779160188650453820719012064904700366125347610671644121783936437332013388891169325393740725679657484299072106298704241191703610741766404667819666687408689688681136692274523062664633847786680372131196854744743505069753699046113381117798222574794320064264244460600980672691104456111229850735648635121037173341212377187963054142143711061239700926023900832395456024474902610221936393607507728623408112507441821197636096997687197008043730741104760925501119497722466979394542698282649979564112893979149461597225710365550151711493652983974518074926104646761218341164742778141826648523936527863243638542385092400276255333449604646591583352747530076264113933941575200937765783547845152549960112366305653472607189981138832388369406258045055935247409658172848111386798976252416567095100504132687211651406590707379157498977617924285791679334135842830717964550059504043411322128405312620650314615458755811050333891477164702812793345782935124713527035096237290884424126888146402906508792165375905129583074966822443456255258135930814524103191714566406503078689178991397141123307981751107210890419094975926206480305887432900615259010643859612288228791209977838328459462053450762081539017088663996341459367992614008802004936188642923690618675010465872345552304653619083432022131378307253102398433555965329496510708378938002460408205076268744109787810056024097592963877460786357566360644314706209033994967328611682976371706463699591271159459339365350343448466385140392767694072104807567537238864380578064687532941998277964999156477652964065029996973457600834572040532354202089401789061697754462741254125813621029559986356165608914531396388104250162632271181318182575529677667603953711514000922993977735453822523249779058698352751845407747573503689528232211231259161646510570659507905845376604941121446087259248197854426366328013524687057141197036955481695856311332244320024787794714212889297702219240404717343800521665525865955380566648020391227761341609235713681530735789729086233382552878730078855798000107290185114801262900180855769752558893437189682017931976398844438630281934947447891478397576943237310454520118677346820842656170494218119284390960003656990858240602251713484432628919703114282969281623101273020577867944184879417823195150278895188389493896195706363597514632377440454893672431492060409987158283225140065749487033225277061530039294723996926292756142058175371665198254368695921502420683633832191671278267744608577432002270530764705510282989878089564852757036732477716352034569987448649971798806706486398805456194858606273954203342004501983777107725896789703117207324678653519345913313934322066311219885182779840928175480111468044355350637958244881122566870805978169883536326261500736892023547418182588421660389080157122827473608714376771288726464348668557177608261265024818619621621258414317812983903264450960323024591207957301684484953053810906010409716932365200104203647404356396689825555766953752951708082537139279302819858118325489789009241979505093435904027579961566558533627033071274765976615208562127131000015381342381688146490434113495787190915104349350861199572002685280266370864095496923400591781523715730266974785261195829213700373546152804832514237327441918625066679513099974197718697601955870302907641307441861433926576182690431734045850499851412209023757584511462938510654584117300224672240170458571333469493218480570276868116744727940491125494661610100977816050817587163064489878706994285009278028445038037023494483318876395887799427692919382575361741004561661216822674770413238956344124961799056241386352850003028598921062897838906723214573479944599518207988409862633145673037618989287447665484094202873258850820717122184417262554311027722762239895971014199748799114594573470351603062014621994798312301441700191542182165694445672222307150113746969775066868071256984496536569179043341127782604224533186897007559634030918656642212146365597488449766600000154199220774867681048200568111609763891124226552488942893414570900501751975853435410235500461599041444604511790612053683752026322105237778038649531670143081930530827448051058703636821655393750768072153198970840132793247240943890187112509051176389221785295678058329708572007178180591370866351341616715096733134010044060585430626466595402749417900606244348099947183257001703855914216565118731558586680233721728165038688029546933614104342092651398067977353803106828099371919665880230599226161731522016427167001094643337565733850181554909186649551057778996725210237890652554193022761016773261855927705077755785905827669054742536909018386791455334017664327407893042546798681179667117840755221230397934358070204222266328666626798930058229465236617674143261203458418295305320248337755171102090984747788295525706196749001709844948212084605764332474201672406461172289759601079458313070110689013478471514710576709616859673507426509142461066212176275887122141023132067584058608243333070501262235417331409387274435573151120391839499782489091722690754347579517377811268559399901282907429021424973028635369736435200200575760100249598988745606467968751791182423766695666896478626277307000403189679649921220011121838568124050999205854034275621519793932573928075213432461598085707085578481745002908831295590433735567888100342932425439043637052113116656495005919599959056201854150629477799519348089562052623411434271427226034833136628059837132582223942132241673187106361175672113671683428986008056355159088173868706844707410924486460914945704906869743215270771733407377666616142009838603083637265116836545269549282952092211973566272649036155505566058270278473239301917889197534258601364900267994732072265506606780169160950651355785862213591227514030486444506482856387921253816936376327606332397364019099454712658163706875452731974977979567425973446822257915577500404035968705607888556569138480104070361021466180360137979514114057008268206681205752063786896541008852408371567351056081039851020187715457798555498983991915920897765844737822881561461472216668258318376853091075299475726213765875611645070060210068190032036367903749633918599111197293894022058177495566162209089184708224128454691548484796055219607276787535604715581188865379346319067216521621496082081222148912683218050956019678001655227178577934952856989138787224794350496607622426901655838896590564070855805975895623736401336371029285138648511101655601415726772877191369270696051487679222271511661820424548505098945840277347780911521997877459127137289415355384638293963011578147127593626907917003512834688857444313452639017199141223586942699681122879545081253851131340238145395979436321521789187816306650559783302648706808398772214708742701784094281118987132533387840590281700437109879049565909464291816665489632867747783686387586281452787926719901431211047289572417663854607115993828934828591073178924385887667858969192761405596588289975553664823194416912714686711723666064799365486424194452579630791606432684490207204489078010019444074092696043073338466915055072546007184765046627121917675543101758552728285040585399492290554333792918561489636534157151874778160691628994865338797799989372360760453808563053869519076788475655557824878506043046663945647634089313651227312271120809012716959332356757162163698563756026725323872576882108031975430519880124696813212737442484576844831312841180860075818790669977484058209940903642177205329461464333583852778641212234078702040640838141010067595682139302650597293011355274137590073118969011785227177668250165477108087851402538191292815766577786676870306711080697739340605620895016870606770513260386968792216066207541125617733115346348636797738517889476416484779842645390114989939994184285996274703648713786674773344108291165929123348365118329126021381787742335703443139404425643773623816348896863168580984641455589783336722885955638381190497139214984276312340434787429617253833535552903042355684067460325878803751347612418286440031237001965753992397535562286869547425486703940286159310262406379033045233888871353166375636283864187276180889898244073148289823495993426174330051959924103850299043264989719840939501774081606108389690294735127967339478111051332649171842749868910444808847328933905496627166206238804717765263730525978317020222769524040914950017536079261721036822064352131447487513085134079036130846811900085619224813488042375574026105520752973987816026662975124235576549233549843108106940515047443548455354975567136356105284628145843294770209998492378616264311894028758517546962886418395477671179518613119971440850233657330982339003860588374732514868931642009765487817802285620813744308785389581426261391252397016578095470520770596021651202976091508315511852168524453835703103543729077797472195268950230894851891738200085538031834681550703973575924569278740827575445523244580293175998283725142500937403075540810816122036744672490884936850585276301651858645175260743742215686886478496505236859668297725031701967166894773138281140096947283711006358874550399847707259627528428978316526257187848222623644255129560607059111361944793130315239042015530873631872543101102473344059770297305511632366083284342990337498790761324568541018079842284092551376294622619049192496621808277984811148675189209137142038184169075517568960214132983666794102122726019356970169234180255862574853875716649645398292119709721431486775428228216711140584553111483443851999554073895755280462830206532849261330993446528032834184112203195012859534843467652032387980071662401333676746332388644045845710082490069880852024662092804365192682684355452667745272010051633884646899167625050608054711172922263121420417925825314222524589207300099047881079946773676332605472344465764865171062002885013178197154339644760796408822762821897292783269346567159854288289258550042212235770180021813627417186448319962010712695600369291756936844127443500382707786769075397033904246925762559808318881520872901110758791218592761252275025545357376291067734287866862131272853594516229689305580398347691143033377869801671040451466406540917862821988455945083428455995831340283597982822590251868836690222517455595945467496760636726808428760726112101977574335993005132790169766837363709822562279696624568363885234452051922527639232261549567667022998399548710543902102511135224749615587402247309492984094796084188752556838961109344871341091179717350290041155762109972090506295512340712437044048474505561452543842655540234537490035836249796352210568875247715166508167937033839387699167011311212898681692985598271940538932118463052506270400757664493608413705463433510898282528648237872203827872147111139161848415605026897484039906609432483295851725136165543078700085676930511259631819378142540871318963941213388459343802941067971241736002914625231873212506649322560621268676914784997063943852594834717162536510974001941785288300224318747004862985410030519514095242880535821510117718902812972062826259898575817810487289634141977691159298153820422007368782444494034222920843977709357690427776144512821716851161128949695126700245992684298939367677982249054187323286662212940754254035295973449823563941181477485290956048867450213960003655138691020707435483701032393454048400663449688813264475762021570700020646937232886370070925934696945311737578097674738754323816775224605272477806262812511011926113103080208923575953807014325145651671700057854610656195689890653313036559455880260618682309169911511959524565014083961751391487919879301683751063009001764790340909946490690395998524460123623127457560281649534185071673629395271211156538378184829749093570486482672464428957854442149235944871406618241582129561697061819119933049104457124771985778479806254117250312515997163916718400081242009787395465316222697133049533277460853736584014184915878203290484282098511334938535414325702162759541834265663503703537636663892066691246653943927125528390414846779172311025109471159233529729556819638743933961400380367084711548531307435728749772147910208820165264556746633414773695819393028546208491534428411846100753810791881640884906440649845989074514640746502467534541616960229117321590182672512073442261782379068534786384364519805548786853078284612082526650256150184391792892780840315370407963447386078139672982524664750952834528120085619431647283083813734524659261198096791490951851215852854955752861615673814620311577056803522302439773152576295180821391029872255961057487388437617506847134264454663038998827258143224785273847098165801553029996842933641388153237058083765257878893916340028868365828995618526412144034520883589687069800791643987973067184368838847831612854033803059486711991776308876584327165162929928196194712654579321356518099066160529386906322180932595809040521268237897791090955598080412526718138461681498688934672470405022974342260811694491009471196796320697991839912155280120523020266036624041508818661185252796396802611924410111049481224116880525120026440824801680236323066873905683420672531960001083781965503084690566340628001469089023205502052458303306393385880697545143759337514169828546932402215341401410959757873218330190853348986084389961216527568802778552058704326552067227540790612400157439330743019092411587525277639830330092386196840562348479487972078948361947601487219294343991369331931832429505522694561886073622474416055504755676732558634645079679262534573866810680945959830513183552618544546912465148396874738459729674756172456792904214255641003560463847303639343096665034483879999721292986751256338163682478750631665137154010684791212227575690246552038795143525144363268901894418938580529873464429399359643234292023693741896419243484216998743692689473367674920108396609113800034887791885537216282020551934773174486172832271923658648078805589640436246080859202736007820942885079743339159403679706530392274514064869480470498330660728300695410703877266235631287240962214805613933426709477894950006008512442972309492842899166280419688330291322934653893908530340139011988556513827438535729083539106548034266009342398868862961478114786229262537654587631226929785881391612600104628664993624577558769803107626107239785019549254666703174032092774566770169606310569345393206632628667972899125654831270567409030873701508112682162953936131340069647379014662433560429426859103708561400244794402435281103558709414690871641349217376450468181621772846654625665476014348631384739041563047927795241616540504439423646846154443003001051041004598610546286050116308225804416534267306536891465587469495768982183247599555650034240687073707697259425235826831193693415189739715287648540081529434798802168725900521473484085411443754638802017594492816477971385441934020075887885098406811526606554271644888548411470900546589273867205111091319375882568294263942918727049164355041386061991224958415231423658735360065430330861683804232817133303694330675523263689322654432442090805083729159342883310801031614292788095003811467633518439335301407080826087915450474075203401374730867609191632899036595471397215459231649950837688928267734134025343750504115185165899670809656772881464739704333053528229020417264642168979551079234708979458313198537008349017839504444900153337127172918559312573392035750071386574622453483526682041706720835005505777884215770232362892307562020923322638587862098779889241016218520976891756120613212313035385498949779114715076535220395408357036633862725677296521547836717171500050316454485542805369169130526742426262760774295522402351203159370915036684646872365497552346843432449606061677794504118143350274261473654912963308169829254200370046816954711790805246331509576688667544056556886607442048362415911904946049013468922637399931875247603269104897230887247796341476845841257343130905796930246590379812626281186720927429718146748344963627981703755794121300168975970994015105009301920923539796728747620799299917010633004049058831303921104195835501290955937693967118982058026955359699698496441499670808426936918024700177367787511731562270063019378926128356657421913704294976201947646357439177335061987804406510256108770411726807799673790291333628775122895358723102688660929977465902837322224052376101442997842912002474510823417416070488904812124765970638526209754194229442843744935243610806563885413725529430589729435443926936680444459569169373096225333835641807137797183592116682667459710799503615456150663418534828463957006942229562150060167724763959365354324136879452757163124425276217297332884455595451918148940573404848189687777624903159236710358163472731096443067654487120934193248027225654268922418546979745433382117131654115186264562469635345163368090659986537922090763369336286839755986093020978653563551818747003717551046916355497389982856432531388404193129615692916131565364731990767749914038263790671496639050541918276272832358431881035421720311231174605648701178417633758482289258707001564563439078936624961710630338022454607010085879166425310034842370067671101915652591166351505756861681078565534357989325629585452014710909022499562971264542836510955519163583195195305606247892695292032627585873392797846219717304036756614003359015733065599742114730521452827077365303262975779944474511511188270742828144954658984921581443593088856360551725784405891888122136427633292411208438292460079313922698176073099370557261132744676076831520171248105300566876068113537538108022416221241282216733112688715655671522922047886852394502764798987552792857439108938816597825933882904066135451298732484874611842017597344527022169733412353075495699212358213805508147421171013261186710140475999737145466124561518423940786738601052193382975741614631233612157425146550640759102603209250940213321665911722234488466356178430687916054966115937287445405243556801530768555143911634267873941810817338253382962354533076357742643926302922848660572651329941148647441990183609290262932394092437357467075019817472011045312131878844990187886471413200984505917650559278622147122751502480542577327297986698558348996187018734299424561052723041995355999955813015238663784647027577017032238566526189484921054149185003286603589529895131733301296961752340745878642507614874993149140901522118030063639040286185672549463381970498775029311918235944475187592845479710973532545239464360354357397750427268643544034641925839951167464040343649661365034985085345412349809419582445635002145665445180742296774762482988490649450499024753392091308708190174214047272520843231411506360466836475262770967450080347830305894225664907845173640432342489617331555580607677294491295328911590129670577803175626709034082999777858959920857861497355103334090217328948301755232144463645217299850233561758526774793016261780379827981536540946852950776320855155306033666039412286865737994183325262095211725429102797611755372657160407616169266961622582404054080567499647364120892277487085202919061979972698915981431926483175203640602505522719769765138445137423263903128492720267245301028491405495479862101154941446625029110171450073390257897374612939654170235015494307160590555033760067853522741262809709823481311723530498856313601778579351302537213085413959048765596841021521063193173027439420162459805408917640185723881545285938242772546410613492955428863572285768374876616461249639447483999388837924830568081015228051726407340217440925232931637013717446875898918204626261778925950171185671460578065203290409357274716411469964728263755729628201603712815986178586865056179704092334806466790605644829917585983337676676477007801660445583601487896281608111700901474384330100935844890878768535058400441348263432590853002800099800526090882366184618675290523871348874157899885468339364593190038119283802236107960284263855514005114334315531206390795849132919499348533404734895428044343313874196358608357306783447318447450190178203169055440863252396367364217354286125219157159600293504814731047279808848664947959378307003958557504379243040874740182641255849046334648835720238437407359565496983248471115762462407873629130524854185613166395427060438764242485497100223233303645980671566547539099205319197053302878734765042680032041201198796789994984399325882382020590037792154386959135021591866459598804404881865015588067784972204904398310994978699743871752794921397062074033058339845377506321912246805725506075006215900816145399680814289644491039839729698099402887697761772993795381708259718225827982723964546255882770630597041316136307887963413022335149553987884337786935069518897996735168077497724317089619940705538576921824580164869244261186944659701545804922393343616570680442717615953984298204036450725705320571409453526900889320609144979467300240156160332080024757602388598772087457734189123763261621229497348007899671637792744585641485711779569684176017501206936937028003024317232092791686329203897579617144880855518953736765667822428991778867434405824442588616253867198208434532852565518376041917527934710721236437928389677336821234606567879577201109061348358573655243204201714489113546688314967616092424191304702644808603969751929170826882070642466890115008536707896618731736162445872230379095256660837895825996268877121039751595129716842293756436605701047250950166235643639599485329253304332184112956088603374940420136614717673817590755540814427649704936737414007798355345510764120205807548315151558784858402922688277510314979954872313769053178905471737533967852164691110967086441748440292285135904331241147287551286732269164287452408406640775829881033811411853916825725794609008150646281549988867675708520905623061707012129427702406447490230583983121399306751857469309787827283171208820520574022445929173336578174743877122239213052547817507101474362125013509671370521511686457501974021300838014906823233332152789184343303602336628507756282065238581286884197924356801927634375282632129211730816012735660657001923741738910897714721575268049138679897220608418332517992486622447262496955724899291365245102114733549139999113894337961988266925302972294425366050303083715831283259507095761187590211461041539683674534822638928557704472759968940963792728251468823904744303673325442563633043328876431291448831203869662717604162344277710112676185007373236323419325724475556620321615435084809292002571142406610641777304705015126678419097452001773715844992359822253648255569798597664895563361959696297481139938550214737035595086872264589743719928749128089309472325743042856273758897217708527793684106630789033935552898470824477860049227725779775325025148206772152436420839867979958888345349259397557289224735810790225982329465772229889097373755899565983837363410192005558724483639050740543143441260312575587023712985167650312050503962886955796728131421582562889999307709180369445373854809889115564728827877198942260545944999111756614942209376565433564924223969712432995201969668056354645153974038400321762494396459996150315241083081632457991051030486343092295220107535117892367042208565584594714090162404567255105083465388934250336782260038167230870823459990175355010649475678860709217139261220555784794046407878867968495000672348365687105548332000468529313327600043708012591608578194793351470632067791501564862155184878704125066220389427020721463502526634239174645361205463203171102483212536702696651893386801552078537927089087651250022136849314756385523284642327431671463875428980775772917722879611930339192123408288748095248925011483783630169945058686509143556094876758215023607955765337131709052922086289840014645227046237248867441817169362818147875517214885514417206795060973543132588642868162194343192848375782601289389922817085239276800236035600843666467578556249422595102388223051365102806091831801016690907619477768745920023302313494492608505723112700427459737971296874590434208335099047790963852383260752644716021397495047400125008555853912564476933648934796496859291590843701172828237142250088784643935756397905126986875911899162391974126078839000650159753843009957166721352175150368735303555961899256949888809602177796978453046539693686744577211909975801948277407062002683199824996097394814457526951053842722761429432559645208567392304080358719323154915983786022734367861373697459254468195512630600546506212703927976177767301496613351063248478164623978114862655105596808265071542110340925997071967381630969944750325665796350566062863835713822091475208018642320391649112841615393620282091037253070207463002561699057594458942380223200376243676317642455452739820191541179046741848117092774598030076116266426419481414868741469347395907398548224216562515650372456563962442550588015246549622664376123196953360044568687884114180196767001047259539157921572164652688941406984724191014098989906044499875080287506006168541760405920487418094808723130079726898727952579134415797268072880917153362201616003083001361763550066601044296541993844955491661320384841694164937754754194754570991894391214213643410683023364724003713254072103790596741916144218688964279830476299370569392110639411371856116736047527200093164908744949692598114082749966646284232717622292907269140900409604916113383097699968766505795553335364921500345127705912552990589590798865229289247142313695279429965093578053639977015175902972167740683598222435462419029031730619494135698198539242919477975875338606143087710906611000775700174005302423048158101795366994309748389784465637607092106599185325905539250086767405443923520694733584062620336623063838004587122809653189845500353694747764592759215946502125344201006803120405793396565040377970040704962920440758167080699963505136620339145807897976360929148903260554969044191760355575898147948457457052802954556720933991923681193310945298617647512704350111205951614212587884964729004425025407315247746755241698884388291320739650387975360700887321356412605313594534438789437927962581906412954020932674353718023111943011849191507048938075572815212495335816141861161414830149201049374935512940888852316646385632604483569026004942619147844396761176499841591252432925169064472404769682841580914460180038350067251985151680417157038270634925832399808065810123342720209235040233838758711221586415054885110518974176058762405301396723118895619507378110731423098203528695023348575807412664158414592633381313469710202021097066523096429347070901130569692405508826733044083502228508495794136819874808535887070802422487193830891344710331238230450380391996422201662070539811264184033518080097364814376470719870992848417219765402470398942083570560272305474363456535017214031163577972475245089606990519878805461728046068816931653589285969823748837196032866313882975956298658424439959052072527003715978040995499815719828022370066372165872733841337814155453394176582326055996545420699003229656025747572542635842790098841780930895059724693542573100434112489277053325837637960596827945903829837679965979474173471178030311556559621776146909243564255859552404545695134263821830985199769052647379801276771341597859051332006368020407131980989820555326398118842781181382605081218147735905068860315318275436917673101837524355106542108127808745851698830314741365297719288950930767531224084488758650177876383491800634897456006721138503245370165417490942419132608775889397292061838539960100861200730626848060881544602111419932277069416901920427571296747389668088529969272029846213765447852359163422915960251545930345636379701572805647729237957522736826739314193663210377650088279489905489407609334595123944693608078091584131666010167513092668970033476251558966497185739767397733114366240174836580991529636056851771055264186248723604672612555703671564982639614405221647691195342033529147173839783172315466136020386260281263555442453833690127216836021825601695233824617953537166082426360956917911924855122040554392720383507571370876952171702129994066315483049940527823152066132807532009373324085963452748906036951822747107962261965545509929615909398976565230627570288390359842897134971718251515982272255468486978694009622836449138499496347995045940866957477473659702085891625628642301129722524162165423766069357271839525266103265559909881610905176544313941441725197264031513374469650456631281390565859024182916317903818848047365152988303856832445101352353085386559930252280432449351034074340985886626895868312586565411351401932596908311437077634561136613060976073944461840789826237230219638662378371980584427308267131682783777144789760960897464959585806719160984839925654961059201390166350060909437240094446630549945071446249873239415049242108005700476054367130137341804197282870877149236988966454413258948075255533630545175227576737429193190933360441544369790553231757791330636113554807590212578627424512043874939488718273327753525985549987926185465782286330085079777269095416863084047047544016379421650366688119630792264258640935075810739415392477807953794888844087941655401684770420904058236401678502088693085776549049837411589882519079419624937664007675207678471354734795873720789231730937210152422239370313501904695997029088680122026372737548192964908354940590641952500456304741852981486545137007339350367626114670705370793727489010658275953420540107929336855187677074603583012355075374905787988029373946132737824048413518232592090582664941059649483453788221428802066104834827052801701730368961241791624657306287484818258433961344707282207953945298773982818719249953998138317271302546568806250055056236261642348595695582797731756028402338971107673169891132161705195482157997393720447131924728190264983894470169265670924975922362773390131276908247977126080350239713488665180858242407414053500989965476020919332152261931395653116894466745716652286173258529809385852958411240659345639555397230988246848253415752048609608662440225777024754297538353849389636289810084995317108050830469502892881861712771018053023034245225503076422805598220880463521786158526336106388757963652069917676969649387456989252104584373207240761088862247475066146528209726869772850908434973554028718771648752357609186012581363424032167021560340022037625131715434066639549908073946176046490932242591572428420521680160407053530809272441409290308983064978748293021734483527871567361029773880895660883536102413353790327738381309858542202251096648644582225671601835514041257070884869184165519870700281604461710450919892735484182713175187224135227272030039029079462688705834601386750739265474932813405157570385393111054536826881144632702892185698996939089288579941536819127216415593698271722963438897080181164001676284110436958507979416280165054812103339772641460497359458007651155696518802710587972609710043388682187106893476197441690795695267667796821544145912240116467615496802635242465252967826121364830257720013321331574336377354605266624259489181399236615691275190263130227419788872701321241239449376030310397135307749386446790878344590700933773603886920105711125336956074221964264717394332998662845571440562769929759328971198162564659076559043604673701952485579419115098475037021149094551578064776157668569992134073935555261800273296612566463983656676189704207942383869975382660773990314165065909514247791420664086528624015142884264666707445101404315842210193588077553610801248775121189996155286252647468611511811784289503549367189060568841151048486588474998183710446703065193112908761300911360012376433030837670239392842150789814707516531537618599107748872237074760637440395576305417674548773463944123867018784799320724483050190449788923618022953403806140233032843550969053483416777054218448268814928727564513384451976650388041126750600968100573600987512125175481571830106750283200845680313345003500628583041174410845675135829041454991561889588751633222975061673394463902628405637534324768356753991272679422936557003739791234633629966939588143167205505667479540832649719456455643740448341505213627216593613670375482370022691202535323179728720841204807254683889789372936256063652360688491508899740948280282512110736251218909306405878169319467511801786775180312158902794494289163293463411467713447229243189706429068552069051518483112172380161309038498489602319271728800709882654287626844495406512754358032357038671846553335816149271238318896687655359114117750658387993478603963566545622686586725886819773106100326864553853967924890429110824280662665394272489312822912975277223776277758423888320585258582379798308461532202350366369210530080900339864971501620446468241045277944175842994209731220350797891681444593865923984586237570575724185380958622104827473012857120688532362411176475309080192508761544925671713432176867232365127691206606477711348379643498025906492943327410071533473695550786886143103756721897332169698122097388992861951507301050444284791118159349419781624494471228289258489367989871943503006700557781749046961376932287898091067422843134813123362571001123295335715119363497821215575790592401425986373288874708809328358584772753957321084678379098866840437741582255786813410043115216571867444308977827700083306308413166215318673790766968741731815721365647277090700233602102152352704351046820467705989520915709587897584718444000976643019523415001133309050031424506536308740846234749883532052294253155768856913251174049213351683519964428026920097799382296200801485077527722318213550730653536202798502262974266086351371125038997018067000857390734204801248893814953692897529879072705210861953940485332620279872225806206996858835491055649215783100165891046515288970158367076327859326489610890537659152186753447222917240392906362228410724205351279932761175335406340443865006876967236739236110946633091255709893435792020542084147243589913770444179673175032531793321991185713650733650426504989189900066396661700983204468140554726746576074085116469146042015427180085679128248419888053733995430725304512379152950617218445768310779099591857052861535724947007813634830408842313201010666150743303222532904010140487183515902427248199865049326816218753682149077191420128043710192426510681631528420124000665333218024462481367495092481540761325590192395007294600094771884107702126084457254714564234384194180132380131278603016817253988034541380134941250577375887570345112578311818746140989012243754414780139777360073714727045635648363119636459063762236882188495332333597037730165342475568849722770902019814749828424492024591052642224723685730112988579632987440233183247574977061039594490278894143859620733106561171150464462960106222901584255769785814291874438218435114277887559682071815341447309585449219316992473345113965686103334737387943180001710809978295525677143514741425867893777387001550226536405230919679505983005741002079109055608616599826609189046579785933942285818479074327696491443368759241108206897849607322229549549380578510960326724386688137269365233521240216216676778278813489016905938774968797099423476324191537586590877134022905947120890001459320704347576057273068873981731511953708783357367124938074653480696638411419616686710984888809694793339533025765738166334664099592703623520055975049588942027782358125173223179867438650512744467699835254730005844468266683194592439528931883914636685567370893907401072002383815681081007936664121926730798981633642722452063107293104883168977453621105900828106119326942807558020635400190810782932441738692772109924225412059090950710157986688037314281964171127530336037359940681004754112773625059468626590096575293326292759715511653654000967432964980257648686393942769319239847643591152659151546545227671470049026660993767384341022971110008171224948319753158797533283010638001569304069361716704120576270267229841173552410534814486943216614767283591751088189741840741458587709964715687818721209039795039224383151099036672022893646407281063788287562648651173849591108334846273809014966390932575206094094927363037248184956937044850838104175693525317904936575586321709471974631332808923970698867150913508485031658088341219641612648835904887211803035902307729020308682599162818479321990177077729939965220689982417642429381006438099448177494210422973480507232174622867647094679754692920182833539423149477646711889711165684901560515412821477861090852578180675677525707519823771285448797999034812057274932022849433583431130096958000356282369753938536508173239148246609337695469392853974706197643522544377230602327870307638168743307750226107240137872851388499947587234259964563636787195746528660538435128212870204608665615870262637911607489528872301849964110279196457582603997830456740667463963534143495710427100451298083180846262938442799458682221575888284853444646363688993268173410812951343214392244081880019292629467445645509178120437764565879906256942773699611931502403146844046443218159490385270023923948281337200621599965681471323141238931958434175942282320077013005484385004531419564480405789061544609473976047153001063885191943484469833468099870030261146661845024646985049963646416461416502772360139322923046630291199406807145530639655892425247522844588531293732518018334220888901493283674835786542663327611532318276875956157121628846836061135183849904202975536860607242905381968124292016705437721363283164927235883017141470632469209859843037614053001433918870005005047841861335227114757600545694168066749466867585783597222569648461498421819199327319668792446273987267995815574269281512258036299416602473817402721274511209356246853646172085521398824144115184200375768454880226277055777844519268640232974735343902324195655854021250491010640370639919806103883458867979154179971611561245518075278028863051627665094807974365317583433853614502919404027262504227507966836420787408139086411997363653312152021620005511280901449417889875396970771534586045109998435131849546444894527757053589954307106872896973245256764491251470939802793762788915220910638057806088355330634071409668002335774733910428846819180127639497682805360600792653296040620527297763405215786104019152956059767157058468568341385056346161771158092203140058384628396078037408036655871881682264634145345748745055535543902855669691896672095064197959449581846884573957222926143267167905990475196226755596207839270680953728119116942975823669483774238053126341447225643820302090911447887227696926738634928718384946507935722141606501434110213747575995646790082626125393192899613536246925646190138205182662907617840041834841791851761301766094083479131969484239052862605529252002397416775105999218204319390618841691277755124958593343261280446910385135481739441665987329877750367966193906663843991131923782230550222854328540239322944145837480739620331885101251226074899953177182311014698431262523555320317160609197695705587791363007372177176638525325133548298056069225801848364323694801780183045028395697075765292223095790008556881144878636279199234307259601779965634292722586003998368586115170459409378992320717504522511310768716383158393459313373515109468270633182648095790725740645456826162244524760133317852704248690185694666060322653285724354833169883295361500520592904705717552126316402654290225441789906162461189294471563420996663808103173553445528597736673330188725800097550525648353529640542559397706308128712825761423445472048147657112969416438450766254735008458850167251494765745183042746583012193231837040634643673158424127404677896712807184122735106312722378199490786596430013992460969370365066285464608560188289075856735946290160957321435666184186860420547646536059820131886623766684257719346091731007753141641842727288887245244743154472059485183024845617718874008285868656915380687781831402201978635907822574806028104706098464221320529816562882507011316652705779920475307011703218562628424335372567390487331131685246228870697526277691420380272572887254513929295178693397486789047655341481709670939065639448999095293967439512269512506164119984781118645694926586535303659724206095522263461268426313874368479757513786750182460844602463924677437020633526589574912456973679705705354871758471816251652509579495052830062619908619749863430767569124503352663983431958539816200631205179863067832260177751866734006352517017890724128788260800164736513119784807920726463808539704403245623941520146181506707945080341333150000300899428005283814856160641842655148598411160927855748393642861708024867499358947317675113898203960080527745306295879941921399974715124917306769708911652424307694559096740600883467146503684664322511512271033177641887606284961852636103085323035190290304689462809699137363927811790294203045540817752789861209966230497657715189109171303701494412337091215521806360552970363649948213906491879877721550253563294531782000188309002258877344975828275097773814503286568868872110274613804977646159453068678753672530951068179217103838683501257253594155379341357922541217756289685189776553460841577881919121541923814101207378172398868376972265891401095844464704851689110112568603505569703593042829836479581175928823786305384194223291442579116964658251096118070460524319875817006229074453900925296026975735120912097324714704304806631887346076178470773078324993354676856778545868449168624178822364482929594719573610750980040064767817171909348459353443447862940893345445927666121570640523428954163444919030392629733759890487663963423365992961609169754091794274368954006481040364241614104371488311706751985679601850249635340026711363276109433220423928876742951071137851660952704621624936936005942705934611682511226782211348295565853875800281050683032740273346775235612469215196637814133139158077426557741001648144764360001710083542486052212342654614132958491448975033293089660051945020118552424340249319242074335513010878043490515682024378881746332122072975818116611531905916577681562067554078707719115561454048395218869051445258842237380751172113311851600802120512984602188387495167500184053062666695343598607252678773495898576625879071189853841859412592597534462195573611175208500769823386781639382894102699367767265735224240437258518451319944230365985183668677962100977646810025106412284368084124315587483308509972027178416010231808009185387391013857680579661927441853349176426121048531103962370857680712346619536766432651156220954937129848290834554487615766595767761278921263755730259565831844200347802830037701920423788383360466615763141255598349333589717901777117980604899361822784577162317317529632535115454489805513527026062141195489266491016624014963767653776831367754839892804559468431903123192357226968256890795296558044498327334601396820093900532762076750729571654563441419782592043532982820066397987231822301325517134410821660760639925964495221962277059083283168478046833075618650182760220488403911981728500912011232118693005259168506570509079232641131260133180598132953355080295148143007552437718249777363700759348059503095419574769375315895007213112413189668628063569785093988065271564656803254824376153993279543843586621207531148586834264272463348828704636169927094244976400229952018934119443941881200919573592787738814286251470843353883457008428671541765594583231679033323933582867217994646365263854402446703155162948445901438813220858984281105473000185464350793312500593499324207945472748887818921732443277962675769880951457689450465112049106915017386609560656095557620774367854660261860234171484942532306983309482603130071062752454071371621381310456851840378873564312047884135269175076905460111048272023813161260018344547797968263606031360061367461614432982907160928174627101176605619987043583686298842488533539359225783113980369869606131483236709693287643071915072781874798030137585687076416159987020749107948606871638467202357798048521385148073987930504051377063569854990041695598578151342450071583373061470457486092183762765052107332621096034197332618770200288981242925704939429389629111649575228914555957681129871882132627559244699893909717635453424261744132875403836278409049845717309792985161764349974778818596328222116249146196435361031191942303850153369033765308181660733665449337727099295954603375940026887330026635062160906082314054789047824103215386512871178117561743044135776748264189378817955484704706928385777442911454475727050546257564003704007419942371490911918500034571248494473591447598560248946076505148048039832292557956979988681195438882627773456898625286416125076949383956587820380478320225313392709210724288248363341978545444815655739244678727298831934338186345310284309074217247824335620125413582402953717632016811230750147324979898911853606348381499552097516242326469933048277071063432230005311294791525478901221689801144713249652211955526394923110572828394938993188132091142058102961924609503159427264700649615638180458826279724487246961581718695823085116171607553823149682021724899094208653382762136805540736788086361541480971440056478252281477564815125506960159946861047327708350085691379326957369623709814648710457297270814747651729378249583736822881837596004441376813982148302697033323485604556318580579372728768576241429341125416439252081343160719032788900894695788633211399431268463398700261996907490203817973055458177606932737179725758044915772550658028892820239125089375305061173073807028217363081525439834646103666546710368712102819466036038688030884408538809811754599204593898984491475896490495943439999130614236475476560648429666625956742431509050128906408737013109921083693915209544538564675661125049049903775272991024422821573932736197521847452924833469089218821327285438754775303540101998721580507696347633543837358664300440977676547967861435189286214722565229337415658484816334765372505656451650823510805988507468848006519813228481163498388347914393277730749145887268852488731525291922384752907116898503297707753653943301299379348937610899134382922130413632285152724661030580071709107765172396651932981445462384336110149153093314384088422448253541323639362290744580666233772084077847285651053696273339109388647185583261231452014109814176066017018254417053020345863882601465749914015443638606828061886211995224669808317117212811475512968563327506860383971818179539697230585026637235025344143096527323801920656525589130403995786304226160024744184018525196127987622574914970514741105275598481695175191943687619508687964452542054862883500652035873073347861252780184187672003172161301849628181398075648194779942117230277213007485841443302060362500569402981489744658021616962083892350581682556685005061339932450065263900998844570638336654789804471771400775315317367589027698558495830802227579988033688992064493071449166666986901228780461807360714223890189198533748880685509058133555073681771804977964433406303706112954824666670115234708407062373833864363607604393820845380367766972838144072658921403602998851907002644828903789928756507591542032739016206620327785316301954269834470157118300931541597572429840314466320281064569623108069273852251833766170716352825314530654748539370014727920568339199109530202583708962938189606825343451954976785979938188502441285038636053381911125821822861427502834927497310139166379311466650425094546699009353931931724069733689964800086483162271565482146486819547183842129532209216618518960428597713120821078302680125308940055967466009561267990482472627055259773364715069211533771478542166687975448560387423286901281779591833430686043051608313261666735236472575649245714876999824334079117970415150352552701428058908680574727204892418989400869688707460030718136626423341467170978021468607558050883197008514800621263051293759553131272856449176743625243878343232354634211071675872089077559483916252924244229048640018354493260155657636249169798741968136414880810992516455883489663519500630155162245899936688084940859066413738579242535803380712445973309713558544645826039926938519340155129573266901052048102031519601790106423404683793761303227486248779176506174244888389971379100264588322551715032218525047781904051186254082777962241955355889673017815371780169112223499130077986953322568720051609019736379105437588376063099542915571234914126578674023068709817185962180239770895207967439047373513544602236485363912719593669676322790841422453522254572131709020526017619286521017512792118878762601378539181887279640326447145582145732899268423520688285446995212444858264889990716500741781067184545548660441721768834363684045465591567856576513389258978291926576539846525837620804233959025778308800228344205672732301080242810121372769276814024352403324594173225188844665812278865386497758097042465262466313424337665992162926084787047051622332645864643333971154947063608531110538365207152853436834431139796127432979554099396252582386517848548246651524151881105837867630160908020946642489833287176246613748989930194358703687293605215933998343410909377316718294315456023876337005346906272795444702900752765156148981507968055635330376083652054185528366217975979135812435292131210465705556814692657008571659889987765862587534422456926550165226421948731963170917600799857284201617675898076889022306583991144867740861457063892084724679503293203773633804951102321523443101087787444320847724186253226021497298557261875098156174648353667008126477138444651472354614361084876757643791945719898547035635375857184424052031699324003887223072138243169904078263365481148525382816745180301850799809966787861565291494254662199260692208348239484851032693831847417784321037615339155609018828924766874566828545829863149992125273027890059031470107437892720051493083306198010904267576485087376726439683609267840780024616148057152891325359191586133143216288935043995923061198711115496916632297881642548388305470504871800864678797998292951590782467115161116621241278318932170858513119489029372699275163240649112547317311031654003344026796996597506716424699392380041329248831615098651938846365572534802289183038105561995207810839735559706396726891855329386356479617226245516665487633289970806579450061215919951167243903979377414777197096518233180545063632578166352310131222148586556123015987776149275048039220589060684484970601442175774605309159218791041342269469809804958001353232442798747260144140753938213013471368383589550587500445423097460099638255177693533827965057963072847630622330126008242406298723542561303647468089808640751916636885046001641431715502477756312728530123069479501415561688790141964279883826351704993647293039033621954441320478931669631024255470915562905442640523571576563871038122330974299657069920894103095438724798379030496356695566909597101728777551218543276708859430952886376206295327294155771437654434653182364842371683428457835972554205104653404267211981409430549957707395060156467206404818146441526051666757811092014061297764303546930716329284907808844371358003650069274583172002479822002394066881712356267740615712550970710964616349494131946590246274576266286282183565093147346339613481961074649101285454487805555184063913377114927698517668641910382300143812879727339003433884249612446305120196175303822843948110822479396870546048153326943005102547773016997033361921862061499228328387075626188853108213997068184386719800175510818221598278501660481183980878860494347463231569534862115734671013230209266024195718637646287254741528264945708179945223661650793545822324819111334119300356966525216917109378860178222354389162164011931610788766293969641485754915591461548754156052728452771179446033513660355203241580787420079170403612760469053154656844963061617485726957923742723784656885022656507189014779166365170707644230813764444028072908577694101922651988768429325883269824970823547555829928700900300631539037760523619975131826901049374972165686113548877754388456210570921316859967570763570208227129293424502504910063837834248787908355234792110903187177869675963399950885276473212152948255426789958224878645886151860983404851972900585265829242413641397052577534945932232270757727511494207828901084007157777416197053461595943088173465570985247572993416978216579969702023758323775122175538938661617285668985613396089715146563134796779022600547703411375583345278714422902881551184997610791882018991801596853968868663107281329650662621654885011882081650505959338182397566445719456492377169781151088252117013109236326837996067143841619220292509222558515572931922879135070852894484171161089606065518084977162517981756231323416278822138107279314236098786904454815784571625377398847654000751909297258996474375061626208997829108949012449630175762526427856780778746347820310277810035617853480691509570493868315618865345484072947105760821046677562844313140391046693320597046899076728886469442576072209453568966399733220740225906486007508261354433500914235057536832499705425598228407347840853567251212577371432703797652129426080771565146089772172099949299988041174467066963504405205145240441455604166475208016140180831237875364747101434842948991036400637429955529014465663844284268937575601295600259391571076823555344590041403751729703327173665899122350442940240233311968790099007736452964241126004599218922778337530316096057979766124460075182228440365102023113364553782104938037041578255699360673624177567426182063270687782967041234437112124929083416447859165844307144262093800007201231248680864526624496623005261233685220807211993425545152826600388765629752788136630166571418955229641699922922622800872329235826631279527383537794110318483068827789251167744862207325553648035069440441880538527350803222745369962925267687260413209451357698873518237701708988821242046736107999620071404369852335179970764273480641639654132832480111822757896647351351660663133610164299312502872672324573573161988268283182238632619628114280962201488310726215023925337878848058217063953112368664163862011252247600560442364704820877241697826041769626821310592551900729576667317742630766118104401955631213010287074272822817695246830957973556368433017303852088291739207110232309464300330810489194304835086821823501223258961444608968440347295775050647890491362776788250134580020165631065457211038159119099084683253485269535664041698919028619529364578618692905791358902952165949973136665755285057588511231651381298290950300596803242321831713393114784142700536049159853464306817805769887664683259445632633607402350489439849348082801919280160588429573235240007572694559571156585534894705188348384582537470950391466889360571507866750556152796002535000143593074462418255237446119881617735319973211834865575917200650040063011302482381299870428916366224514796809031247230173704756359549147520483435683155078716111207627938784142213737091303546801139642381278549114132248414685747841751217634601484565927816025887390699731682602265661988067317610385684465884910347164679597511037257196794879456573644842837612157173673512045504257069736840434266329568942486483119072088098578102842169799559640768161452440114196288574731106606101613780829985891814625180237012822054126224384241528564136787136700240880600792080242789736389959768069552851798927695679224902935738463646462146300557356877652053917802428104819542503129332243335047963879112485191001096242867348047842026791856495031375875650701373766914281056449218789315468043352109036726781699809493681021769384665948364898646544815814165712141997830500920578061200821586309532783443466084591987748143884847730969574954899655766215632589706756907324194686019634171146843617532047117682864854808044164748200473893762913271519975064573918934496252166253547270867097260786508880062984909737915071531325406315057976964007542031929709932024502539475696191144902817578733072346297507033811580175078138285051966264486209754195791915243355711770027174906732981375073604348350179010653415048540096000090863729644330760474223848293265701935619138485083409114483563747896455872036358321087479736676412710712346475300436033308957790193471096423941256870108193337589738045043383401245016145577189004808554548479017383122819087678183796899177072626586947191609984782735621119239436668614742116440085599560107971400321648958987402439823706876279084650041950554756537883063985642946913855583362133993149264954605566139376038165028276473126061772170072922424191412334550451563536637250254105886283237422249128687501992816564570752202546295834905689732580415368000073130116499219346241839671923399792263649367180038002489082954685186111445735503111011354553829431673963040575040481668796603151578168980789028251566694901369995720186347462043819531048888540986278829237550466105372947183796281315563982780741221450398644370698594857854971055879501313684245497338794788651278166371946049977630357323313867407774930808889088802698838124294568170519979560582509466617575896055664944638749483675487377986774331445358063137699673665995459202181682157048424308117830940158107586971247581588703760360700840218896320140348230544485857275692147010210630984328659010219446886936354550880633462794431734034673898489915033579218396678872117863356739056207881045017246194967160072420921006343996369258223888978120085885368947106098671132759332840226892521904895125028835014229214264889629112738241433625467956598923979815467453070447250856949382049665261354215017659795637124398270629836136677129127680452304372567512898521636728006144811965614400735107455404665703245399765615005450255661037206461042107937008953713427561790179304885803551414842371168477791795487026714573355406257147630791416730333469434714651480805270758894562225789131434247254459758873882963078790880518302263998187212311387681373673270433550746873164775019371384824681208711308349627307871473037404161824247704784107493332172780675569335534771704750064363383916322663895977140042535695170743794163643063303671286948954348028719922515198524443245167318536852029023983593695985082558422167610668971170037738152107594797336815358917197373672116276227071535087937744924691639355016043688157740760875277256055914502009940795324259479087968686325453299601665251980212898561599447159032228989881909356266428895608720312152911062136537365964436109731583403391827082061000979526327795571006193805245624199171075416542038087175006685189875542128397556270314751217784728888530729217243182348097677383786131447776247488012062792538752772337978414109698257889249040394900518071173653638869379766162934358746873546179271077915032370100570155729556244510435176824713819917305722271303265259958478654711669015331030066633615708750740074411471359663926625967621148584622396146957815512110218997819876268711327311583321729183682633595282303143064187741329381051420716116880165530073698755220881255589147157830582291987330986626543947169720856591142117180089541862837736686897315803069554761672233692850494610739000744924372282777000946966936381804201279198981618872084234722648662116208584131710673953727903164741974589695864286094200431014205301155375804102475026570291540293337273388915683896202583059454825656519169402530635656706405418115373469989180113867828079508289707221937327436612202985949490095578472997667744295502710020253843424773729177306557638723266659084503831120241340709585606323892602043636532384889360841479621667851197165822115394969323095002616130737478707723654497478552154745245572504413787555839882090212793854348671932845891037107532632223815818224364382231003672473028897007783336067930000714019500098557192545017342180933317530678222869514609162489648403699086754973254536781038355782856969789612836173315362217970138129466377309115570476174318504210425653568187727542252725453764699372402773017927407668954854424585576634043738786213809722897219087742165519333639287656512822449240553377034238000339580030702918066196478853054402864335494253667265052776377562038421694486453875423348449521299405776089317566807712410230015292675480255069455135580890052421821364962486245788933036648315153462212824136858738945053928289195176010915345495550439126859361095944662507932090639853588279114696475409684423780465690297805268743812392925238079107716152128585354215866704348406714252780275596906666932922011989168240079897240862260860061714518946934713125564352033887290380101139307327389565621992843790784320707823162895773662544038756006757270829300526736818251459530005516469485567468664626725691295149372258882638890704465480778215535969349281771499206119245771135997037046635378277205105231753524663866358506182736593923173383024570713802287700210660455159269615705655445950864683337645805390821610685935771411642283716939277948718467435933962626428291974981335679667696611604063042201109116609379067014919691466004039575868848485054159342546181076806571280742087781030393668658715347331675872721608191303940577723481908200186210843752972350162076387305315359686412162359775418502431721748102868258470112720389032620778410674476860981978310484654600427145886470445384192453628403140808317727429873786962260548039239893367320626537982746819487756348986628872987064736586908484961066556476086620621738284537169347242455157447132283553164473800303147215693754915563246469474110466327407242091814875570900747053859676683046164810773821613176131963538061261081256970415095202743168489747504765041272228728232659283537606297675852948213101416620475261447019701878103291464658453220409878953867462236436341200597940330978755376045609733338678457822068078275655512801771293596241724233213129376497065208345501927380736249189206863986507296278414455242484543706104604679508975071773438900656285504782413556891990862281164557086739496206478501289841415717862319416776222456380406879925091525380697038037493148708821537888498928501285742043625619201462140565099096333610281979642034420686438576684912936557626038799692870270752033029412813357045512015445690013396725730270003707421385490345402577051691833719874900824504521362288707404083095318144538269705401850800527371828775631832062594627077127819887452989064285999053989508763508743452807268181359390683920083952120726777614889188021824201681301098485541755174084176103013409215888225674229907895461452196704746778109581579654349067405592293361966153045722629857448094525894787046364231030048533668881680814144009439521038561775598951754667816430028123447041750933942973191163074584673945462250960763581734824796599311468515317736392847244297512297799661552301708200908912390331420191662316839334085994537096975407314332946596388126799965191181422755850315754607604832657924079071148783128777984563452607189849417416531946726757009226547418583256115609238370283149677282473767782245646226204426519242072088340225211814654169685679745037298253461265105269736517552317439920792509221791119974616782883700733640642703681528992848836427529361166005625494913174770282550204098041046763861927204782235953692897105172645686985663646563581650051295339945674973522480548787605014924937431207666711311834909607941150330656831234780899600114152474103850341455862979242678680600237117371634199761168165599382874512419736806150724688414647821051454413061705061011944374024876655138064178226479608107666147575631259212139934073775439456813337991359997891814207272376661582844863386625094037763768710186757961675641096354810812765608495623193273573753211994212919404880531690793624559796130779153105973317886366510320455519023639014110776356854530415128358534104434207787875544279200814806433773864777417490516488648287295388890725386631710645018784944205650000804155170435384510310006377295858697583465311757445944163754509584549589470727426283761698534202803068703871234483899451371263017813293206667348362210963184304681085750781683418708103399500297531699444818770727507468653246937100842498979902894501587786585276343564904189156872519386552711035300661232760932769128215110645774151594232526374458319177216180806444008004841764971269060282296601430687471171103859114166012146461330500287490596466369493667786886743159683817694859165036293298707740491981383591853288728036986122794455733269388269009879859971915872900302471310418799767586020806602473569720853434905416302428210307581361186093216777544851053866688179334165194706120824477439478756008959496970487774905909349359036605214685421926499015610479145068988840173555557482695601932621572542794549719294581300838873508414565930085425176028259233741852391538469982013190958338476747864372891488051433502788996621715345102693942141390989693566246567100255875945579125725067125861718419143969164895631799366754501298580992536536604509395499022405285321258597595840622743317565219600538846638594329478413496304435467043392262741476179870887099085937507426248277775091710375031065556465133666625541926237415400473457122152156727865995271023167449037694283986878472347826055991608401434149458045067660851092912945784195809770216885181324158657210026466728932791072413060796742807208774963586700955076217163113379154652259689930345850854850020488297756720622004139060516982235556527207298544473129328138222552778629581751820414962942017578768371795211838081861265127096053134168935602581849080878006074073118313005164195905725962755985559880680976988404866423588752187611430183399557889353676347016352209781818181882272366154573297320904240136745284266660364406312619916826406017682158539258771772175148462878245938908287051356764792935682659177692020704284591062083959953241957083371185296269244117353291369563905327898809874720368485686993892907535194879426877982261655832088428068936392467360361217713680357583047480386243244385526738738277364758767727275838845784638648407476855471802790325053734261034718839046200624953404118478663814012048002627117964286510932457119721810120387363592314227362247927923076646879485881524620608542507608892305299741620294628453455509826348069495585527410940575902741542549612736137464371911790804436778331178246292144080977250581693821957224623354305422709359367260229260106552733754034899876685827125137963902250880187061409959501926045399509523920139686739620479582891624364106641877595107200241759150735697348962080480967382988552597684810473438850514574768442217411312461934347630411198111701176930500145965182421656261598592685903703784216722137953272736892715548356817973958524663742128093763806530828181085464002271181530404804693100703175349965144637498967202082637969352228438251838052810148370421810050237555770096366729808434333116508015817939259592393834945364225975361032761367091671087361486213257914620483358052025289222646678676858757325066853846852152069760011751510654277497664098971339121533523921229126586175840861904253192837429517045501807977371607712964847323898869705003432955588659854855634938061185468820998086556949230071148190666322191262244645105784005293998494206280668763122462680551514723997214918802133809331576271876423533731977641703265626850222980843744296165378407426034250075479204670543661841799205393019904024147960601124017724199287876088218039335374322867719644172456151132655826861573344003967148502497375635993330980035329157056971869421442596200117400068567464926132499467995672733670809724082849652348068977966761907653003697239525358695621174876255287900093911828117159008029571437936319322458199751211143424362412839608151965232283202336803848257416095654312315478086816753680731632434328185633072758106288135290193866656692556978449892144886453424255194564056221810993484511701574445616244981669054706853937742827373887602034830929880955352669414165376073136366935227441159262606347783978657326735153479356293021306599067750897626591313032176069749385526448619384203476912722257439312881186646665930710823332785998903566389266340566731728299844017414333292415701141178335618038458738780431216529345683173973333458998604862511806398662462384556761424178610062730950476549023026730740268279564423263572930223938477836599280218337525001588122006401394867448002983886158183588230834161587982289008839093768709257285232803353259932033458789441136638341500280792018345492778661382543459373463533271774091210735909215446274720266807637047463198455635673077605136477949280593847484443530975877262608341829455781022344223207281420067745111534036532064225680240290420707416580331513507922311000403213250235013100922286349101072186040600223675604158367321086626611177263763353247517534117668281726355420846211653362345853223279055607095757228086754793940848734918312298267025059660815585165248067883086427466021976382944629322850828805826331301532496460139243727152398590542999352304794744551953039408403794791381114330006576237451845508797121777477213964169041298280854218224478959844793664080797524960631045059212966860090500713764044266303509310775141091428103583485453491081487711902457941867804984141232202385871796356425352578349819200826051186242448719583597815552592473309003647799899322247184086462540656884201315293305203465741028963001765443345548210967353713563942642611204867807873054594917744364532563939179312838546970246469046252019945550457771824548103036831071920249437536588912312005643805187159261241970191857830031006864838253703516389392010863665576715204925306997702619520314827511221841704936621787945726109002312479012118451051285568376322243358582987193547323866544556603688096979211211318641655089175110031254072447093761316085136888712616137257188517268787088846252846230278441509049471352577819792769790448496127491075477642023768745474514178198983908469702010215017424413977099664108572023382190585589006463720906265975383380889387721901203148927303292299958828030205134865829512882847529771885912370103220142572903344390954425412530456524368099148083803386863936833379199050978987432343103846441501704044567500415429430931336144984940095746726758448565722693528481633008599518428623719483144148750331703765110214625058367827520267978021976007310077516642278462398247227391507137215187620244577337392552523000521106005514105299659514882971917973321891566497833968617203727748040139961378021747672198180448913386510835988924436489060934684083337712363341433817611522747631087887827262427467969221808990558937755458470854725474194688735309841366907128135469457064197208999057995072155875348919870058685367737548641546248847773321965790152423376421479615189992832535888328062541364857416553343583959694618313559650369081739202627618449855164084726729965031246250304091056982998988993037962211510747492477036676882640105508399799865424425042327664222965672377804367087694738039643140834933665069745674162214072956666738926628736834251732861192839744550760808232522405696124607193150932333214554931639909027764214874457706000761998171438468484760888022221091032300900632876952332365514082206872776162341640364624095955112630944738572027218575581699059347095217198615176219652954046583513259794176291317292386135618519115777617234537184839271572132029695331269908630178525989763450328367139024646375330094490056262638693042146817886956270210447380532148543727732480477863588439214606171836327959238159649149998392101552272593247371825094280265598522749013009371529466620672693677798420485289081750285743764779047021442325452274198370416906115282080737964439070354549889161743539764924981738916348612456820288053941846596670099735161524001276447962131030137342419849254739208562869213954223150345450308852904860424017499091209841930658077636197935452395399277288664127362970892613638235880250420078809834861202328036480769669463725922389551464230326630349683967520750457158166470292591239850744827388928606162302547236086340266384089604113154577625688811671270512292285770684479997542437392665332503636985704782386978772321106002037544072920014054304993371250701298624666428922843161984058077603072899734848034268883641223523315479943415262583261855777839219457574888323088454616811475700216182229792205631073927351893714548182271693626481250909269378696359777233816600458040447505901327488715080853809115375870713428146248622519685073227588167955016050292334071675212098037361836764236310403624599030051298406472412007654615273698735963034520432144716923405597876501826024379728863307863991348385622341868571331463337040154653193461273442086782936919823718240292752165314602953046324558308946036872259347811137149844771040211632154126608178693383987296629759387597680076893844859881482695323233682403252920845526522500909475421533095823174973708508472884962542862430808016947533129518225764696247846008712334868155681946888260277458765990436390955209480581783585776438604527129695705616767981228489455483463651676767628218509700889475724624466796325371019977585651155727127445279792811513275910533250269198866963498865101448228656266475288387177908521886684854253738234291690760336524953223291210872678957442106562314953734285065900749488793539545605534206821488311068412539176058996678882764931181804748180357212922938510278485447169926786632192161266862480393269136045129339422489451821605251931302337602966280048240293479519181562415533840669958384313550493080341263500365503718684651007794828170453742561235703222042877010564441576808352923601774326103552680298102564229411499207243333324828786540541267440960526716707001245594769003317767969105562477793544732000087562975625596446963904934816562476850332721491702409495974571639658625552403770197764124747833760712841231122822051420336802780307442424051179925885195322456051445624167189791088636985519692555889632885135030719408216151810449594261947166823490893940995777920527058055786969385879853196467036817026241884459154925501743757767024340053224415249032601128786721137016679950559146836670004029705043923831413605907538710255659829180987182674633330929892713405786240781515877142323822627138756468274591242046964857585489708822220097146649404992153489957867968840419955040968451542814863297357473221679669987893950073467906401275291937526148050250368641155925898202911768240286202956630769161987135580573336081754013924891664642017296447014330475231479623960149783900833770395963821633053568469384177956935884835988317881359127899315482602712865164450919235892929406094450104990644303875369177692207822046880875556964392858353881326540563060426034074373543277998633689990045353946880434145256993231631939823169293612162406428368084282365214996219861176288378454107420413065881338908222924646581856409583071554068029467788145172629757243885679396388603315016202523585232804971892600932846967110021144104639588802730397531144183239311202161117424919388137864183061401493236461675552172363431094049104179743352626175060919483103786690238659991233129367552927905676321380350989453433373869673304574860189286388242895702320088989863793066421298590463371383474244517850800724290981147648652761328816553937972796061434463558864212697201837952932197560859279894191476104389664456218871019969104930854468713739997907388133704590380405442286056959461241401450101718893931213966406706928059201752689064243849436097384933895934006370794085079846416893495358867320220284364984630974346368823045955280955855516380631074280790044945271816518108767016484493021727481806178935183053766201335140646797850774634210758583761380531825119129336535740839046020149496567551343563399567511084469591550321889521503139728171112558491420932613865202329458718523475072518728326759496301143394015893278070372839657137142950830465323870997849658135498442786502871877740123268450893938734026411318507209750121380511232817826973720958747494778920220629500746936184522634065746784297952468437558995867361412032698772827850725956102523569055598582915036861215609160299391356316201640456229557465615389579019204073288878232861591187497375424896952381916103709708052034280534725444349963425015645374776400894957350787786192942400581252628960666110419369378717042586013158058757904156262825612150135859262758916377086663428061092408217935956086795152348701242476837758437641611883233581195558974380815788400018580411251312793406431962755140659663192928255616954643347257864668610312498926497206178014377020753759375704818522175461927676756604536316445522662537920482531837189140560755084763998279500302379896464684381003037420966613257189593047186541645635272723795355510942154409903408006516669318444852663448502262685323475549624767541890356896042740336314857561864594364544538002064741915706555064107185970999101451822687971158716928677639839117926784964626753637743348424209361098775904101775453097208447850561917112226937737888685388297440027595565795132324220513160069200431717919468539098457890004948950893371811031648526475819304612201072478936970578368427632837632700009705210973658555184281773988869881444090145586041676804757231289389889919770760118965128070155818516065552564788368036185055568534039584816897226057510757999455963909063209096059057684052178389792559242957101351511312146396099712689404160268739671594334908814830518616596780895090343190437470498387945532930833446324974556665210686538743384852832644700312831971216916822642771079411589869511577740149094425776813407186368055766810082652785670756278315860836904885108963721044093978323466977648709368399551778980226640830934726789099329515022623575062861028284649286522307675965368706610319779899057885410918777081763722408229879337352267153503430166156514742301346632074423472931109604607659969895997813895516093137015242599291187678053541321963696361538725886622895012572327233434985313628968436638133189739543575245182488916124368607926602628378643649094917958508124144056600764785446470161758030890655420652285526190864936537445216707140222264890155532433690048870704059918566601305687010780244501177426622450714074215438683915923920437469083179215424299581928647140307560495680155179366974006804545491796537543161206857567018308120606400231138888632112884556933159435246012757241366384926040565266359292469523683117606010909466846931816077880248381144674115233220655538803980628534842292307152685226524251121767417010874646056194641685174452804783875134240757790887266284998363053738616372090721620290102039298100454828260508043882222192307251634858327230766455037981332459554692932400432268933757376242756750605220607148886354591001379394307965330668689087490996031954459138216939267793177194638233723595780848015103456391616727825735096414062582123812533949171633229678620629418994011696026197720851257059367450516901926691695980586917815892375776334923420611322059921442071445135125762381116669456153474203477553779228579050660833918382249535781934109538676247070288906635347026707630025390740394018699060540942358429119250210741091862274540465531720171889242950474486066981599624837482722833024264802289356083985323730174115306841569587533398427686387680926096409467061466686738921372857692709463964113762197285998614578774574382749818081728900359178288713381868917143584885983509805931192805949245641118820250372360694718120910715280794427192645555441545320887249282804444199223421661675374511600393138924958889819938564700990522451573112257198234957218181013444482827816067234500134286486386352769913848199028394772620798994471738569969206352700816350742599272217887325734336797771946767621415534799121882036658098551970340102096275539506392663415024836461221453863200464829916724468768582582604800292456008442653755575071153898654375896556687472827743373666056505565677889437452155116786125724547865388396516127823188701950857679767724379493499558357466848392810532389226174716188673155725984154115824936450283021469948666429236478526093739922943241226502414206283187253988650682728191477579862897674097022667009225416037450843953562618226693684162894964170527458843786580311175617256889313684982679529652558075636307230864524091867662205074952561066534321171986045612300526931561875291408874278626013884110436213880935329261762883289232734177412820963685205078235740663564537347961566725434823810640654641680871877437316835806132667480843277647424913238723774876442078777809048310819143042695210208239496837069528396361139655917181568573644112060777431952309215908361591213724116261785041255115065235405579751311991128059250082700150416990303312263695263098639358772074939411803903932460210977608920308197309358667446654697480480085542176654369632253279939789937463513564366957386476213626582804929403071362459859877492623181672795922007724938399529653537044670643054867612846520557580425464047884374592636140159873524635229030102723291770760884199012666087084557120014366086483731114491951014656825442456449981652432551513709466891845760301323826740889163746019499634445564885883701587670335279691264189785294282085580154759386355280497408623420787694312203398851040813559423289662034557838213919718019034214838841425243986057941636092003752147919055397284836208592617633439237908353361330112431104688787935755719054898066346283934652759196846915480706854620613064682640961220119552778873985907784099201012065137098334762594945097666577305542155498429704856852654595498820628096276589978659589316405430677594392319023901186652467328212842542574355115974650577346772545458417571410561889583143337714946348443612953356298672097692938052669186421667203929794281935524859326327334300347375054193509170928690431770477518037723113870040370940146636839036312876490812943526855277250181416641763618055544499811267251504205635110501795115945510378999644915422361400300866257030482277534415800955326014064035814442828395043375253038134927860888296879611942576543868307899478833253994852872253834474583239174444266758259979053853326159557408184238369642893046397184250243079212083559902479907078896368125814472469967357641082578931688054809620319266777171573790485491005093812546126384864062083585252918600975510498020334096189643036024835162620973274173154235152260056163694974735155422386454564700273945306647193883792204926320518752608689367713191555947123382228205280378822708360685920027743831449698813430968002212323009032782633505111857707633711853823958882263873854399934345210966057932837678247427870534414606181308019733549229486610747349973938417722614124991004503558241977613821829613793566388203640900913614926489524865668296881166138206764729653773977820710837465271411700694375709440350228472714845710943651946390631714923354070926456734572946184092968881194062131737524531238656642736935245548606405636186755536902965177746432049160394254686696782641445333327296801507275492055056813750000574144316342750477998042401548376628173298619776055809829537489814426660853382984089777066449938470977912520164672357512358757684400098135262093554826847587074878427458563052910517549779378391434110307107961307359286186172012418978743137917073696563230229047116958091071954465147091833944897227467947671798800907703666451681822311222065527366622060514041476970841753697477181301093788674631035244772624852831454809654888141045434851956896008837057412133807008311451330151744771230041736732981772765370573202541582190420247755849985720539052854352521277528321756306333029497080781572848572164406161486406388394423198999244458259915995241464215921923833864656898322315865678443998873989052227021569565647974572042204471962726539452248387196440357899565209457666013053877088870252897817416555454501954045301506771400369354217959639894278973592493681660936394884020321482720873348522702623248228612857547750551120914523431811254256134228349208306472833703960032769114297242384506377729321513275892113362419257349803425200950466050551430009962712436805348635539589256542026624431432979995091321670827952303399042241526634746839155253387106659088587500766167510528400924143271177141586583277166788074026629093461438457097936149513646006837324709919689523307496876485234640990476026456490455623149951075396438512047178997994518922802163238026685015114304257854526472078777715935452009208184084020017795144025172492070781055877326849230338044579706062363576252882673576841379354052585560668145283531614844761339249105192206875621510099186220688777797425909530901151774645691995256239801953913619986552796312035836678339459514141109574191826415720614053065690388311314502074794523811121484411021579730735050408015351748497130898943380657888344844333372833779093109995034967498182786268661176600117487603355893865583858225678281243415466749576957981605115928499440389600520298068489228558031876712951499976187094834953095195479552745132976159300226262012105906870901338909444270724481709340359430173055439642664676930544029050458954584022488929099410697962843918734556179330904681603826741146648710649520834557794768625979802877166575382582939598489288319504716433399292731288885760918101608904212489022699031781779954898904905509416685202226179939321470068924382718647679908170362593994452928233217250248331821903493214777032061884733202878104780738609981067530498624328481100446970394432408456134933350991528049528470604217214925909015335580684421216545169886498651491605807495499573921761989186752700888210395390320465787439719831099452125573955921756034543596238003687054071914901114177140870455390302688122788493476283482231229714550583869124989641033907284893734147977803678628999656015645904847654440750361400889871350204767803586695869043882449422049955810918975926042063731962142030941758817109293393248595160568890452514727953618937138420945610446243410514578810487020689277531899742583932586457755105617335389407217110194720375137811937099918037342170874280209508023024342505063579040308350139930348142612401714949412207997468756424847522122376408135193856699817944051363813089975662326959967740762331040492270666704391155707891057204271981651613459156552893602621380654845724878942661098150272987294771499683407099692921898498892489585145711934788657124270859183451189960091615368118898667483899779261430244059877935652022986797314756049040882169319321703279082064575897570295227983847778139089820375873990706276015219477420251297570853469306890460502872850321479970134972980670836059050009221408402882227253497283753846046184279269652773818129323780922198793676016762853895177708514880965862637117807138700373571623723092985273122520198159268313673136898108073474511229930833543312903674367457546344452670679487677686137883219202768456288189566980517600868191693413628297798039304840165155445763266459561227165420391157984270912667945805740392373263606176155710764756912734916947540367769585599880549870528224430505026173952934355551810782839587560459871348822494137487656880442185433086217674876673760283013992602736368718568269101723319605891574654223525661389744236092130608584301740698384877180007014656553908561579428922074468820362789028015288818002208132170520465159372689492142417691660268155836211049035491147819477378299507230307764291429093554430436423373671697431267307958149938355957540481878706990970556561126612450964150308410227105358305231553882100478633188729555025882104830496591322682371798930641055641109327237556900845914577243410833334376831414993699318136868924024382831346786781457173328346623602552372921229928587329267923984089729870855155525762989883740362634191920007624969249942050160738099206365823245558622092911369830860285017045802826566488055981627748753921734433903056532780961315614366924371822272457864623540096074450400958650626301131950993333384265289264101143298993312447229791275884196050119172934794758985549198827709413563362087693739124046891982744278319629383744436848380770883035935973698546923176387329053317900614792483868121482186807508948152595408651890971262713396083656246663411927730518197255923472919054466280834473670809827375893447617755687526981710480697249401340193961509829380927974590948911424131247981785003196893353295211417870134086274043813245300807873199324027471793347841571111747829444605187538488223604250113663144781418867491958073136963743675470192983910750599929470621929396820730047783032431694246742783002575009892223074025595302723149878459786690398439642201165866078342686087099975433820646627867891866280912710621065207473024205649189510221254343609305812648875740804834180830581029795498575119575750959029244770475038563331636508067464765846102573025742875725023871549409322346355854142122703940908232841640170384648149479645688308938924944004671633555762510492625955818167413276996001080319239009488292278228868142135753014908060837835815716867160713877396253269169124125079365353786620675424115007577408677374254177578199559957769412735957224819879042400042792572384830286923949810962815454648942570180822207614009240302518305679746127918004260392164797243142565888030583570616469432438136751443492648184851154505348980311595062995153604345485872421115238490859383743600904385057780768557874104406828073593542162020380523001478144473008360512825279211155011961680274701287312747222106720734793254219779955134347153674406945869982733609183242044630754410947753812409277574732533493802788931136382242390239040392901889540985624897060835865027569511562446074326550832869556043383744046145120191922317361576880765725812327270926895666809534847403714254976444508253515424759403801199567578367088974268541036011511863702736904711678797099017442062436305125992979882470365159318552231563557112451768871383197228988972648395548237201329282385557744868578816461240517901931515572754608042134404218850747701043107057683478884165277678842718629862704102282761564453054828377145687397428449987599748469412549821790684091991871933416021787146118461811556991248519644843075065758910482800311882472778990539383203373199458212374432170891045637306983165857336829406676172204996428638560054529754516903628874230838768583027353025470176506296968334498216151149886425204585796125815962095740763256769812151050356938538042169951552297047881488076536814880829468104760014436020767595297750960403547318474767796005355214448520421822524015279223287097089647085814268352243781788219884301459926725791307572700518344548219715852469887244949224236416620360424137531315646635791339231616597410999020572114423087522179543577900743973694128410452867618322181110057983304957248088276055582962311789959236185481919642282679488843752948225567526676595099188148315623088852544950593558190937222423326183366580812422879739316985611095118205521477216257626315599632469252762165066557593838130318737299726916649704669698785316148622477535644266429088818785473730706578149161935249858498053398675512029745060637994545596777864897110628055200363405989872779336465549907428938450086851090248187750046433217632230437839784521449536638481957399773310628348993785237576351134947720057139672787459584398291596304611741723961474214756446606363074623871123163688442101815531068745392938971255288733106602461536558383766740223584009175864786898221241600755005999044385184610231839549696800447569542473665433286229430264456811154787797296623790239089329093648540308154924952178706370002010417044558253283590367315902808765037946458097843224259679691170506467135199099845929243569414264689496030094129081656130613340922370932275605808360409031409948239855278954514099180247634400582440454449875689195848549946745123777441660236727380222140509262255605776288242651171801368130843127342721777508395926323059898568425353643626107163226590396846663232725089833892347832912602124132359602667282515148874523622106682238012381441198077887129803361952921613959085705372176179436894124882529819757609415825177548016618613179665362099239511687251843203205869673770190093284129899335949162046594698236442195355950815385100613352651767410331955106703918482378529362999507901371455398980918188195291347537187893641415677390535450030687199121714434470492645175487807751335957276546708071834174957070700050222848545138006596881690972423523715975017318541816594723363850107204018136429553463682631640758721814738363150493448490954997065722564342877968150270554339150468787797536959338599930726536986873357764120462616245953037631504222937420709696297602466246185966941236258099995978537122112990144623304851912798168610108421736021979978714146178402298903815784134936212444489414381549006901453580527539131989479979785478596572230718028245172676907537228336174663077258966911457748852046259731823775666723415016391370427955727375454699246619920993885711882876905724635557003784577392154423561793713001751335106585947581109007527355866749692368136701287803479870201299232671973654586940769947768520753356454502403607497732417434503470114563373761833562323717335189695033558848412702822475511604106615798003352284713436656624791940191743647798282496359443816081522909317562738654976393587230705945377004914018063241761821759873765983729166831176728363014378864108096284862043469671312955603717187001462132393033182816353120837404887969122842069668928696542982033854190540108229150868002115392936936556386884340458458654934815313967070526479556457759218661268097420641343502781211438965139580137327382195111455050928488662661072566122172094404713332024805911598659526665639306498391018455982778437648514694353911428847713353140818870414637444823394312402900464878014133531377169044671996298928458594049868266198994868985935606065077633908621392547928622823158402999429337682082371141112084575314719884294009880352019815746681336021759145304170680951389737471716564418197260739246091029376036841285636373597339311773429656702514047633505476360716162351783411679933999833045482637265851795714067048847951694749487085727677975622862910115407261399082534618632182749663195153917074183525086656596834440006665692259272488294228346871403065706784838261339109913411099030850577768053549892655971700671628625542359954501348155079156585058520439527877995827599722664478889959226943723420565085966902118438162833045136869860125057505241636874256310074716193648195502510042049707969548814740762973462968798234826589898315890476206543371192426730737116928049899905071280759791945315528028091888028117938762490934433071041607617353721013812314829024717903687963421308213311197578500070079001355207504482307182841980110708363148877671246606719828749077829139427476527460459000159117978872301569765690775269812303708036715602684796053586622863276567512813677280256985160688318810762816875137525649980137075453685369433529487898929787055821847180947132961709918967022953843426069534142621162848805145541487191339629050263154474741429633610625190462264679140991842274280583264721327840328298878636595485014730894460335548677638716400358816972048985064713368576560146405054300179721845221828773667942693476722837338761966586672114409590959210494767079144368013913628709336991183315602525187055156203153042029544307023895549978510897182441584344609594013656217404722817677558198308834287243363079516385108557489371646692630592016475771045591096731500582068518342510537331604397412140512142945116665814502020853243045642325947288323908498013239455957430513663190592732209300094514324719101642275908565345277340189602016722136955177966509619679676294733970907897842721168261295637508601484209233365908021221698164349803504230643379170126619616949460439110996697978937849404618107697322664812089667985194132933573588528427320205343704701502520360480375689522751607590687924936158614954966463353148823755969635969249901522845442317759589692281713194260634827384456688617699710302864787131247180542145632927657402965163358183787563949587559970157043037605537567284911764478753916064631608811702439145466059116416161260293014532912600974112388223069743402220653349292790875462326146222052348961138287143178570094204074531728244671173400343195497112673796364034686440001631937568982628883696898112917655350121447049273683721178334515399126810779387080351243424057626669829468079538685033868642835783947960751248189297932588021559856781931517381309157254121834590599267831321375157002334688976742840213346018231313394506585864896452967005449956927122027697686118852770344260739745347917817663822185017009116918067484906079228861191532441594958330475436757425763251715404731232088571050579236786213177440746445425408952339713669002176448456948344838501987838773385132836281971250276194927956861474715544946590354225976395289613277931802011910895382649981550613470219775886459460736391869397440432575151670817571000810035364583911840292161292598806997087140756752094945688154122292037361320232533922219934482927626191026289770769753420649944072830706919867190875739508652908078241625004265015112425920494244085178899981127759608915750877549338360053782441375662810709155715137946703096423682955658933908720907488959183401418195691363786957662389840036235276401891738167953811334100208492885598547386624410991966473695287438906257788537800150889272061940246257483078014569515453551944786410649046122062086900852793905954491144377721865079693940523825742701030159236411861412628606492154603307113689187545421143954841466095481695047162336542385983196193543667599999454778354153810683191453168517624776759966912695717734000321132635925343710181036003307715615085004692510624703929243872742140047154534742286776365515187072000643201273394823706945383773056338891343991915941996874628646277162517314285878243497247634030708284358925997197663242366471867473383837954772878836687822552590466249126128617802597519007165156110416477713097380975631885071401904358100133475014814687479741566600368262709195518953374789804177924946423270930163186782660234136177383351127404913180073760973568088130357946182612552412917732789547819746617399053311085421776821073422943160596105193348694526495162896571610373541476219020220471568398923943336673480848138522085199982772654630643350899532474578819244767738614291679881358376039461581120365751956872083817940451186408784495421305288752634638521334542350930593374668961176075381411222619109205124218747465491556048607935957649666375679554119364853871894209697426591008759071228773734423810646776833627607143494945693561437662392404844760746408914185003946376544758248997756882890442804769306292745570304566997379424941032966464355012704824481497879676530405821792072823366943099662999933181319548693961314593930681211126788470061206484280659978270890911304992327998189401161046313875798682130383774098785080311577704620299631383984444129874255052664991199550972289889338213720843727109174830950648954376708117878870294530137967569063671545367550579079583242797746503293772820917771518837794692826188088011403702837581794932263766235280620700231051625996157519509188066773679046423818475132396414089147563832768657526542979416926332310003378606466422506399833514561928405121271689740465590640377754562603624787700082590137109744724885500070837969672400751502835482078668345579049042282715158469048941023449833433844768668742169321415600923315479809352358443064961283007209873940946874750991072179410385187568182446009423615299235126113812264849495458561580935467839113100776673270235645561073322321209519394639464784094177249812534936382752229382755096166709070950403535593366264364566888536090079307835533368717838957660025930692824608938826666004478735704173293723179939884770397284291336359466086411772923393908448876479882536972428767866246089856776983438772388874506456603811707682362798421602811700462942495556740004299642237126521925917844511710835001947321630575277610261200797903354952740671085414046610602365332121163206220619485517022204423332468000038940829944802387353239802538521170664249479965190867363981845359703519965185263882941813721035841731474623646105707895866998882713072145628474088254253145935882089864411237238730937319631897425231473065020165058982164447665576412919188698228470591425412889501657319431088490341154027885352975595251023922507840522714976664881979720300268566775997368946248917148949994232443839370543058906913505486195493981260709720605232703737803604019821150794945953321090191610941961158705463325167417980727525578720956512950401253646808796735148138014832936448254585283768194063634266039683024444434232644204128841435837347109776285456335953174201315297713474181110203255695629304677526536712023857457410353862470596038454304391312262880442929331687216975011988782221369784845438266463657656476286218807941285744683794819540123056430018834427287621952313080252002715060632638469675264210695354233053328109335438680336924750105151614752498828200892926975316284295411197430363686295593280067306651368497302689462056004002755324297736276989744066499339311556652902685559328833396352048462934214839375124906938985526577652630419250321520065579458031907213225087652112795299020914618760744305462521501586431982191336309240945470216400963402254979546965776235137157328884448292079697858187598556160502671227645031655540801054285372520198272654694607099448479921555361246253341759249805100338923462127111626980701716340996860223998748008329883932596876584776012344800413875683068801537892833085854485524240001603418901302613002614086284268595290779168929206155160256306809292612062392433131740077888570802415318842296423234385531254364096293543911057227596191456418428380338736366737524497731876036283290104174320616727462901973006830089265550143214649973746978094189074945723469818729853708176756591741572896770827581710442737097875489178850208330176967491970143978064066319744245207914930063618462905897552729778864660833844326205836279278357527100300501949070225806060999690063520420139017389683349438791698000989336202025259668619909385250382005347759948515546494982864574321062457511383930695046141330221680642723696038338637774978202117170436134937371203682615002702314040835673937467743063781405888668609674585512976412390789152804198783899613959931358614982296652411829730606637495352562209702391069999485193557152117983604806887637122093692895616521886356323398128628463130087932572140172402155594579050468967211663488429700222528550480455076921038831176142302938313247718413399335236159313357989969691157906842080292346378925210723618913517347802766585831905926334644659201917215460236705350406975908893311303314391690589578235048487085535903948417071684166428941632630207908522163244551369169095552192568916126078472600151361594665236031414776368938305463391192140476786900905785790442780151979210048786494083546959712338600633339810879629998424293317900444346137105429003628295383164826463349133154536908907773421763959313254642454479466271422929573325654687426437909171076120015090574149803269571820307007774554350068053069671391684937537491825442004302711304801694192891642935131932832924811252340874878410809660891267840863080516522772293566617677893573694426856072459456485338928231827332775417955052319940197709928155435975054263996149469693123478711650439860394036339775998453501657385435439343210179866609226787241254579441155667376253362183713316365826201976962329582505504614426906999132212829920610625491513551284125577208271523420701911313782150651981544178639092956160635305455925288196170616938965395352287507934269746386144040376085232816707226015069620747519418072470389475437566357565595920719599084787610273124804702454898423362271057401536812582253556591096489728830966798420902205099394239866312375948966505720949078422513120325649836157226404088026819375848609669609678675691604491688015202149805790133523963370153941956721259825967019817730167371020258023662165068256244115895004377337915535976962095167205361886367396759927920701735469649375793974305901470518634173287128783593844503168841815849755586568955436984167349956184784761756596846851253348064231620584335016868284796809599287012566438533311204757088233004291328917845960711410383293321525564837293044624969668513287380716554929172566974823801588559227272855130924569829503207102309375171241308796150945749534044360304419525351040606215769479769525039990271079103344732183845965190717079776127885111706640827685173966692197759464811089095200804871867750502891053119997862388721588191889963580810179233702000175720474932476577125030157870563502012681569959153743992943169960580019124496685091442074441922820070060624129305795080805987403374402637593930539123074396456392314997793312991639965175593421507719154980741246576237048915752002854163644959291224791094095296259986270357571204347139696836144891282490591364946461762605051816412421506401190997503712499038571455921883482909646083346471340164025919209324523833503371983627759296304746003588320987916378697278193005401564274577786249862964084854934667126124960196191844777194947451052983044968657117417872171976954651439140426213806650470204321535953979069468986740235828400288875481882787658056182208174365929353687386287163317517897033333263501445037250570925222367281501145549941749172366600774525890462157789027148586977164841484475323862812076109859263759263708857243022100966578668103579948735320486609499241147290680841543508361762663516313651112104825501105491363000226987958875892304272536322880751042772672329467645110770645820328859020741539940056744057771267522427656177037323588740062684203651740324753778871668313424582905088170176154018346934107836906639664322875472891974687042072749216022704700097106050945944256617861347834798798134718989920770401826913541396442268054010722875813106439352603164317637118673803844391643241553631395657521168602780472530189621929580652765398321509221980009575659806470877125061572368203211686997296642382702397708974462109972218803744356294242961783835123510467942416646321547398989541367744859263460720751653509208075409756267127625553266585958175507075791039551678130736525405341146745988557358599632602049189762559273341508062724919254082051359308839657207112045703780714315678773450131321585368572262483013517789045511957928408470487706125319835516988559160061893803755513179075619497974665477753949021009876552470159401206545285945182704439054183814911225640292129279901329658927640886444616638084436819198505161604386427980295600980949630669239668547730404030742370885236782608141948230133933820581231084455394066613146068965599605549074219875543493972926261162299928702749190841420242109653985995168149207456121517789566788285308935708965917817216427874474949090788666790376380280199634022892803694534413410137557800308023765446115191794850685138355069940045389513909830734579497040350656649533157780281581079520665497320237138394489579841539887943368371101197592187660832637720761094542849326782961222424356880944718457901356698223170364203307829698062889983711513599770366085064269804455288644864913597393650351923717196574591707477914914779989893034793254763784138370610456067763265927242152345564750931452564605167388277201438741809213083752121653498332315661177593646222085890560423307733030808739811837490500153240993426437745059817481309032904019931508761165164695404620126485133749712817184225281746182057405730032116394915412925774026461581789251503744679648624564062140395821323193068796412765341720740445488333004797795614185625293217837744273072386282080760049004532058482277494283178015222558610796641826950988962647415314909910636953977792180289805284670481153913405490902788784265602321359178150442418572217480898306405866898525992110725802774832346708238775016210536444603837982194085128288602456785776761868165813144419410451305661744704328386112066345901542090355014570775625508080710666429417129200209342217243050013820583913862757966084715220572614291504874253712682357873928863393762218813105974594374448789736794006025934943426031691147869923819306228231229398432280810310174497657263047022574751990734439297359785163956631188731998627025811070535040960979339773716832131015119867545170052904696495835183885775352384313919781444590728438570404853782529022425154879273995441069956518639979525322014293194761788759673593213082960719474181833982309972262958088352488674570005526599484157093372937357642386909857789674204802529231547817796509816869459545538382352009201611381216075487955445524383305642453245741806775428020276895008781127252559892955170601652096760773700699795134006413484058578483478614297849998657937012801077476318478304470329232289605331456315745627319870674294705287967800696696572205661453693316077982696484630212365655472103334503403648072662538787310496691152366429283848427961031223207446630504325551785295230997212630932608925891267410021219537806066442626342948146262890478703512675586455628013825540134355606529429188589510156081437472340973245037892181459604260433089985175459821172523083445806171400131637891710028761060932327761057533242176857963573878668052798592666445640375076387998185044343727590869503256192594020015034650919780289468481886606380386422667891009691791078414373163365050917359973597270815085064689464769411747198392186184473797990879287719916315582966507611601720490054655585845115486123673463271013799965653583276267257209153905700373117645422030953176448027585489712454545316536919412810205948634607302273795803482219388853726919378420567168038411725675703808137307426224183190301683486315837978578964111392416295581621628808727373256998234238165818826065319003858658755404906526332000265353104260390317841875659946761502545593459238065338537960126871282088966665425853106635220710512110641566053769643147285233454694309268008358784717284199524164308727323289588238511288486676430671063935937957927498603074634683563302865710344789066445303561905174884833726507256353654292402213538087641925956001780520984234341428314483128175269770390994249722559643400245923756901031728408235620751779871254268686547984133588940454721839597173406301459544759856749993666230428107747571859643305229562957270896043389615925830092147373943390297589931547789372088860307785522061528107753223959796838331248666994397204269843926819791966097503108481205017675518949121875406828442758144573795340408161193053967320191064122316544988556072973162096878660852794188730735647446802949015091543367144084684969672108993029316391191455795457760600156899563561394035361875825048944545453744009291399640928701122494078329782420608599844356839543126485260024444464138692073514612229364951589491838293852277778385125486895432792226509534899585833820936000864684193737220492770195505528479230125432747336550689740967340087270014110895408408692624381784630735801907654178406343669625993016288152018828754064013000394501584191210590871802395053397134501349732466150390162193044589686815746394877974544499538757364042830040564736753451527079032775742334937840909401423139330312866444504675685772239791840234978400046589102795756844308411086446102806700337583832310924837994099943401550943453744698410666789756326468255109596125217021057261740475422502347285650431557239134275194762153776062211626482160766710797333437887457352282120115819241837911007447849169867782864947883094886221453576673304764399843408403296067265040439278426006320655613897042435929332892134692478844086779716296775530896473471411487490494887056197838886777095492990281935998206149424825264999676937258551946356133144621876077330087629890288798576836826033442866601450401066248603262427082658922702031163538339373886992736037084166000671868648159011965355538910206130840805957063929383837143408543535638707867655296825581649081432806359574297068622885787610235523284092548244440349403803549949745515779039522713514860866089192044995703835332129848462967144790422580537395764424711599391743752704501025739256090032255116846581556574829021428834100059830081300623872400699306013476804245912989586005541749450533666339099447783347067352287197393502667417200759131128857332581779353059167202044511129151244614166303905969754519534425409101092783256054931238420282366949125540973311452914244132912254665533205491628416293559838916229660177705335026853368635916311495842302618421027578141490984283212233526705292175921049022687335280653523626387163795097476651319105411170672515198266004257472676531780688556547851445369710512541967959771324045494711017889754085277770901582476705008902917304947479074583902794137014417175424587126062779984376331550950473281191644357035967272947783429011511182379843644842246510279957642492796586285899499635433572260172314313188314515083525735744563829777240938686020107278393052705579792294327022307720146436073509070006916527405721474183930378334467733900608630616264938328032250218448909264261733395426204008586762635577948812900821542169299258442069496545324195831487158361072152111565499175944545782408740767909228071836685120829808984553380354518500336343244181846258928452174261140681817609164070981981603203350405798246969542816702273648584519844346014205612479348791108762369692715436098037264910620821532135904290265511957821779218447132849041096933294244914100110825501752773741224240895864739086146715037081347567052047143661895718282632045943246019820463271223800260538991879862737177387595601678045092087610208197150606068954748472563676928854684834813602376715528685986169892785352446625129594710796599888799416151389389451527712086978967609973904000053497508443359136096319503831939863234315124677227132619212122028130322696625538779996018892285439148638744349809474578332410951757811902343608532382680780142643635409232642060318992864739314081932736916683752617259490664592455284513524409957066361315257131740442902074869072627524402720257795602603216237973007954522983948826004991166372994673794750874199131448525271038015496674997260257760322629606013970207140243452126160356534435122986069422583107820349473140975172680566202897444027992828870716311994524731148497102016821505937451557951501096699793656277062383197956730506118809736559376938021910090047350888005019300219864073673459437949112055477141250064365476394389235886800828831910917203773922130410372445345598047496753658497860713162094536739818282902782359093854707426725730453708005440505221310228080161786483416511033782796792884683482230042005445916034727918993677762679257308948412548765163954426666753878815408488335794747641302539065157836730212840698022783285959078927439077587344457555110999514526404549225803088283015524069425821505882995251283566543636627438076613471495628785290004528580633320097624730459557403705286568962743055352245696896322055830274456955185162449969987816785942069943349709110902583822334699620255821987292012235649054748920879823496897309999139520472360324367297028425931334823546096713728861231491058015226824356308573419335576954319282326670690169907210517002309568357835869860522812040212834599245395547889737018573978124703636363100314530371843817456415410589537527205539838222686379078426146711439769477934895607222021763153621737529324972563912443991852404678865176749662500485179000109726321120346416052775636354044605647154106911219412740421183386702961352161087664052391914183619689551047386446451883960391039849182595341393762445934814932402126175402634380705955444844367681115702790124633096105080850457291753421658961745502225351752036117632112659190037078028884415218535081855860547514319919807598712325170777422066091021087014761738994738903092753159397846276481758889401474242990131875755651181686532115638311826950125147769067658362369934670445009470168276125473067766369210455687349544012768184758377231449408059821198663700187828014166403791320551826261886335502727210170026939593259488216562477728194274718411981235071569365350864428536078744093207408235599307368408284564436666577875965941301873103636283048084249564491886526846922220548274959710835566042320613707468032285252977321303498387383906257156605134787770052183832934301162557693200258021572285856796343105470053579197838718200085516233214891433959052666828238253303330466157780173102536385751417801843250499005296394211943649485460475265805773040716375782448391234482967921658861449336013435117203937833801268328324012477626047591736708334255031340711996274723126763458453098123990572286532393034643182000602196337249258774284719437725743949751855235327502774670378055703598781548808474602839013873980693618834811683855423681185686990800914560138583088160339788342527548022094889238110534080303714785439854364375538691262428012019748408791508498897666289071439664820021345342873009099047871514724950810325728444834136205242935307177057472863942914493088674126889541174016588806264321134065086777180907445036651099665888554622442510162497660749752652651025287802925553617256536280580003746743329846905296916615332056165943538564154578157960389765330552538166877755504795755946853563984235891135866359528727675945140587718730285953546814968877417136249544502875306565907764616804816743515825589514884662140771768869579941197018688911528069824167064938932543445392398852891065243348573328214054516646325942817436557975740595082364460108194086165437104601717916125436534198475321306920858174293357445752038624598784055860406671429385614684525521940269465363593781868560268095470769852030032969244961326418951321789097049176885010421609157113783808608202271777995365847556006119181899599364547906211295156199538574684420242648550506335200770364504201343275924029213763805313555193623969742120251124219951353984982857120498525747777646246309456371945432270018738118995164175135002003590573066136088433137760279336176503735192726180148788167491880974769855747636880107660009276566239512965999109067742161644035618468875300228464933238569524844492792668571171538123572425502973927273214599596166740664998776446172325520362730210163935890841565825907329759332747066578674155844143286587013404866119302448617742486002920284795889369586662990571325350327496535127333803595390834302103867714098956520696689530352931387470859367989852344810751041151504770811330754963470313422872955945644238831711611248492185917757758006093911847588704704485827259560492873907205653370792144451580416966024305085560085165953337626044507516056381746939364205082458453792568086495548685122344618639212331179857452466390684755543829803543694508049663781117951669604982688095857073730943300455782068037191404545478433095997320918070825653004488959173499866753700603528202878509629033274305472317186230445218911755830224372794579745109374468683680097113742965311262652797712081865062216892263467871615980029387207132367862914914405854066473822118901780730575898098232656841690308191631978539517597844026547865276467774743654687820610033667268157520469472523631144879989634703944105421015190678010768062985548340908953485813028559974491718319907165722454947995263532472493097372566073183248071364035293705962437112367392844484324313673981510054822484655692972701235664057137673200552211999192448115597145751332048769927302233484839004567689428026945087992961210496114693338709244282463454481002271191474402725833432950740610009175975300279972208609273680089594371147103354946435027777699677203690907648873389462419691086425243690719600940433689080583816744800843302565865232617764339467304472820907403568308551317398966207789892723663014744487959308076737024373802520445363487466686443680193284105190185176616848578642454377273071722500924460250196046469655918847736711094872065893548440325613852996918465544215954845138066927781035023061956624516425861635106924429840147632323012996165257577505091476680849629185010382586434293862757207435400267985330798433946087239593709847615068441318691774025256127461288336494088731133138302770452190685232458647457950826014846776066143595698784174139233562777624583193713241417703317186122471132917145574248826498166281022508330286425607509497859046932585420226090029651815638692297998794718139766482204359797330596065578861407823274588611791859591494592993200950429144434054943753203540885359025047584544496678872929034145570342435521921509327586649408288831785453977151649139034794135619810936045502793882168326324839706974059816005560824694924735161966138364268617270028627511415775245868081117424799044981327853268554057891349361910640384527271297088365554482443902390928841463787680598210378909803889267969923273559258574572746841641455062409965356696062308311705077239067081661363585055856146990445780574857704665501950710688892897794057587022799003060848441360363649347297798338128043779400146307790420957569117603119186618818454705157490498445722980966744783038686809565585123571126890587896621982033515614096935314557394176609887282978604029838275963969438261005246227051316781738198732214485243459654307867806945559763951105965139742732913205411581642756568707543392811567833737204331962676532333345843497466766621069637633458368209092878822595584121112379452289661936800954471026530160276820054007387106687621461091463485241766450794730279670731561650463650016738187348366450067638730293574894916761511912885775148343053125574922850657723631093762207701600103893075162587900700564156712610382129229549886536596982549987146430066666853925009600104513219058184813664219250383737818750944451697913851468106705898161003335421935825833135355634208301444294017861550047791419949636679238595112987120892358473675561549320114397084516145744428169893095384374512308594773774323566585458699713394319748791278665548646184029567216103696592401407981050386360205192801127761574194683346120267733377260139288754048292226323882955245338291042085359800882605594338178220530051691967931005140215367058231738289611345045717542586199929434996355712239474629487471274038570682041105310010124029920019950993493001430220515336896184120882286947973003383787212506080160143802582666332924511916958597625307691172846063515447776696617307737523395813562896225911781495841267310644696172980826315348518312738625306856775336315428093605119374138531920046300493019606772374785949053765429177237905560968849972313346909367065045009818291362553753643011637645209086755108681408108480423553297675664004955255883039215612031536100948444176458826855966136195632104754896169551926225527109413228472640695317312614401913959756898391992999945337876992778990433316409070903123763619148329856890309808546069773776648011083678767281527818524855830434962420675279363533482007499066531131109463048213826321513117975204059452742097169961909723140459781779545972194402184263700363067568220558073242810145523204529921683161684641471178395397208615942428521400424095501992842655572069924182588192219457670053457090199818651977680437465278419434003447406840117560143557829487219006052546377568197731569577292221926501434513369622650309847072392672235857200932461904715003772056610548365955825478581320757706679085000426867342225659253651536386621495737294062109825359725769286291147096497085166957109246980569934226711965022621795008659378969639942175559076861822940365338421138757510740898545281821820795037379625100921863290212379284037903613310025813754284346685665381678453905203018651195734534062210908511644591853406990289893756815076821646562851197695723446107837989061779411264816815971513627868157809774159344902278261260574197860099866737728734948147825521576084357993799566166748451405573645984080272573634963201116686601890145851437519455163558527678789054646615263003521593126095074027229391043666486158332670422698879019764708848513708914264032747674425968036988158327926364314017036363561759170442300672702813488941061272856209054370618529090800660301625799735998335485600211753868047736420495151505807305769378004292876131272992761216651444991330133608217231706662430630640887139254100567135315686877469800142251975326575777310609880662053825784049463816541713629022707842362010986404660166162656162797360099755351002411672761927494765627320576850776961536705952995293896551524234145329290612053875036214118252523136148166510847919567634936727411379222998057973668885261500161270077235508392164610613739814348855220724783612467269294091438477294400484402521817368002084822375594794492830316574919416159316919677846354698918518162817684958762469743102434910751702869770405713239260165116471021421734422753420286524037528031864239764213092213988050606517693594977687293111497382269710087227431236084141404943556990530709055405501762189958557543164672962089616140638024289223963301975784911247123019392028950079264395335751266299045400201136092354001031937269638569785110426793386244734767257079242305932494095148819716322764290016603277807241296576484942109482262636271844620266369739247458345066063139744337401045678871564897589226300713148233499126831984093175803653341120211150166786932964376356073214086741111399785020698922682699806732539028418155336673698344870599360310187826804728229656779563076098788157277116215683226877690628334521520940864286065791725809376040578924609835140910710166731874606255952771923565305106115942446495006939451351354593615234971941103860741272950616082216168813743015236658129412561885788982960776253684415362711126128479175613013226243645134305239614305060017823222944966257116339245231701413192986088959513221406222637424891863804954198352363230663326612074161323015486575393750852968223415788992890008752742365762447432413210699677714990853736345915578242874662602337498750865424803892521202337530455473975612555965619642446038336343848969022248536807477794621997854115631289195908971886261565456924489081703721310987209441599366062619584224173263276734224974310486419656640589843729239084866610127640042753840743225717114900636697400978506846299214175496828791837001825970529962347926750557163036032108363449702972599797728662811440993729244382480813662781637566479435857272959553719416231194496988514388429773283868463973802767653332223666649976222140386183056764895035064563048731612851766640491955602967507042294127168239923892419376279305149837232193268147252486142317815942059196816154335655780500326658144368546943367596234587218602404262482409080158994445186802767373445907651594808318858740212670937856977280222913743411793713790828149941332648179124734306222338315034377441194857160034830587492071023301623846281918757706840540013638051178659931304682144702719399798628757141009544303242302399564418125026759540370213983816227853067148584045175902189172619077756503090842372732819708814394888707632491095259402828951136810550790603759383507451516784861172228280809151486932349838335743904551489768457425293518748545669531991351253959248432867668750892657555661505281920516019872314007733221667032312147729106141802893823337519856931509847953761866493539554820955669795895908296665780745890576890770855645605310700187771717602459247646223804680225376301220583121428548687413009112582320504564657670485190021321087871630287735288466677925253774766054114040096110396497246542596715744482034796587455282164585198664368576670215887138480614471277302968173194446425335421079155687552790081432073238139810295033542910980160362425235029371424013392749555945800370319621170215540628651346599152514902578208077925952928778554258750716476602092629922468947611093748009976344486784625868711606802828195524955663290479281192579265242328288050478817084395157177748348038694793076389083126296546380497542992733161481443195186601343593580910392112740830859551902194213208775868652420481283457925114562125337541620783273651169433648506181088259933852394844888584449008636746554312964370204883475458480029970041582776756336364098071380844808527605124715464586983235178573325013288863159976493669649029875559189419510158871411253963737154461463293908745094727187830542706281585174772085232086687221047028680710194673214023127799350720277639974443935561674558454977462878684791289641009582226414899050828275178980766416823730104121752565867978249892920515425485228172873965173707038380218360718079675756989819233188275658527653792381726197767129118327362233749002208161246573542860721821490476361046420882412410930103054287466848569350090711636968851521139638228712807164161302431101011575850190874617990669544634665472761709324055408924641537032149716177298086126832493287731561944581727430976279775592239785712053687109486032353142448448874883843088151022159957687468865259643986366823662011506912802668399255115381090324013984784734536612079846074628433959986284027922047671016974850888489322770908580922430281655317162148441314147616052022366562610275871393239462905583887538641935642307323139155051005229670044657508722926105789249067568173732856209568289805959555608645247147355895439399326990594858997159371870379219241143794585308282642555394303619779521623558597601792775463647418681507431872688083770246447830264961903292360320499268671133119620935165345235358657626315866768016109296598708398118269028487702527867700497721262459644336146330727264641064391147647212710777308926495073200949839598084175376067783417539426014198490929620938209726218014230290571259658474487232275466579689730430697577938334727103108641789903164364848139492626343403128955511577885148679773785646143864088979431981037499760024391191682588147037518533258999147543387014109278679109637796963856424439111856288095785050293519929917065238702838683386195418329690163569810340235823717371425497698685337207825769226074865360481290646497287702955697391928355812866139927490326554041272936652109675202288144776799041619499881714069839964932002580679274062164488863258314638162742837997450337766786477016802496647129832129000624795503101881045255011373658681327470955181214720204345982054969406451589381284766391453909008683332252477543778237285266624019324435541216919743813839833949301321068540540767313555659596877777060020462445501564734442783415801409791595476075075197485703734559972494823132065299023285378776768580388364067800684343437987534961390363381324995305496599529929471547346592921735139628168850163934552896732411160999993106429036460810847208471971339608743522711246595687906069453992301539513954844972930707107542084252255382451385353126091026258203281769683017066372256253767509141248967699356325306323653627555684536856951959881398326748423545054065622037565380128478911946944382302886827479617752506987775481420399292782757592606541980679105119276245957327429667873163073161536970287323908087524897999826737031657348558436222101271644274940713986317693732246394307083656260092167665827657045883149606023587579470775930239014389565616101893691377918371250502554827863904429887940434291029982056721044941777872768474703087687379544685306550464467418228162112119699164786130956073840794518957494650298028130284029622388582408045607677957722821748712377693651429463611861684119268186517870799467999414102276956986471624837210968387903324580001286822211283428272600159504199684183391490852074384055336496804276388662999747939594194581116151422785159754289310650615636224476772975658422168057914139831949361392580405416230330181401697958290007722052657003948747718999718269446712309919915146764488698107276797597312866902128723113122434606040770974273345417656579248819350221166324652957748368513924646981487268935253755587180495204725675678258416545757179603072386012906098233303130587911309668590755044935513702080541249832160577898707269411234158852471633737773756349355430462073822243451920920680089964616524284912037246758924063089430162047100579603822212747630724876311330380999004742876275434286379836710061495413853514246351228006643212266602605661172512315270898042492198853727558252977995230699798559576746888907053055939288165785576550265953134431677046209004562344626051365536230064410462494040015951463610609531369294855995173700794254077418462801641469116003938682246926383471454657917745398210182480466333502253655888138723473144651910572557256947444310104418769611324120282613078374868422517312424702672528399729922181428370733280690002479980927544277882905887189194032778033763407857368938833641935615256640017923730107950038527313584555010949785670918642772322562508722702339431855242035903975755227223160453185534524984465972327729054898909945587720847688246962031470371847941494953755343343413957719063449904102176552700841891263221877868353818622249343382300640907280682088664089715545944939996013908956436840517058696628716047681810923707982421803937380934241924273692104844990860158143107724486438250211994037398219867567738933345053551762707542134369199964009645156513387404776329171150475602931085036881802402434850223533535001574533678963791644103355349469919508696404461558425233256384059387456802986678656834262116177885686022788717928430167637488772732134641375107967509516058705224208008242038585121832074611773998118943097971258297752635381498335414520632930171963972038722744156300316678863500013932349826237529456701547575147433529976268713409532169352135728205470278970106993751510335016001037788186856362521507841325873295107811910016528491242781586910474902285073802569061191429370765603093005998743198815923251646871580408770141486677222821282901262627213830068515574086866299212876721754697231543100405171002104619644532097196211067944899072060277388769833394606643950225047301600515453208253278168667958966605235204905402436966798628237144000209251155685641188312022319672430104709603736032283907637053633194741395193773996174541091656154729899245872755606337534067497748137979821936845362813569751779873908461712391528613149834127366223520521012413832280093896280936716365121587030183983403456283677359355261106756356838935129495871130772358574275052689588238303716339383633352530122236287602951298440202267338872823433405909116246690997106348392631603290540877460068880804647782661022479327881667778523210260832125098683063525670688385903287204912731598937851626864184627964304140989692601760107815265304621884296525678854079000047125960657157367787826474778610671373941692593977521577054153343307033035478351711198536689629304859375734592637700585400680550802348408444930244257601099411122172646370016251465960805438551040509513454877128435396986970373041235226314892530155408425608547687481367493013103599953198266827344338804753195777416286688648666150740551682581771671477893349862284435353362935131645226814392232669500862457136527208466113227970375602709482851222818400460515640101988980414994326905300438430550276425020008454113863967734006194448274616142484415928502999445538966972017447278482545109245181075752575909810767737908655695209436376533917726176980589928084963545677190477273548000848630061387455248367498402148758924809180345519946852503005432014876464709696065942126264032320463341907970045237882634085513128343069247053640811357831794176080300585294375580739964626035482598325473776799228722933080826716135870888779208637475456721239489335387607810693149206114045275369739523561241097993541024633002128607188849818092419467060261947497384825142726501182265062129389866075756741305472610595101211767702557700174234164806010148878999811764201725002410833918423740815858038670014868818318366739996532645367328488834101207151329391853283615204697266973917401940226999577777142075094611550563567261470095603533407819305108169942726720736404837337273230651211982265212951585969387651142707032992343869636146715750779562212744534528199249189033595580139938148964111976299043715742572806009775901211774724992466940557445465845427520110359052311256099574355552889312876729319368832183450033597099050363671489629226724021228792394124177459949479290778001157042643886962514219994809477027688177162986702869575571798851873694064321078753999877495013005066988409469891641557587904281795184421153403563437068512367565038849661048353285750234591847804482369653391671411859695683385372382106240213863308735413625428180350414109105105513911284948164085233111470579776354897390754109039717573272142354404821312204814810332348985625569379374162630731642645740886686984235907730204395527735218493469806337951962292634967900970580925374312845240330322845329640461633356345424900690967507209133650760593973381668357827814006765010543243067900109067444741067397860161750869296640836537805254578921960450515896236667476583580132889377913484876800730004345632330134903763787908697502726559173787531306546362488078165821884109262777926954611802410115087036229316167058193375367038641446831263638984798409617532323098011464135069329463283514059931923655744136129135099988245233906819501485977405233140147128170159237349447393298319037695447279109441410035919971839115058592148654476366957096853206338480412577499204319402786321231952689054983722496486527210474642644227181581191998910482443059628331042884965642287132223236294823004649016139174447146472904795587754281599958321738563326033057500801545618398678303295117556670228548306730664790278983521037026444414089783187633930026458569704640579429580745719772598136007547333582359698591943404693971879615250520532421861534704028394062773600044312788623738697874434155920176601833239271039798710586423223427475661706069814745668616783707166107504914012433957800080003597841880620989687536792895339633518385164915091760458363644380044415763220128216479905803904723150316941287676173686365017219593755113275533831303010359799419279380709204751420949259706291118842227680592118848156488143579278019406091387220419193283542215001279130912374416177302836038269828133929808666260954976509604804193432339124443735806284319424518811827960380264260073814953610988531562453565040961096931799082467033598830058479146993578814770778332873052079792959142624094099847169597558494858149149869817160247065211075662756781961791378330672983344390924011816963673369893572535554868055796818194056920233724594683504213911148448433524134978340270279883861861168844350615456479647080148533888230772469174395995558544386197689442050966165465346319687603474070277790871692910960387268021036272358467026045568787063477264831705732144244601352876830349445626081588309843593536233972298842016475913942146105481059752740245002109880837831594491713246144898338408610211459577521259161630758872741940647186411574306409106145455513433954818627128763697576876079294249945656731114066567305298967960690369622539698595071741595151393264871494464102020290646038495705709798650819117326462791634632326895603961523292603547524770233396886407935796789735266268264158560161804048890115499928027672922164211332171676118077033156712771684573237607696961872431375312642856159651469692099570277040636777621000317799606100708477225266279811239732131073679152763789846393554703695116755404558171626924474344833005011982615239898287840025317165807976476461992783132959660432770856982705793454944014373721782943646949044282447883686700961377538562011134252804824259953381852103672637298771583469011878191089034306471165115424311742056115619093387493858004325549404829321518843120906026432027675655451603505838764640492990197146225237038885923997034585140519998350028084846207108950974277786125572950399463460567488262597693806053234523727768155105148544251393260106191742753976599023888909699514203973657852213009857694711539128797628271177176596919892225917969575697107884787283034732877880317440693235978826815762592189849382709922289726021645383512543684921124071515253633737915091088630171107621248520602126191884352543821721360880077060870093931290125435575760778167265537607583027194440943938728340308995624498173548333585964022579107836260043093458148211129254920265088652866555565088001466705526474725965824099741246765609533128336244875987518913478603796010759965814389297510797230460032303399715457189990864364061582246234824445698731545732233358861533532891543350471881276118602939699024281068425041763893521922745796707764477210337162708580458240673926036458071572221357410145990777698612967673857922218545732556826881529342895385935692837404685528229464797562836847031292174273090899780069004114359486613804017550775460495550782410775755260339496317555123811291021535239934661507646158468126419608834087024572862943397317569940503419661882850211300358501525297968966978426274397749061358022688736593582944624817559618703632056165067206585601969022994372196470537859691466771788114937001235530912002316777454007625344711292454984429040345141839175202826710192724179036335589282204624264136458718670082438212780558381262851502586424219178168205593159263456083348880082001643842679163258594674482401005218175190195574617103430959680598914177980108034475217639808637692625274613825538079891369844487734420801638108587200966099251135490835567917115507146874901898918878072351511220076038006011034479151956394933803075077660497461198151418972182145488765871747138454565679314580634690922139907497215678244457351078446759855838222435949307324567228621571153479708663538365943930711234091334888768413274902132725909940047364293648753312065203832231705109905054058244060408771149673450413113594000241333269512170052423914575956296406951153199954582630067051118626577204620407257697747185735513296006452396348405208423591520664133810441967349988064235010384284739241583618674418076070968888915349659597150247941467481477564355990443952318420795820862943519402358200004323438077344192576614279376882637974142459172611934288616598797740269228856019971589566875130743293364662186304043912739449899506811963117427145195540799944574343834235727258950823340602059564639202987458535709858828544800631553028241232991277674144647602457548143325915878340297031566000902891267095418655077361705695549946423143111913898374137327620529986995629128893258463159376240201544102192897777664515890224174342296567353104387489745004742879072818856226384977670944924644819996627195435988419491037249270301947861786890869840359594170932484623332717771148182025124009432205784967487523552523269385315402895127806455516132380809805819239614891578438186051194494791465075917306677017657126892886191164510096805329985919571954095008859244198640001431795060983696157566040458551909653462497499210130040773868792053674912492939253734155189292563133057357570403582194673106585713753395917275850957642346627639858483252089399352145006812972665864810351226382789805406435296824783914266872881419944259086317505156582015991091107078022356972691275722968578337741408351397397603245913249667573354426574435871273763882177386890806872900660380229636524905346895908850223313839161912930063639950117660275407279670284121836343712642951419331232960914997779755969989793475827302661014209404768746602325019024235445563515269304483160194644306107735607312755829893654386920121622120041911234242037394200734858629004476159761662505933260993854477947650419851723012786637721285341118066103853062480048901062717374572758067110291102470221922562757468244317781501932279053490420778999303591290224578840041643488612685975253195783015171278692102922733378194382534470815255283174436998337350190788640052762117512398316298675009653420409078679790076032617396381839694691310790423107996341609720545226840858441100447670511067053777897046578478396273457791884590139951352407908950516908557416715225055138371357361678663716505845642689104759496474749248580959292646985543897318917650583656922570452887014330570089043664825948264413610957171510975025632449806340310678952673993046375317388220321695857258451387070906063067464198519948147994995613305285403240319424903160183521490394211242381919521106974005932256334181511945447504994921006026564861964877027675068643985749654088145495967478852439983733597979186205719636157753997775117872165248763384981116986005817147043773387176186012129835195462346061373397433781346691796998434859519135534500242241482894558315850156672869144773213986269359578996484083021820325937381955387216904633744891799259821672167660021964668286206619000912549324047825111409463672570535372728073024458396771005319788010162645172879803034733936939312487009312748821019859719461529651852917221135508556192216583620986629434195649587704691831142328265422000670561142898932667512671528383710629449764179625205091506226814672821654463863958506609116919007083856777802345343181152256259540910339547770501961500666236866767475308040968121896069600292143800693682552112773264566691156598207218182963867908084277919026651411239476676430642559912100808873004132626981556113996008334958338658130958513424266267668109727351855315943631840561711859027270902035182777646632121456085290412646837414956371950551501293834999036137544521193581214365595501576944914185320863135586932054515426342719186577446803473712162879936154702056261308273594016928919162050361439500134682383834218620637160239142642915458529620664291384242807194839738767808105049215470585477551356287586697339117508142962162171812375173760696275679687350753996397827163893411871035241600638559421174006827248505616971296984730996778413023948757271017598968368600250247422234690319105360933645608827028162356611028469434683731456894115285670718452798761855104942301336835346753410486411889176890424709474290690256213939076027549463978324150914228999876036179990209776131192522875674386397707618340800063496989928491892731422394040236370008276901208675379109025400045407202266865913467196347644672869322976160638961708395492490257045950018952364521913974124452608040625730576114519337651280457609895113826855305054765303062242714313972301128675173890535838047359968967198515398231043780952234761037115379701883853770649978418346681820636165706779797090311731089156097896901046350605446288875272210445742504869992950667068592324161144025352695248558564908693440336428755237685039485433526695144685512218232161811752596976051877223404548632860553306112967745173800345128189517427667210243219739925416240606068946685192188150189829657688298840262583428176304156166637432204046985508184164215069337269762123681396635953430113059897787218114220715883982710406160524694098425873925422359234535462103280134523982542817221541843815474478034706040440090276764255364106043735065542625711550260696268025727658846596848394590741666381394210861435504378892405215202227415994066892373482833871361230218782398571452509260989764855672000278161837655728944249251617144440750002554638510568473026675289711622786238573995429611951603065413617152948228945775970550977381143478310703236318324308174422050391997390115213930920614156153272289581019023437970260984665894358620164236368333470722109552906114209838410513229747917705784340823122306690840631622146370361801772995428315529796350891728087166348999957822027331334197249575790355676646465086260173448178315418852103203424472246468899378817481858683397570001026804226823202485892686545087852685032745970222046694945511955680390801294670103589630568300677842019926833365866694518669464364682135770829145488056005452073841236818966218040031854570145838127205037462570428197480169969500974308848230159741592103555781088682584080514731521363138969592205868323083930829866454425950713979044840540990608661401098003912941250835069687434569440710643244456175712750941941584151305321332072463508958802245833166326226735790413416063093651788724955047949949435764278320806051750422833698533370764771802735158994838039175428726263215351315961214753792199818848573492151238937055135606824568859680380639161223711144104691397315977150315256134454170787481298425963037699119181565104211482929174485257813749401201532007729643159456090029900576024052955398830564488653773995003574373863035157716330746514097334085005656278898025295897540062497808430274754409290733866512704340147057710359649092812036308661920969391273956562265999799341395736071113914884081150460251816672092780888859595442916758553955389494543820126399552598348172890701824255584345260466700267108445923512957420890919908059997849019062458396844097881755691682688542550838025443236481580321871179019583875057429292463755314863301110804577828318764342260621517106735411585503528046255924257099754835109257531777312710037770216257638331146660008024904071188044450513257898223977907008923924139692466881766625720452070074868605173131993718805092072344863796407089566095179721182443139971894548408509256970714398419290144594591911540693758562667867539537762656883250791048146867706181662591288762186999246360925875844053623353735764098571801185788703945862927512367534817248453933237111576468738727941647800612896817352615086312589795537306886685569341444936405710377427305680910157704361514550206204934885101052629894101337850573857158200835367569501318992179644490955635831480364988396825250571924192424556634381260501494181761032490709969230567256454752207257244718423097537478354405400029919521675052604619659368442526074142003263861250961486811114096393195365859425720625077906223998757695820690382058036963488149742478728164942258998347920655230022263869060327720250580747699636118276301434386160695692475261533929446001318356366013407431150124605492636666454265308308382993684989389063873094132950379090237445918121911272504849530287470575418434200647543086240773042380956645218034665379829568192715960299455785793304232800343159965530464787161699735073702157350945392151408289327576602859176158480293735528383028841137041130677688216866338443303994513842704446821594834878848746383494072589949897760155543226191269404419941657872030113092546560544349983639434563798299557517651582566171735437965332886053956175214798862225212087669895031696529251741040406561365086933536367929337874392897572580806230379341928109663345152322589680764025020915581555331307647479150202815700494758641070519092288240584028643538821415036236761017762645925953771371343538884760725253724014616709532070010648606334653479950793202875070166315038130763646761977991242853727992899738905787384164205524407027819355327350835486220947066786517090447890085637611917189826848515610547190964561550706472005456955947263558682239022369987258597733616394614084920773456783976812690179476844224763552488579135079956770091498247071913259078396114054980761586989625669568599442376509234876164282096124285032761031049625738716757127670785340786275141536752974801860224227903564757843346914144441716584487911558068441213714012660360631786107613758020614276643224835152428788622966296057759909596219264637550612102235457346334692404656280983805018861467450549645935589139871273263002967260785145651225202356241641857725752429340461076421606627442616390016494507132107612156242997001739160644553606883478611933131967528838730194864087147165174793129987941170289333586144906112870049074839130167072258871312225384262828656304002810403299661492133260665007231205286171463833300232013427254519137352501075053352674631115562455997565255893759464030520633305754660581784216492989652341642983072963331169016482557522117605663507984722945499679905185265546976977570526019403025958218541246855426897358187219712761093601234499562386662261486650630225767402261559110721526869402692406036596793113133279364420801861748841794497797038929741893305643927222576475793532496303170848228857497052506870389300556900820867982042923945961802308733868333632121869058770102657042705903365852330965609529817547431638025957781308091069646350797636920819247731248723302575017919147702322955268337870747378497240022721827341100422051842697882944826004085105904113895905028152231383046031220412107036089867639440829694724522393605208625664089026454979144949823846881001776925947202721564841695118217391751036834702197369330336942131999109724922309780739951636861443403124088892550567909375812464030493163460475867303624320780572350099365657303749317483466394524548144751751628206764924307883675470826619389703726355708510831175264586275789010201008127167388870868314152179788920691847473316827802323056376239204920474391290070074073736519404099216645783579078336278795385334626918722408552002528066397662287734253097293828260356005490292720630893365547852152903846709154463657680563975000242878421700954622943280996783352588387954341048072958112191006002560875380288556340378533444049120747868216286949021336732920820642030548246025719920145814569965974292803299353392850159601989933107157054004386427023182774316916285331138455246291325530850391817237352671465247671788615754374505168381316048288698305135377221271533526720773095723172518929217850746941020183648293909587706044486177187889822937215464415379667847109729811841867058270908477493580605405840578060145569834801918929230233310478334158872209117829021479241478717191714736283445898113056731303981910146277244101631224179337990496001373235784172430060674095573218417511139387508942887101347716638655699732065082924024081365428098209417528144774328761660020393297586626016490733065632315697764457250699331831468576779303219982077341630417115849305646500739769712857003850215047782682392147853004585046310419357394517860245919896314936467614863100959896194449631337421346891315693810650945445979877224776362138392527747937529354488431386657879500361521534189685892487128656615635726222416127116286837624756640901598980034895904513574059920745609773448314019598598292342352450451245625729744992440772753101310769417510412991147886985344523604186986787701095209939115525578866498659318565539271301291585522652819412459990748181082175189718983948779560859104025471654236915361851703681879507182209727625677466326216035269071404749890317577676465139946179847158802411182389384641963171431479747969716062222406394339909948656808732756998206518466513711135813693333577623438860605448327290598345825290753631855926928684358060473258310803918484727924616663167464965604290925330091486761642096248987044183114608152591961596812748945518576347342012753417522962263151286162246778401296859192543719398477453879952725463478516838571126477378262848479455215564726215062045680572234539502990455736139994176114723557750539578454010639956161464382757829991817962195157616908351441586205571158213872527541747285443244284995368267035536730117887123778864133675626512671552078675831862969431807826125459704544629582752536893480032159377141620838072305243056226583295944031964106098571877608024384252220527279714011114373461059223257709672475717898333364544509725993118015120972292782638643057184463056500165273344579082246125499195220987842353672767849321633806402926350174599860285453473168512162864774434797341515529274809988546279966093309119028080493629614571787470513158095352546098995145769646688136615462789625755291700596847129061592183142034145065295367663890825223527099262150313294446752838414195083985247570874641965180280050161464203918450197833508845913278828911455776134144179397619588526518076357953336568796212459925315150230456690569298763305951852365837610203706877623681601420281442740166908562869931498860879102348888066317109560769069755022639412312237502922050909126849898000708328687925436812632578229424326325482250275063777452923965333404932236735721870817891835235065864501193837376506215821938540751404359882500384483278017846889167656196171010329788507299543486737925832070817359988413605736732548942937265274141393598714104271590142270215234442682191775395943904343991040532450899132743661083379147322897941926417687560449532272776974529077851491935697054603236779632327710597561162218709122912821690175779469911655993834568851095716133790894982663265597595922456713747363898541961074617369400965443453037699893421756526870328835982677865744219826342574117691192889323480523087296151817225760222810102052410765055407075605911209364874975092987636714319820224769796291393081276100298034035968074989194298994980661716081993342951634951476550289986939468114840443240388024059965706482937449180396332719250040242716746379547349030686524967586055963337702208645830361281430112241821641700307156096221576387217815466232516933821071296127009549879163965242598263660410365672278116391084497822772907322068307056130848479547938699331261588719256070690391026869214494595654695753497369666627909550431346708630287377465433339441801544126430126589204844765336936851961384352153878076064836663899164437825160373947006560071733984967079832420493720855649967860429419974861838486027706409861035595125278945107263517438012624811082004269959565395251697737283421566405847843199306193015614353360806481238628421618841573504209002452861882586562680012539830418628833448109808223787550341145048684470345729388212869739983381425017349775170285383507259927107037233086029439100533612144877009885277039106829657353892160903590714654749025112824014678591574971646874773419199343181500177401712105404486667553298484345753092539689867228715557206792576259081139731949642332439664850390747176202118285675136680563368177438651676246101623338738166249078903003028039269167660147911187756088897052592299633304472132093705766315774536174423043093553152599562089361027553875708021091872302874610734067367695921263085548827094384041763946826594817149359023373756899084276817043189349255813402888861841662406562893423110068716016753223407721874517458470987602077841248032263365921358710825515146170454740817047796679790579821047691702075618752630612910087580826348696245711208300588178473877159827214174303636935479718501178869118840875875989134525170454643279857836972216511610145203968462690489081705420422751679887193013725531087459816380881737603707259370543583115551096281715972459811836466983702548334739345494321020380666929046906603230606495111905279223077179047089944498323490988427231140735011589097900218747227072348653872279479922613207737211613383141191211299144817303326092117929654282275508812817846726399225206083474549868597421344049598969759462104710691224942384026127245578701618776701445048048046681361724715912056261632610211128465952979179708918289664391267873318615863824586112808417408993268465821621807341286411667705693358547957938813230296525556138500754815803836584967430138255975469022406692617126817273321721486769965780175996996277467143496505151386810273123489657323578655802416589999657574792609398935625606156620950353438529531223102605386019662626393963972914995008853239683942249320891477313658443176301873278806169011977256620203031496168961669469741416018501795637681515992022875909072096567810795274197167691267761731998338495151420732284153216274374793147938645660953788421372997783010902076258519615547365834392946273124869909100605573188001923003462603507308964170086454851429964698110459275644898518184291600232982720757208301951326548783431816412906389109287251623078600926856003152956251073463977510313197903604143773958504452049253994812188024495186613803561562798002172557736338173891986136137595520866466229031016480931139334432283044125649982859630928645357757248141530780303663734632903790196674328383741694201948539748649161463928466752328713509513754987331043465784584864445863887545804775880873916899164099361974023016811106376614074701229482847846215774683802445768133865945116165922497355060151672753783227259779797681423663625398849628998035852812159691289202882680428150353034993245067505157214621658427259816341754278362102934032051619551383435459796138008514305414570062264823483758498940091996703900054545385484028606763153421440609091720940708841001531550257206294881087806169626744891284107741516243458101856736968385277617268849253184816932333273599375572660379083785550596893960316686568764462159072154337268228662755810266318152696871341928903326172852965079331997509167280868018476628108361937076183930666102544756853892357205216691494518434291559227172967843296979951607211351527359509788417782391603730480883069150899089177767785533530910116645796712098997909637100391621326340501144602063840031307441624334105426041589692493479588987032020213629327602424494178177836434621336078622053567182154149869884980413936508564686886957878068226039460831569267941076109529804667308366560758600924407068215368264753938638118058554620915730325332314331171134158503237822014179554975131560854154560707430562823813463276397468667404198328185424982149200603591108943300842981109159928962335851018651532805207499253147417537742900773176813344453237175075231942762584121047670985781385076719450225234660441749998073591245964834515317023863300405418116148184379862447173903021700519378305820596753522333754384222214251696270291258840389272840393772755517484738542121840489715224218451021269777869163411546516217332899516098202639707694954375791341092800405854154654746963966071054778616842463218561549114287351180588641369359670207759630859196826975149860890306208523357750321853258879991308145403680965248858786132961912919675511627104355554747182936145843524808047863162692916088208844720869723156853515902310639496703489892161770438700123384639416924476326643676687590828221886762569299051482718685314713003871525431224514860837857952420584488734506365116465116133299582259522553468322401890845346169692385107600450052963854135585106702382296819845412283120732540520076166198939438595295757106699111231450655363977751637170288108583330801111897130948550685082292644444234864101751263522230610384545467998055774314383821372897586058063065324409589451099985513705484187020615998030349185826236238804598104280163036952355731925840639103944627037394294171952511136707368892818043156361350170742963485352476276314993112041202585370534186980977626171173658408226091171279044159521502352863672958984165488303641951482664503609939253139009780835868389499233476564415275166375868739649056389912372889187089116376875085844983808901838875433315797370432910724891697471017897638817330394933654656916573791748211018924181519530626914747112155041639674813725204215226726075888637785954193124223207984999133279970237130245258148028900080314742479404754085123162045346635326592446313585110182482462169905150905621449605959652881724944216129442008965940089883115139433881816474441594588052524132193459623922703240466275617739052546381237022550454845803181477685664284171187405443453250448013348802872793501332855790108999685127852118032700710240813309387308234382991515271944893987628013392137862380331785135289101602743285712689010007657837283673051089465331002125326247096988711163566677520505833634986035892854297001603570102587190710434088854876746647953354849186312739599411651154945521365069359147753242367731614111564161274886416138499739918561340594919345621085328354332143627168935763599584922100769242660841405879262507006506139466893560816556135769845395027708889929440326758338447642499954961715543611597963029121711615841285617361556722412210537294057518992812243144288574410021926695115654879501655940113074227004117201643624399244604955479152104887716352410108725964995016736345520169214940479255731625478578469724753535758235078569229185146031324641526452864302856763890340538213761768016223295526478746932520992573951981376733308334711600754086899724264072842907565432756577276881225485664615456112566937633040634876124237194343091690631230408950577268688856337767322226500755062189775945742643812648307402341260041373670593521073524621162521012253847235668033213277656520797311929031706549928933154219258927650847759481037518892316008520883728106212411277316703981241592231621117641491947437744215564914563755712774022674190303441012160718743568637933049076957792217335983729625110617095617005677555857043995691943138016634378575943823074838399132007949728645019520299009254691099982286464421361499106613892059254550052008780500434502318252900365279695559411942920482896729286663178939842621968599996425840001920733569165536062356779305893788477909887782488892757229911108777630369234530829551430721267338566211084076605082931937751289084716972674950596402542356069369014726841535481174396036774953538546321390513726186086712529647040572626958441596778634686827358505749791183301085792227236935818747371712123577431737194476166607319725795023479711355468223448724471886903665588336172708888645821297019952918210344692022582648277007513527225106928989498208321071544232436683397721656319336739830845851704665600099852866632479460565259601610599612356870064481698724165463466254908057901524484659731112853094443045956088095397674399128863336699427334665439531075481240625107256059897175385719105374187418759756054783248032017144112442044834484072653469918525547283535912666471641837595118248749584018623570618008512705140104864517388741381970812470451657576966903435908378980521120670448104796891518245041749663031392905750377885062229691967057418135494041647099297306645159766069888903562034677943265318190717835544389020312409588079743508293814547684440189644561729520899567025124506878934629276278880479858934137640249625502173924554182970124883969319971593095604226890644264926210214140501845399072420459049074089051310648761925982899142874419965756414083954010331625092950546362635183794304309841068478564876685517804951194394649244428804310087526154699407035387531664691743691800441145773762719605856260264488462175350816817064376793363737531358096202032356865066746906810385793204301913938373040013040062504058425903843199269897339094557550039451466167210065116880283506523505893589205363831334594246814251668905279938110585683149270842780782973845519717567981710562172213142901103569536637162521084597794514496871932357833561621353643454322451187580330532700642617765344841691678965727519785868696857057119839650517597442481833959310617790451466450884180851700666177423840758019351825467390558241068232146344299846033445447983570652932867767611323329049972496612518307169020130885829190387090990063739931263202485196479400970095472730916656577842395282442817413415185918964190426340433989367661992574497458541749897997385708470137777752169353836557927669823786005415837392249746477431249124074525680622590190147620886325488849112812211699950414921102487612888961522218343189904261550303513899672045569085186097370040579974808568374460650831479136323801168148515530505658887914612094195307905701592903304264248512073491541177719077612798356177407372468691413139841074875391918428857893098932515088547754218617077546148678290967392293001336083839175558417469877228310382008595279888987657426668439202492359182463532443297473696130514692604012867826991358274213043961895354384782317507999825999376916031471959120947298486411367567229734779809556819732872850402677530227364587641863378320939988360637124262985638101063546068131935476504597983352134145950351637502540790862505259931464673896841355345670619463596066308783869386514527222417929597834172846689870604015591764626796379365636213377942699071308526371807987583560128991577855593163449721949170283633982482402647802177515840018856876465336306251814339849735487480521741824907392358416740271026770116258823769118247831712172012120579477348190380315522995787386696470593107466802686514218479171234941008189204097956576055823852041837938713811337308316308656226427736195994498320758849214008561150109263270608542076392137185027813519292181134109565790861523614314417380715893872081379452183359373328501570680897973667758999331260150228097829362609951293620961253290107307933625119896187226436658648014304996482002982094495606545721885030614192203474088345744365715520858405168459589075897039142208970419556182274319827091398681275566343604007923091210234738862924972713859847282523073457740749282421133969488394953550641913751279983244516929225257363169866241546931387345139742720853207345020053051285411233747740134003530033986991922857375968099752185162476055876491587995828141185201820773347710695982070173006295321213373746184029176792724644498108466036419733224027881015974455796126390592371437042536371969385198398911451425539329147965953267105160350199712424844323540474225668298560069107109499512666832658583464976750806609307977005166512510629074272008244058873154523845950031126255649066385637519875217214446822073684674064414924430631241351478846166038852517671941367527579037492482772404006628664926489485650978456427582765525357693016878527200087767329821678807086559489301107023590120949956406891003389191735478234902890062507846353863358093426072054235946735538062657332798789717289442966139895188518829663171807214522706549706255691946624387032713177812627901833403991241701523017713502637934290143558107229749665871259590845345714948919338116053938783596685620445402922039380162566921938597895743070953843014803651556952391038683666541774667160063194327693995734091809396751529727445435147823513957034229891957587316486714089338444316573758421768773983534021924643620128743697332176515208315599350627915245555003843092741891494242899066373114052815074395038480709685447041126623469666607717271326744425726036018981806810171786965956071514565781463514579329309660500098455139137118409882921740763648454251926851510770005835143755183760282357648155527409607715721361796766665181446600584152788826635272466846799043951423665261353508931095339654497287098316491857313832353347265901935571596924624375683640113742632653976776122978898144448130844249246065826571983696233778008566002217231836802888553477056717928651120113343471788928073644214300026980991790414246290726430378059851366394389805130591928648960068151426237042011851269752184017370995589845002106797360355216839906059509506358919639430948486524621484323675768395567273787068523950643765506447983485251676546346633049863179016068149219831823310826058566760814655683292801047426358326899868601308825869597800931237911227361131179233900909391246859333271809898581254487549815424863649591395775632115932158929554777611707344373301805435808235712156836128691046297420477016713144218576961584103719163512131948578518257439361898813527068268021897472128782667932816876041742848757772681306507917626301376479367360426701091901311925164070517310745723451451877078220625365861509211165745513128243671590158471268479656312246123297543036718316930267113656668162404096994844785230940012853764165511459338290338955693387037987247042276995140726304184507541356296006947675235914636865162215153509445541164791841447684755889750929657097591247924308148987222041121879682004601039917535215686397282450939598308613502601449767143897337311553378031968603532441427240068335349355961091262616937999717670329500621268816929262824501068484341567207602989584836768696180065164654119024116606379532915054139931069653923894780242931248831045642686646387608462069466745168261338946687918954038593429545622435481671872022634809998909757441516752722845823382541504339785783342243114528436822017690179307841329336145997344942833934888615826801996703096956094868621285853984764409295819177149496654282167728518602340987433300667395996193853765023557594931096856475355396750458248428308086497088312424614350650699550772198079759007669241113959050478679349113732768878810886008801243143019948106359201605911515754768032356992423504044457526080213988216213478055944663248949881400193384665890594293007060959199161400418156868440553010804530061120860460929310352776374913113874620082663986317120965557218645340644358204176035532864428564789456446238331138803852163058722450281139886630761901141187278643980638053922791010981501850562429932953856823138989698113599683961915839456101612514928235906532201215689076870983556881793968050260772381777426502308823408642553189963254006653286717621193438825539446325946936756162544355398235939626499202938291507967078818677335574863222421034100272487940823457336105025430822353076374516031932633257320186135894411910375734975796423462450008048211359823288086683185580865629899662430130022068591955280806087766536557773762909853291926917775058799493711318135299595704834449812871821605398756810065975370827609523787272846905426158805922657413670770268249481485079981090159098925556149518755731528724217683783467243861738373530350621084921254868527735923568533063111771697659917805936036640549785384702395596886091667987950335938001691015230254907823893289948190979107820255479956236861105330499905607847151455226390314838321095659817772587391430642272473726620311591308284334454641617179559927218736760461247534714779274237399615212628146334978307502492939065476002726776161616238815005341421476489757919812379921029793332254875723739205226352892787514148857993259885656423167849576134618445512496234380390100057546242010104434438956879291772948459536844795200390899708566581406317667969984963727293132350631224090549056631911481151383149403152309545021708618934528596134435569234605945065115724409211398656011091549855572336364218862463945604087854341063514359027629944599039896886225552744195787497073066045473101683061431551573200048117799307068998456166007505387162474272794151753892218218787005691380630033648673785313547084773695027225915207891207885215257597694806871937909299307157616825583134548608182704351704929840201924051078675344749551202478925228396319399121090811443113022332308995470698392733350045374332235530417433800259089782574835941995898445165559111641532679941068918789612734645592804589140288158228100523781427985929912422671719769361017229589608962555621744343714423739814931263261271162042420298431447171566675012757824213861122164914234135593163775308655004587858960248236331832563604036308391313346607910995905744893346925448687036237905704089804410021307955333688212430899189531022754567081604093186325760164682842153190086010377331453494316795134976098248568949533352684210759228563892617807165894332365075251229674691314172121584850522522751436574683669059273842681445005808579050634749966069809897277630691948453679947550368998784884268671794262370096203927953368043013379532480799265972087427294557762136189158005991612869010592187672469815759396298353663521573581595033225632623703671487457328227808749341592251073591243917249397642413169047768256889400255871336869013004003833513948403172883273153995119321088870524035713753012394155483596613064157412411745596539849718974034622181957941179635414072756281287533783828602216103481965393260761910625484065890331566053697698044202135950533273434819450061607389015754888887796889729728582333242702692221552213682220187131889337750009687851497272564213019885996061274204083186864673462863827630868604099408495703506314427755633403430539388878750422290623768263464999239776908458201012216509303951497672100254269662745387781880128787519010028532998533537670240800200004306503384859944549579734339313562744168513110925543120192914267794324119509602268526027837327468215993984683827705438937377095036269380095976134963090648584586594962805197476734789277134888893298596127801286853620320215567236229306230906306777518529660547919473254479433649052799825613844473823811917113672725523404373656901895381447654152670181646519522617088058214139071521441083944033106626824947845496977109764858837898423662641886510644629880635003128989172322592225325364299925340077781365359993205193934838407732531673079209532653003161435863166190709235485104242633606815969835224983611477793613239385853506322878766282432831737058519333270148551363583609522700194662622878598401146285854208394939088832196040442736576663912574652261663833787598360358376360731001097008948889359764961896389898442068734081205869690416317577516894729640487271972351842159058532434374602795396367372545270559592289102885029840167448610544054997017929366527483114377990854554083127020346291362122710297938749981870165484993253109075638791436344483556713759617280923136702404542082372819239436403761645096454586429956033077936455590919502054074473530872749609255416719204077933795499727650201880956225285140704040169088592711491860758851970021564206449995819588756851911110363486326916986900952508116269568548551575708986806344146852126958258193587881715114237309956616952057163972851707321371686135423131277769606926412820869076380234337778352600510388526393926303042392826070547263259169320970952887168634720317646986023829866223091025744018405406422648759577937610809320752656752094226532099101066623743278817899389749183156229878759772612044606045234416993613662706672111033707134051764073247963239802076991408991531069657984930062527074286577092666402980759860586081279030746523966148100346695569225442293278193552592552081934653209572994994799028321328284555054530834875934354860005386352338361121906526055186046405485521074875148508158516981449550016427359843771888431893455781353470288560488789499458621952229416432290775992477273034562058529703977475615151367476011220033280291866556249560687884828435543541266219440802652301010506554684145155233927593357171907706087407991821506570245353856585305270661004836812433448379407322287738783544527503074129567067081458203383499949532107340742499161685443094276879026121133251779662452884100585640391398897147653274171603115593555663369870086844333348359891294216703857434217028692810476630844997705600740783578591203825431974177494687783512293440359887888994139587062959686757391928339319912974593740346930190769586633575379706470575218553207201315249144457982267744772202144871354545286315736251924687501316434862850736440016090742480286263630251173803556540512616418738784794674199385407513440254922253706327420488360784314593376829290402108527840764040869812100630491106034124882639168344967029769448254283481308906200514798284749303464348652893829389949136449820750393633208333727017664457913020073547405921337238969944309705502998307504440630919833228837659455516449085508524112942161002861572962253152248445896811510624228859927320119661232511868368469344546672810120347867799890081337095362858252329563757392014082641415012927242432369635322733920121128103851861009235518436285360048926704805548628340130039111472620359337584647022033399351923257258622384045976001254892324199671470162395570929658458900858348355446177677779353203118700055111103899726359844308174380813603518742622557205640764547343757235339185830869555371301287678665514887261252774520558627426943461719197805057493603028150098894075738891052159051490441589101014833985322816477402202752485609819127011665169198252040294736678067063603502349309540774642948935497829871613419366547353055347680701518686466270590136648718461603991073958309069858731505623444311655834713043599917417710313932896462901928131461276564567591906070308654761267987509041918273996337984111990449694662008078985450395977670488969248097381297475555823105881791395732077804936922124176925767037844382357381971140352451634783542729479150815609747949742353019592124230442992841737103233372861829723478748078415966420855695480911370212187893396179328935847454362811265380127895479045844457660265649969780592513004172922057326473817287236387939523163331008226355957257885983175741851480550632129941781619929460623323648160878048639010338446958003050384396112113220617555767090180281286515013929687238616594545257553058042760018715171211165742703965297814745226287055473796665060478161812759836659363624656418842465388109285467332087652148746359396569254199194862956835176449557920968035744486847425407270161242772432605679463402804795694267509017270685769479278268781142850908908822195225193860106883992633433292573651862242636712067339270309907803737021435199375081988265082011879830875795784874562401531844361883026223228777395909155433527666560703512004308011797900846973354681913146851966090676145821223610437252198679218788718943325417506978671789497816564249434231466494223549261249967147472667016556592497968941479644652459773544499751232101469846239006853338042833551832568095540602020006442765249572962530282282684716078145417010441020180256629846426727845979849490001744380166330545376079762512298926504437065343355232962083380208303670366113445699728370218029117716344054996948520521009784269599582402193985788912342678086116961580874517254270646294021190699375895186978655307714810871086846919708978180123043847893672085981232137119621556719132326201973078633779591711787218865960837092286626001273888654755213544502214088667332265876628413100001103202163230476656373530516118384056518060546316582123446641945724084149635672415436316675072036493193055951767097827007431642156857581490141572913479246948694280577967470387654460073520076150595176220654459378549923264676157617143969318798882089663551536862468544616663860107693398037949673300292684363901769799701460126997202017796214288641918171522197105924664789382484950535765853312814535029929455232220511089198215068989376541711735093736337152698279645156129921042288529592765924627952694753356956271061237710659565065562627858087537670265778732970818227192336832581536299143427682933399660707424178759486645497273493839126492042144257197087197744221362943223022632271635272407956129777214657180976625801071614579512617891258005482026208164784169646953598284220119403913608846934850672575110158782302440157730555515806187689677703655250739320097244964866436372624920366432072517606255669586818889228585084542750676578673893826911729315023893986339445435510326053922553781525081467577294164550422061744784328386832810050490706273340033163816534295441692351714813083761117816176467601242383965823052179690937306525342918175066319100956362336602331248600990867247017365949836913665884597646546355295259330970727484707754552468439469802896672280377483552761902621252510708450436640677460881371933013240198439273643393734990916155037760848632515763305079169068729770566308305765309847315362177651951303732503116853971967907106365896126125157197060590621615945547069330390931194090288444276935670401653651669767399213560612216343110000249038753133381543177905711743922504435594119519644662910659025010181663080813624855190843856233229357430704797625501119432029103226230800788080669794366907022840868130939661534271139999911330310163475300825541571577694863610424497881217113854078539573671663273114256134241276521488084167464519719729063646426015388012210412054384121830511118908813673126754400309999199365473804331536349803164788455534313368309832938080537521094756013328827630169437873834300775191219067112333556584647407004244082456332996562934243833488200703754703657621433956309491972097078463641082528467320931038375524288836564463091445825084134527482835911631897592558964684075411219326368455642680763551348471295263407932109227865742713191356810082192187209486132627738785694880563246385548625729279698012982709078019918140856327757238780885453888123906481621388688344923268927982987471849169522680457159786348047558268566290902217401642237756436784455345776396582055978829578254513670094871054832259634857397200409604334441645231782713121255599928345481846079042028293568340190562045652324123608223408553502039364323240498966299628718561210026950780422971819512898751109282261804628649218845709809719083328737703073691400653278274564706307373395573181374902035485530373361650872143738147585935955821668128531335123832847815316083076847747058572233041816937037276681555706886207370749471760214988754125350784009141079638418570200079493614431736812100675486275311541719024813394989745438612675926094489966531902520588719262023471830060724481343776822582180623830226109026741856195784609481517192820080444310283617331840552752205161031378348852115291884361657958583323814607056279958078046695870820719445068906019271686412700850522731698990980121266984135389999599920240991353730886178690018604335531533110066663100828568220352914867985002773342658494173740706005699402448967761688037909118324488463442593282711184514815370004033258930114510824619398018753342694156220560341888026813642825332101751359936860181633816454089521081513747796223553086416985009356818546735480049321157771709375150489429615755744386599346863080375201871756826022005171284620479869835330404246795956984289544770529583547663056726927341564506478706321353386839609260168130338352018761400729119292570813524207575034941636691048261536449333048586705095993367963471870378683951759298279805061390465257262654618405979062545292111361308712252397618776276633537646428030279896724350222561986436092124712156496072462564367329933641345584572032612749334904846968253672208911686303416623599846673751145051042799188386739037083086530764182933692527280094888240398540828403616162355090449740120915822536728690654611369102469438148730196504569486750409613792876288807896356645050145648534899810819032685591089483612074459430884239330126602477230676937679130967329838641446269479059069317146499788751664110258137076130469814466926262995774747738450646994929079099976304837738743279956490386971821936450599017201084021060109205769552974518105715594516925317951792811168206121897552142556978625300448678964745165678842638416112688944719997765525289489763933898210088090491182316086916149214957256763873856318684495734412093916795447543705341578627620751735252065375773862979262870621350921498671677876136808344876643067814166900306173178504275755627555145095234192189765456009436466735441315472790400173896884882808908916752663102191925179761409840223843711917495843734377285783288522562078665177890575402345254433284644726802217301085998131356094415310066419252085333565472754099482609486142029661599160444753044913549299843236365787436958061810016017695229248640767684602570797567732643506574884748227556125226001830886074998917121319228192282496384888122147882534369594720496877704188584002863628756286473379153424121627708220056703085582470717867756253169102786410479928819024639164113726437051388279378935110016050681034568118636843518401360074280818930985279084448892877713748523350996432206998233905536431882612331176951945663189850579104869715868162626965689207628278742482254023369147519473061796451190918901083720232063510045139493719909279306223765545130992143750747164596971434888720620860037439650212803396591399800557971392175555779784320238281823007699190128974906970169604873845976532195855948686980071404257732104486872362394384370013966296548075164882922995495224272543046026195342692421130127158299657699377098405843920137551955343595084272849980050858050045601090100051044021669082526117129266489389435109651412275963917311393893426105042053417771888926995102897970850602220567596788738849561946867621441293684284079936930463760522613102201968575019391310503832215031231603186610783352552091477885949604986011646843846025493970277067688067542634579776371222579334964093701600413647325936351731706618397502575119187110258686940651726981822821494611121907739105590333315218237022136868607148259172168076172468488406391249466655895845921520242009492873087791789626250691449479447169929314764200937845210626489319403991124285887973849767773922911694547588695059922490295179722995813148956018208475077100816915497930925316516297204083212683251923073893313484263181142526402238472267566949587565786359104663860936491758629572780833017209261672740694300400439974708419681903400853092465770359630466283928911500468100748299165251700100780674670596063516779744846627918275134046597864891498531048025892056805316316608003123479691804928700416992977822972730096425341235679183041072778351510772183639652892748640420189570166846733033719679004700332902427260281127364062095380444550894465486467388505954583742146384651119514131030861109795096932669444956534035712113976782342017765813203551886680633816652322369966394280955471696499740745267127993313262834380962456353696056719718915688359603222099545274964481973377204360097643317094887222931427771557976515479246330950541052856290856755727319074445072871896308230967145283665271634492951887159539943516379492707707779841837939494284619785916116666950579453394353155505305956945111177371396933210237522320055183637776145640577821718529065564825889523776076557217250607208784955259392221481199258988242321028905998602429876488292280492668932908352841985419438845091131758516804165713920345483761003296477671948437143351474118538484725836419860919142880412016314209901908322349161369861317802048602872071136922358639104336831416521118704758192301074121141535006277233265499432645224125357103959445599599842849417001698080751992405687026957125311741908593523789501631793101569840903899371410746492210712148263583145719796208834849736105904526636696597341995964335185799027442400115055574847970341375763694083911700936272251591963400101097059679663432485193608916520409436555466766575491283754213468808051957182809860266373316376906411983567364533843519205920991451571788476496084519346312404250589308417578181564056310975038108109216266833663767601746576311744696460531126591998131057124688743992542336802652120020663808038574890252304676959926634647809456220935525265119176961256643523949044243541065184634748818939670706471503878866998971925218593773280144269825312350511213911802700752206939752276992162315938651370119616008898163045685921804111196451893597505199221912092216351713729682186549085404932620192291324042925149492454746108977267325740567640769373478329445194492138996818217920685477067958327013463866115410841631529068273906230002339612436924318183132092516386472953765125782858651067533525710052737526073982020554150662100825188610431110628200115830699887650997501877225148519793768581082801277558107258177295935871863801401168795364981280492752546626067407512918425482633474667940268279754642710779638428546284257735858119508804973551805876086690701072359372851852835807318953333212428162434019304387902709206001738926459449010597673081387893854240376469910472302617780203755520732427195259276866119025120963095483263700101358222207464373779113689595808809483289322771444163126537311054014030200232494590682892113141716545784257850268180446275792425896907525777423995693081899910365122824692156150527868518986891386753810557589952834176648935983921904933606482321379937032441142764818440545120983951321779933609544639100680166691715333457627286295723103039410032872369861309876964002311016993065861050277125852483174512320770634963468756203767548270025783466554527048366231632045176081273021746175691983267331533104628038844987256510790718080622347891150756165577857410632584690995151912799130444450636451382783730394140487063994093641300734989464479850377848081168579218138524992505452020372530705476059186124537258128508397487342076765671525013609196427616444086608676690180777912027814011505452247032261596566833410577849117397817326286542648986437753899625291096968884709013800932417792880047415354548633877601619010411419876367103310369148504988881123374655640786296762428883224234620441495723520456658213894409874168781749266256348076967954353210771957701826632943184061360538926390782359401416050969450260572673362303455211113189077103040086592180144175067199602389508312378798912515867068732737301319255731390481183046419507612596077273163427377483153030450111735740765270001062348502205336146134679750819675612777578385170630511133452507446805692382485799756393858326767351730156942410447546162177766731907324684720168921251149769549589719491903592544249868740662185330339426256896954848106715595588643722164475942933359128717884970614346665165866427099274009962323469066537928034190524690019397281408105048277823594209135850084273937793221793616406547341653483550428177313672578195777060513457069028518345542555758848140963755644177915517463886758265966168556910001395045637046011925255128315112739351059804176732159434529632502998054353741766273047736833314800082149118599210937436466788975208985998934804665122809058834280833051016440634107575631755575993017798600091370158347280492729682004345917892656016017354507817155296688572007629720191709288635724810555352066316897943780990232041427022407257213867010972259890600726536653598070806090609123448471780927665541110071846559805685252740210545911786444637366397713192219951773905426622350270166053023885579580788783474484546674674947829367070699688091661742843653594012786100015682351508670672163251147852007049628916745393919644504257210540575200885092469519488991396836985514398251281041618829680067421060026833574478150348128418268485882389215160945106136295004311576159685584622814100647925031135499339242582173379579755043553948185436043117419634743619205322987722556075925869539351489152922205794106429664286463905628999422707343909775506854525446069429863051982136548856528713066842537689938003564778042485094834044820332828941127515044600508427559194381298962407900388830060665580593776722069247119115405360545958449906213737759229212587524412762413756247181428587388534222630772609805668121971674109515328557567946612039855442718874307584171713440257062990299964150303671659701691177887762947183438504269017359710770149242455279036770033661262081896726151242913796917586206506491120131597100834642776166447237642976750541816278167434349632255031576152589613548385141352659391159362559054044371716909196985134020388530048611447690917770582322314076847635543217747126903679372637379934318097786580972624806972620731537969994098934749131831573304740296729514136171494260421618064732646696804241589786858858048160468563889935838388723799250265652598893016803553023478398284329153894507785665220113132811398872285053680152053467320027032714805991527198617400408746386084415330048188182444224116086888144234021104417786152602499341885208519604916016295357517821968071641100563267855304860111523881697391745866640703046195012787180788230438545558228898659973432981651256354542444515173005035023267737847446708339604346687445361615447735847778239868468031780907916640756457528514155072157396186470543627643075864198009881117236456201090974154037132462345875501302873389389883639407819202720272797250489890849762829677154746715645734472860185171915218727390416878701118211579465636313017672478106870919364928066455395557614326128046203752946426997264720704510182590635353515593470220255618546499347276772809206170988933864133088103286037905696801115737774660192510545028641120236394873566783544687049560076044697978147026162550316939386621988629576892638012385271497164273077909569541066295526007597893880139398479220366564164251600657835263992015366660036347965320052864846131192203349902586978093242396344138670145316137552665593934766017170777248452324616925380404336595601529504465257223550276161169780408471356520352325068656747016087346761662131967730620497535259695355593646535763195116171499519143466215513659927888491243449140997180446005906799826608641281682114662719854733561061452007235987987087842841263675526529355258878469820734884955607521049372565777330752798327219685275031564622747770623378730924893220063806529398578287649673233563150588588298050731110259336292842032778054016359780921862036995451902698414422341282741319352869073428812071025432878887340345851513801240251585427093940251841102979844305280326565983101580077262488144464424879135298960731823028402256767721630961176701491745740533992876088096478496695302649143862066695979678161330855295918210002202697982638441843597162154377564700470115047222735029480153363547757425052650507698796423065368216632194061788410886228533791977066657905176859762515647799653923948430879045208918017539619591315737070016823285352588460177542509753443011122316813601232664206211676568154921391741498425283753510115753346071288725372136719764091495899862642871636536633148104107329620413463819301175397541908116746055537432361244874849664188311734498037616129357397358690136672068920745493061589341708296975744675904949095229914874660607182088592801656196311972632562373647113437995993131079404677847822823511421364433210468504441678756745147624123632923684480999918226031147030748464763497225331569108000913447205912239841047736606026953908126040333724594693775319942586066160603399929678013049893498185556789474572566792079629846321539305379184404431914269763056663885572589645851873015427824460704519749138402088108416300225245976280528871032484578397239605493781861586119807846082751811025575486289824812492671754467469645857612028863568936333161113466498053315824270161134139238715590489213284143104684237990285016470937124485763129201102735980570404391094574612524982262612494943219172438065968024217820890910742076138429853324115521564270755747437564601486348197053683071429774854688600794307921951584178842987007154146399290723309860544547356448127758709532717355655038909963049227935492043807046281212380188912427552457168699085795234997849888724653132835564066013396677993242989027316095513893656527768996148032610945103477094029482144499561076071800081773594145995582872967498148515890528389567754530866127015304349245895517124533097598457027128906527527789696618318097068296039007392979062265926919968921847577231315884515727019061236139156080464951563940755001783557143335265644196459939994291001919942541302731187211303268945064685082503732699959002831227209471975460890830489469168730106289121570746861031909876316132540824310236846933260028350515903102407772532450819328260816697799425026477912711452597588370624201883333739329063686386646558570299300955713440415019784734398194279717759461673134948386137530359262642073642829060195660612710276494931557395093940208843166985436477097840491984723583470962659344499144803461379501661954539040823717034854900955790898541132638785741929901708514953705881834952412718880498019953282322444805461649550873948916945725800739894209258098579359467166660408713705771199316700626003579710402359356991932576520845819739598415885646822048810116811280328291606039286501370858299946316071911586841485481604154882778898039094768576288691784828016962110941525907236731684844956550328127777381232137184535342572493380262754300297386018460427002037921215189607085166882923330123671421656316411223522079245985963875510998829430882661140421355619710622796065969792136739523544159576460320093543891691112337148570160922599214782349309004140106803784564956409080100769803477390872303621634734562538362715480214380478349957300673787799750885958416081385545124378728855160570536677409029087563680285958551753216985008530249724836561448420842147857797143983493688643821187061308221301151676294698853381436966067750610306192710517710348785500939393853638631510407242043663173920674341762900521363202220487670675159620649394040864124728776108896059794883922210624067675898007816378525468084858166527274905448345693019092286228876474263027129628460821473183434960588544585285360321553399735929073637346701977581658158841324048389614466638743614439922484909276584967395268177323838394859345245072708350275339384516119475138200897742253210051477379012540584370915419453407442597388387665917815621706878422204564645651475542419035644364878891761037557871317278938737662110484453787600955725029875264884419083220684431901785502708582904817026926783811388472653274225659844570174543276901523172409338408184801710166981758539230412206750043234560942447550579629812714815959386639270390405100462739256288068432431742270509689686179376021262225881488133281484638732521704680578709934864543216572941080154509075465692189137932109919530008312157500475638243561642345547835409099007737616606645409438231261773251213315776850769148364563567107864286024826273165281683970523652382011438702855048758531176284612126009658047024381850525592866130018327921494810234696572113382518210267715168304918505926431396871368234340098922074932264201821747207491471030087230612218270812353445674116991565353764105429040563285409344112570939186704164630306517898166100514237105026086186634169803013834132082643628467829910948743905455907639133179543547316807734533974125209765549353625187732217128831023814825484403181854140739993287556004783652139114454075678245271888127348565840642638879638319574480912375818655451471266304669046308718496657407101782984674943323231456381997331456681813143105510876118559584008038337088225097099637324717470800202357830024986428268737128507117174863779470460300346585328401167801383229935681515431638380886039550412660539427772812508507656260803267944936759385534027673732153684414745441964013404185788159408661924361864817086723785584711240276226365155633117142824953851823272093639877898670679656301141371764332547649028721831668116780440511688602395334905962721198233924475371240471493676804581806259207118729422587957325262663853293043690701440448691925105863820107827499020399083396391938999066707569023079874240838312147622779366880766364332748232560449106791614077563716855399581762015729167887862120743333379375512169113140696484005516378257226091875263407409374875222856817600932193358452309291713992845245212972881150044087761745970108457954998845671287691284606229231741403492000631217210293565164933615096939390935195864145377436729908192413310234608759931731684689473368264501978136379913619044764610302204711165914837514065290284018670088064863678758828975835525803748685870038967694488140868305003492482765011410528021292950405289443326759786866497177084032806146312822190508436637684858380190205910552410423525245049081459997806120436882937979408645249755275040296911185744789533489383137190952193789118010695268205172500754308765605369144642604907095474801976405452275955176915230123865405543316601141566286779505044995345427509055031749728100339660422163980791228090549618722347493391967316622701781541489528492450618082478761936821970616925969152679821829975999586332139501869308360468865634800768286119712719461295300973898729795405418438757502826143638845329729414700427615645242492561738519861815663303515577086715811437055680322148206780761074879083971059798145827264296740635373378429691986039867205531384899998193888977026618617419074540812706826497978851456043303222163351216936196005989578626206587221672237047165680598470716638202711334091918008270715806370031801010172497774826696258590072683942629047603836149756063808537031767921092052498026091019936963090415976448034344639542347172696451231186391807710110798595839948600195830077151335646437344806858811062497067056572312281007609801858264312972704215214218832998224737027334058708197843968163774977884388652761587418971213742712173329602205064427953398592532893891805495404901048075484423338979606517564843521301920259323996941055222427332834273357322128278589080599452457387418489187570037667983148506037267321976536556005492139956847722894652838756498504285629252534589321873291090511702418792055412619311481062129509286705224784011234937045112158524514161981772819425198361901771960848978580945835943124546060860052713492162864464700396722085890713297415531083355023578032803901187321048160147235846323903956858190808888074205832070950061048348492791978809503045986674885392037019705678055491277991206497493335020632463250010043924834361443286373395876027144636371228534787364541289026130568379749096881061780901851274196107011571088445519032793692032634148721089064540209165883946401598439186834076785405668019798056485253026253787850491039556027562063207209319831758040086796453553527735040623811340066836401143419533235813550798681921944237690883751819022679097272764202846001735657440641876233059822196074743819797280054001420221799991361328318676237672805569408872494941371897282455047762338182343034033226652572439187230537636802381799164184072050092822015810067621772874346973353839586625349775860091780961126320412715160385628405850465297517322451851482777516995100923133134405245392471602453443203025091747418869033589770460806358700501122605675283660878300024597558459009380653225549510965481304917562009767604372736641583288844383350433591657621150931932152575086526158623250300540446932575759164137831916830983961402546137175229969428290996873766174173681344358343980537129061000034601314019358066490725293051234684624324788951531102968928368167695955083001707063190827671464923766118870647564068116999613088052887093855103251749840118921293558172798361780902894230000788152929029266224543903862316337772992637714266166846537453750969196279612389147544235458874500468823511904099119278095759650500608838787965274434006730318537876254375370582982693645267303446229762233354304826234615971169731344969646195160402323483680860390766265475441543514474880098630811821018706310188948605020635517556542844344571013696474216748148115912057356334198932873397267229379677549999771032082028273065363764292174231749154378453702435681824598457018655946717386915692946517839287073241811906164857324874923039401583573205297703754052086111925634254689577829833224563023004232668469217158850861661576886958422150397237698366314452876836139140240416549461499722616745546217649759751656871667273873987896701927777060576691122115546300600182476762937905887458227445867889428268508789902365606727401327087707494795349062150545462555628095107543831624363278597767231321891591800709303293159208608212412446425013959759404582974899196851182260605426671239941059457752130079355827456486778482029114317364306092399346154706522521466364181895338316172159787078840406927116116441399261959965255381041247458677802301919798858470178800891595254702943091981251692319621430551133356683971638251859796748587160388213857976165911063173241815868261311310544625084473928681666110243107051660509601004337865587386637971527518124722604033984394852685985935965904643028457958191743131005626837347919786729868532977335386202042830600893471111747924313963479537805022597359021392178492540613759868828905675929342930165455001339566943695555986861215828388612872171815206281375380875715156952062790754657227368911307240203591056408562215893156919128362274717622054920659904940935318545352180440329918458020327908602556861628479266909657726282388923586902725260911591930382665327802042773548029709460679052590983574720346571018544539547362065501487860257614229870889093631979820076021898943894704278175289373270474318410112309636132136167837950622725696959584192665583250940428025553232365447287878140995870040963148610286003486827215499413862773331914129226863541077357152260629967730546389603762466992308586930160653301632220976674335984280696208786977889678142080052829344837987510636602583646809280870345684426745971203049318353561499208672270848171315825631902986042302198395531659925956901618798478430349211618492668236913946063030959171392418612743881281290048257639678013862746531923130457783299569377610771650435058369241168464948553293105163019046092737362177966560129775759629803221902536230047433859540539937608666258982507893846821474077388463141377521908555292574381053642095535736532471207851959988800781194108659708517605233244829432613861583188601790450259198956189324806090498209657726594892786759673307497946963047704954246658684684302410734648601532695888309926652076500865369082535351965499452577982589458910334901878556191621386904469438347134078378154485989860012257307047807486529044481865484210187129074311926586911259932571675630980082927998245198357319748091414415123486313805401164097119656876588580889526552951260533057815059786248924469016734890362759693546039662358018696070921270137037419967080386459780645661496099076810717159048095379783392017338515014868262127678540419096026517476273936065921117901151785807201079617483662074490319843173894679239784351942294833110409160816091420543050082406089265216656738541459126917704868409364230457394062694924541646746371392801448829247188818022441806703522431509137777814812013391451851589233535224248300543198794356867372910814008321591440169428292988690937968433486406554297956657812132398384888097458992253581663728256160654621383701786353470907460467606243595689194439782820121174095605202434892069670229156074918597173108415901550831102458783492763704030102095329577785196748322769302678277965969141456103533936035918190555327997625209272043679555513468147438598956443940151635610055981352390402831422646839910499365189873097055897758783966898208319302653956948995109956413240583736921644395141869884513211221395551357907795075875351216297462192955420674260943793329018545531600223848467448636051655106888166303659200791130752867771054613595286879773950600767527943282215622687048422581888126739562171682672664931515832259095494000922506210094352676910839999874429355712740036221189977661997557800827692995834132024954343418179315694139597535691135669926641964921993232043997879169257011422251081161935696852390061663936467869942165797191966771504467326989604398272536425575180195945058852176763754485486081692079377741880724250068794254255148124803451570772225082520159399890988646712179988230726983228486931982834423686407664158968854099759524768744486161500274413294171670830729603043201260732987227930154081688380145152970318380813827321338181342136029556661431111281716887801821329923855441677199677316745564787372773234844304491171653640561804586233431069167758149730897463150503481387879715848140781345269584588075945512501970827768640248324649978270730448011147979368559034669024843001697250149292556058493501260622575563313757235937092897200442769062006600385470743744331151718939086444897059582423801451597436018371380891037582805811587336041979190472093082954134766981805101862363105023350299314985791537261608577777936295288014434900610636141758487703917123376303581708896754662519220697774386947296581603380859897330744299683649804770150605355586487915517947214515094178567463518771712049783126237408684904461092943358693287054774571950333279346722237499422599959659838873218361626031086898652477528996047556386592109275827182279869886764699333039547522676810524854597382130121252916655246562745872464047979399511134649650680641653047551573199899129974522878871286119958034546620869861755163794738199661477945483868055053359760997683068443727235414289718864528942790086291235794419301587902260110856165762584033652899931784075148115321954433407799563584195290128081680471767579929008222865549871261994668178697607916478163673839142719037889462371612765562894544701809382308305838143945498673815491197067994471046710219964137189229058537941870815348372404256785690415836823197304659476644708186954280077385060062600098998758823406082381625693712967256628187178495906670547550152700867332235283944070582488860051938905418188034465109987906672730750140696236202992274127581102055807884019559820701011030987976436465343542608167048721747358175287058096910450764979122457421040749350542609895708162737038865236533468054977142221961203826244916621885550221529587839614877016609717413786243671575483069191578997588067453392132769067292425379088125751388625628243196608473294818032605484394974687322659203778513120780165391830421742214725328805092486562457799106718267302509080404863398456567344830731772310245633924560438838995364133628060618710596479252201197724658353185037774365687676232809648678209253674924729829791651963839809951315812135278634480874231557461224077852135630440368772250753239992943301412018958357843806546133195065777293928938706295240271216011137865304555912041039283432187222268429178725198818789153733572353641569135952354960919014811590503827432545683587136418945422709604800555316995421072985128894872546122780868810293392602002906275340497004404672298416179102420350883919144752949736375414026556489111153568625444246533262379306357971499034879855603322888247699712032811635957550279414362476884530239139349856823242586708239930447109447666123966173293731639581930536663125267224242006266052158938737449365807030989721390556072300075340153143329923231438011678291130074953881667599144347032360154352039454492036795853379237900141024118295562994734208276965296241811330557592549542016605624433330474354346032200658974360363043863549857636545983282788731678866468762045775606684258690420716553041386671183543943369854360235467479034783635296910239176016005119501115121336681028920501633710716714591049281110891766001170036976737177639477055438255274275156092005895905300268454403509041734932463559196049526141206620817483229336983345518554994177953388137890104717122664558694411169514891403951624069548715537119739804331857301445864101261972221948972167344366067753495960905383853221366070920255312838676255158349187352191058813362588867574207292320190592734871375625924195637668032436603204716404850685754423658234406890519327655385228483150522866217444897471744432156853634882080113396279863993233336411578523139143216346104686128605621126657217643249846183189594419253856544783122218569467248874329331052173689195474016027179356673253138208113358650934918151681158509977904378416857266620812472082214068114451928423584629926488332206305261015243211508806350863933227976640889658868661893438397103220057641555292770058182516634693948443278977538416666475579460530707513631754017382804213432058095202062070012901069324441132168153269144191286868344275149977593533523404882844975030156662254018746238011391847843023319019005414011199555851221391524747828140133522078436676634268712293675156710649792351782907645608037557791535853546316292637722112027148116735853096741679559147246839001348082090791222392741522197348282117749393319621063113712080784868661366326044101036765570554446071611719159667913034221562322342282146114575369612732961557549119373135810072514853594878558176160636731197798222755454626499725223672138998879466032843197976436575755121179496878132597474048031770061970801888725748870863776072182443122004730467501206232690489959139332374361896400833889098781198037333951804625151972967516556342576176392083681373259522485916313053304596225658202281118740128453170407819339333604991808908048280681748364082828090918900428641968513317803563454164576668976104165547565585349141838539421643313014064334897459841404846919432032106213507037900557276126669346924184083293372500559067396236886925498097527446450660344160146817145456146647548423768016835183869408608797687583162681814326848203218321965583720130222090668620884729112235442261964565620307855633045554340352951422758525822590975218334793767507794811601962015142865883657342920371954609462323481228647078277841783914241047999810393683911700120074030787361301475307668246010120477584537062336613767792936484688917496795908022921101196876241067779596922065192586654114059249268655229903446430575702459034567506061146187279845853236440718205016245317440326901525580106983547264380187213756002052653851054251102441048216736234701852410794382877323223878884840377015909829852514681718099829247472142086053158054076189760377843016008627845886128659508435220146111388378023529075404688240473531149828733293462401309030835160327428228798794735485623545381078280764146964156327077687461401098532989526690996201139096058371682505444643451286214330804408232995667446236998011887637069811831825637864671722658337947603275853383508606171574313878005089698229590637126069844445698053800199389939294588153370423296685161416847197237572025750039136979446536043026588702047929857894996566966108729140413208568037155092287594230244579942039414202602027858617040240973263291152540153446499479971701669784671672567477720682211430586302469037629266200173866958633886319455281162354041101821180040864168988454586820623551686746937140250101878794700108442076372885911347934642984670472773614379300549842809803920424537980431672107249845167691528366510945481990583139410220895607273276893210201041649330348975402065672192143478573663743840932951174849460121732606863881109329191662992441789136307556635206054428215716723404283746752147805005027709476952932058627011049677320036748927890673881506427734911389289323847455853643940115770775554584133302831658665090076734121994326403335402195194592665896257615659000481747779761237457285314537796250226273952570071163498476868782709348825510495222803824197500373535894087247977709443454262775317658818999689888783697950830832258695469226956924611799101066965579386671983660838138009991740825730696736563605486657208794320588950210696818475035504949563561800484605410288922846916495725430917357906920988364292468658344800537140628435051371324981535948804117518819072066453681131911017899547109069094473919244291561542512559495171647801489780437687474643032315207120009727286083174228878858808936088678473620062185599064945778519759180129280108409928440081746382492674748745948336011163471731353769729621585789265684174573087518139903758411893301843465679267021914877623770759770749304679067810762336124766795307122569892566117781832644677711002683572784171169838139883119000050275631883405558278853937702855119224066920725264663244056632425561859175429169902835550456807512330113713772849780308473106829235405025845642295300024932416987201856083101768510718627019574490999332927063160766764221626040150515627003547032570078902467690406789459378641464847446237266896607338772314244015765321164587449224102670883870959745551164970029811602714912974294699615456223862357877667756350816493359962417413199034887924090832924841888770497043461311645742590917988402068688203478551145781637059397061445233304819351989290535856996531767919005177875239780911410892631287679931415636789164114186331085900383662779225915305406512284323689488485262113444006054988751172558878140652667173969611276506209120346352213260782215340085976203325992302173427312786786906287187276445599651074852631649039402014792493523152071189528529767404778119993702506050275165835492489572648311796728617093063314248857978601273833589597058661969468811672794485857460888414813566647285422373578061615131043286672084258076097985889296891688575736386468899595386335731251197645691445245445801574549343923405977295819947022945038590519073372574722161741307832101341128207814626527730292062552769554284013111620318252694272668989278133733817585324625359087702876533353977772797525889228659187070587723202388221317885221582885546070582525265227776308203297466859722457569513769274378358071777677361993500377565444004238204335493626056989451605470998894074300993275484558624973416077734282422042386411674190428950466799488966225619357890778681346720497934585433761385636037882513584842761607727581632701298522580912041078119350156208978105941719884273609759513708112239666791091743408017498707258863356385128038969006750536820199407820250021940083933942982581716029148540172918955938689917277831942271454486672109662715484860992975872853677636303391816469119256964219493556403126532971423812086069612458564851011932892911445713076934813299806267821886288980590511580068617775749070243517669206382935680833838028754246027254906163080381537097098827905088118705737285149007946971027758260767963001976801157993022253359325310449265904787873569717144823565918085594254788142482146088067879796443639182558788120692648153811111513343431371680156219927606466716263717984197617783609536506716529612799489780237488031065972141003515349875282476374821438328989755309642699423954722261318494871587323456185815722537205927161513964751909414620328077719427530274671030949987302820713265213953349581544819914382011310641439090289238186275088307331208080379814728873656303308216322789913836339082151406955498912871835057063790063242440334706484752420229387567529272593844584943643078516492934650608642383691061307105888699113300648849651927032131076072982045998429786719103233060724971271560213022121677786355157576205057465379439058640567021916809683074099174358490176614934906893931477941153526453566585168585514713329262542573432623322070378184732353065845346649935587835765164981592958981475948328151176836159905914521021007337664378725345444351528306251039750032097872679280029637753443779100020670661706659940585065844788181219097239419621045627589467079996745152250368750046985614624069397293123165797171910409798377550921772657190181157402773284565110944612770814956502941674863212820312487627219819598742419788623852558242464870325775334991499520221308944152480238507597356559287289236133076336935173532312185041110887927892243336603627329762744859555559967331722461817731888492637675342439993719610811661226818160715269112258849430569763066682897274070004115060672691596083071725045619532571661934539991688220225731249862836020242392610073544828608743691313304602164232661038582864766366734657718089396773403275621954226570638108174439553999480464953357576923174705822301776577959309740968821332305744863158200139720388929619452524533640550663967249547713049988159689839427818844945396168436610630331126778911625584846815423293878011818727645593686100355688500150446521145441571456730871226769180296444102796087529741609489887418681499962645133905738190913580336423229730344220223000891130797104657688725787158228135804247167069663801163403239753238623963286645473364287654003891742662805461567261569976556445110183831998959076456435048881260663153745450645634284435841983029202161341496514917710806062028402206006693730959183169316700241657557519942823083912248408754792273909998377744307209612622575478187412428877525596368332834417801451422453619068308162503905560224711189729587627726061641218537314858016753250134513321622014434612233896224281135908820426474648888430416366895341520515165261963201299181318333747998194397139947256202079520635785447642365010508394898798467982321204150007295215674836436740413771992169440797928894604048910548845160550243798289172679696846129642471742613763347560695924857258904859794442374186412302419851077627061446189669668532389456354153816150677849950765826642604254024547856119673784571297173305694703556205283282623156438898245787378430236769628516780497307239319234295106416812899197245362321199216700366867647747292988477048861212844374599088907050792912479423923347471405837536630755927431400437201457977334463014159126858144373660187036888297467266892810128191977938384568690704545747390720121428054034810296866249645370259947993687738998547272977599762898430307986246539810524326441379494148291424161188210933921756745330707474379854714466836123413652701237100456329350050879551981348483149844408465965969510017398259451579102673685343550768730372402034112791707525924012917224156234206236822971098685291847755418964796309221998908487018006600794569117423613187345493791301030431496849553940731962866737590421696183755364322425516839286569819403860370693445477087132931932937711953836233124476843705228150941939275479051950142675099427412789297163085880191385726944189574111339788581588054933150328714890738698285523916534799606833615042681695473416915077337558086936679265452340918461867700761742730451211423588347892174130301094039668194546540671051322490654514951322268681827295477347863815255285468696891065758340451100831290074824445266486145455399333523685054864313636992776934909515226790018138713199570497413639751505278933258291373098352975589627535793508213339285899872555560342255164351966299449309272042694783899233299089390842763770627839398719218605612519425382768604165804118955010761993014808575083702670232880570416154575810669634305221494247570175190383472379308279215932449657860930247551107907641701992322984773413806977332078764327078901902549281899738746000721801797409106762344730398734752506702220456863933545909294514487117247678834367282840810585308882498560168036885061359257061451927890624960874039355022549892704278067899027115063412069123638628082090981162901911559532401435080610001632003865458408413511886322994386475731102866405281891958230454976255963322439859840331908350688316242630543736503715454394469942150217607324801801296000470044520220141234937861005904278062403852885691479140438502511078892738935632413642890990092730202266251212133114738933203072291220038140676456893438783317281940385713660548063931053747994944908825122706562672029327365153926338690629673727508506438482661468045597519147310418922532785006914085043540763995853772396171868487801282055680304662721925557711614166072591091460387356298179673189195832809320328659034324821564713090659664294452959926558459093406551996602228762352901168071080166381413673458928975296850926401229418991040956426823134642329830087579985422504915559879226282358403783173856843891635772371800859447549393030600262829222287859383667579047729098090000993777677688675729709807064906294252499940007976659770755119812997775317672114971661298027486586753026351963168724134174507990736045998249334750288708321589733750537712319482290926141563597441399657395664972861296518413024892537198082440669171029087399443726735333658519964043832231987275436393872538480309704711683284472696766204063256163799835797829070153247226572831775686135514084382731566400291260968918701994408094631519039038779979019032227911012069206304198003365801372954486544424116969830122674279261537103377475085537069035598137402386343077892994511304819263692664479217031450187565633910499932802739514803617045211640283873084388575600616446905321015489937906964813391145788483650776996261607003881205946878621323781162599959420549729592674320415293498263301049288026947477220996247995604042625458130659791897105601340413438913109940365325942023075452434589269620306743101855872309345508888090552882029994598104115528659267755896315376267257271222463170590288761896725061447801402156810468781438101338799012139210742404543171004063656227610182869831651734065318624987237188572040020225855571753412828644779156590859034530648853771346159585082546047704252441114302157491785951595657330616499106235777092549492949609753573551084462779258251780719588490599371132979369593804996360594040292049700679680138182776961368554627479194688002318696965679977860044227467868068087886364079392921690470803675767152872298905277164183511120810968885927950705765244175795972929354216782880464222881061934900874116800195081126959530649583246247587142222611018981709360233116565692168427856909522896235355394044441822515596589233930996275782969266262276075756433078447785251160651469532492701592351432101911571813066137328084854923988129909736573687335793384457967121494518767045478549684064813611461296542502660261287515870121240151017103385512931737049912273869907480247624134117774256417086715961088428830583660140404781152433046199724370504272196928231934916583243977563969624230869333647403259675730779262168615007930754700972103122858114417887727748351237251393050610752643185030296726743423889449280875516682234730496246519024981174173409598250589466458841691544174464461689210813727186461967081853075937627590917644396815046271810967692227717146423061761001363100053482489356743080540418199734414844263647506918662911320566320583965701459091065472976745852131853831714000517743900340487254839253060447804909044314953743952684336454299949755600310458729045226980983267896057661790899679846893775541417329692288065835957639415606549393849408563856563631697176128480539732257401125390802049882431270418007139529827486367735589302917799479489991088831593212983647260140532756351300390096907750230251146016061770902137405438561452173179924203809294777037991922842227998997949974145390419800515238597376748068022233370344423365215550629059224522659094973157792894173460822674915461301177355993740839346174398696450611516922737795705657168326071484226614118044821742099230662649267317478860929079765154181271894369321277170683065107044902010973118131357384356983922128170263607692217744085243513538249894255124174520847150445051320279306256969398681098291460882032251971698842488610411233431165384642380195954828933321062294320700913613205151658149867576536093239871508344506399268551941752320824578839623223841669621528885830031552712465704254096622300534175002796189331182664619342104440540402227282878755488946563189652477230572266284434475628505908776269298209397947043559030027698761118199410715783337986874535304389277063273969020944221755007253311626414422036801277060371468153695021545911590346246650814407396619184980425332422991629651726441000837828128957587170728371499243615730584168100578008005640533441760778656842560966516746830675887612816608656317589315955950528733515057413715516087807610672836170358956282410626197302859201792297143354636448975900849999270119022843758657305036963444163121626504446656681853356553371718393124348586704323185614721926949914490044468754148984784595619417923886809704057349396264754939602646473868378770196444764289228482914958758490907246358557095061921265742666355511558882282787604544848558220177147557279908156884145665278253787174883654858238539098475659041667696286628053290693119044432359053604558942068003937527343324086915948888778055369999981886943462308603851976666684107486283418311752385059144546728902342391024787354420078681528512182270556273992504417960944414447649551678792820879526471382579231413504875049266637430367063910385949075318689356561224877433700641159124574679991614769700363823140799699693412631696581560365710454469086782386761606513875925975543998898587743940736962397255691349467574063123600307082100812816102591998657059928395851243164380413068634918969093831417098363129901206336915129552637784546904538585828173813578517347795323803665253900311176507582803533210473166211875308611211472794588898335336055962379818462499871115403636762458258164865133427024956164393565675748710058028998817445250055027268654359036240999779111848255644311596487200650987530231236349276223094819158383788736061884611916845038021140929182320596265855808655685802283115827162227703818727850509836193607286656508532881630196931002066471724245008551150830803903157271093902284769905014798224171506103879807690117088532417717173650562165818541840755634798291943335217648326310380814207193565455302029019309109601560575394385143604837768886734342715241887812398748430949241238644709535180165059672547067040286158006372170185499876330983145033135736670051012086306124508695511751462278995749826954299376091813227912299576815821438686189294225181487552684874347273334337408982017737308248170110714741314713408149992646940022141117702566369634075326145576699387285157529172935206478654122741146661058599693862641052183211678427812408155428158424287136987608922313382155672506014393914313010621509776258211207011006395254127657876122719656712579673204977571026718485206314355140251754734762313660722786889892526350053349656339447378570603639577063230499591189124039099599518389812360877008954038679116972499839881093008517299655004028524999351543175638374160042323747432537820215083035217950674142872915058635679654926309816325119681967039312250940944116121498671031301753201830180339464689889636846828388455183303655956466669774537760225340639544000665575118420589316444287643798937281485626953824355347189219354988535567452310452169338290287992979677372753034936313312399042473489188184283935228228780205859153602059894047426782643217931968082748057480069145398106531595639702396539466018736522356668827241726863634928431876315665298727160061541815164034366051685470410474887616262632715171676564900470146930925957135588995029984716602152513817839596091761307129177222909654284413189992468504670216003440874642298101060713467292168379359541119848288596579102996694816460997670219609362353311144497269086876997195436515033846675584918791000477350293541673511912643704337616553960175418571410146134618160834787032745217400775075053889254459162303319736608044365427181203360426456152622400082972816603493378552044835043926582511671023491624992831985923243444465491767674293106628678206449057914145646274801042109620863620487336761531976164530065762173733117242646732429810367562767765610548818844995458897483473590666275641034681879637039448213201768696812074204969322297061570684522980461958460040483304877342686885506962206706418728320008724181128059106563262431080303907687236970818723324872164432003296650338138908806610704737376448520853754836190599504241162165276618460209173113477364715074742424281238038802116886555712542861058459250144223249920415847594045977350344008552430141577621123433123047041633274886315686860756045910579761355127003552408693717434467878896310904038749117417962106394590396442673239954863850961229122695459807985078802135487144764897825829530673823764298268918971817808655410138393744879632634415603008772378884634941813533941112970801376130250306477415406248779765165117456189865279723821884955745394143051730570759628356316266094573042951657913477402120497138491894698376270475352802771193332052461131183896433931645518171715739805704657231313668832498191613630041611449240033615293925981788135819822498434418131727249185514506674343388407214289135058915041825281769937371436818407478334134024293653765671360692394043042651440150510589006875481475639975287987493507104241070794929108586352346452751128130671341050821416454741653392884916049777776480858095300143521624907945092881183035778966342321596055321753374992468189621566321598873908380346765810882242216927579821405318994246613819689052146861414954539297877274606627216838383852821760209284257901943866284060676441730264407833936844446554317632144635134625891394691244950159595508314672702587289903689398827161745774140677151567740476379335413472257161671594332797397413417952947889518868153676552797024777429772993483446613905149716323399745500815514317564838985779360747245152318927502961279780827003070220417928867008295899000079196055521817684028202433725010161462693133249627874685744345116161167355071443427504537359941422988985411857463719932547234558988336740590806038200150808354043374102923467567558348887934754201946830901731867846106623291780948876551387137421156811216289296419667445385488478673265422225771986286398806308274048084952569193528237850510788771866984158166068065797035535628615896052521763597186152054720797315589209169632194748996238708169215693608794987492485563039171249215012355109348764416724263335602610220678565852740187920921893330841109845271228218577663449809518955432798152881571066341851739798582684640879042496617715708241343096160660083459742283442599460105439071613578681783335851484340724100969995064436273894267456217380455704040909597175297546187660209623547589511681340190956549007338964704372781945036248697065495447039021906459401130728446422906735993427961761948804760726994980451512223944465995391351855348995109387922892317964300723597151494913307203066140790047644501451506904052763326324689427511241538232419644740476006549031688296929211728308399619472017659377945957602852902056984238242017241357234892296171105909528911747680632285777672942706454671576666724698982794281106546298731931012687311336777610830672596210753620190632719992539941550781665989421103063656033297545394961926636605347295938054570823250925653194961712756044215300022681276699259581946607513852679356488678286713251338733985728380295977146830238143575815113875146231214347274309894036300748804336320702468058324655834255387793399908922821452124060892180884653970856736002291516877348938433713997384866286548630942748885900063526955531962914705724485996861501873034913280386405333379406285143699742175847260624730134415123775919401698588260646350134332276050813007161109079705878295774594114924219878114848838031257799949938559996253254841817617523765778328509984717273693797747126791996492696568234310547858442327422356744204686173632362209174505614156481830960239669201655434433167686592470356507616605399116429549002702394453272522123631563162656405825344459170213991150326045409257042489885571189967801121879379627111922769619722552234657290207693128480539130344096826218905021317534912446926716830987227746984223472708622084656280134496145309919508725678972408012572585493422341574691394334793128196032125144695706265832657497291397369438078480095419268048088455370860350421000381580331705486886436864845018262260293625259246021316380805555975007105606145078868921524539992493167927426043061592606973210663726499580991460287086942705843576473786470483395899824208582155415301100991560227237186866580937763704338403722381056031134709495969332273654945003476179400192487633578134514872153586511805992644807311323807668610881901988165666889472982389133717902273116845797961271937854763428750909950293028519755449764990132576082766268948187882430048799672602918307716679241975778852460193655189445777349630808597981092424964645763844110577824118316796636504324131633456472979243037860611716244510149877687799878552092041561469118333676811809221421394465166130312713334620631792706948873991776760078562590652832359171050209248003282543741244674845736949671880588309282214419627696193676543411485039948759490852953754812120944200620646018199378760636981756070014691266026748080787813248638483901361882011731101637043199276611192251460900668545054043798696376352490340150131213227730354717367915617137700276886098813978710536037235128828418797167592470928428908841895134450753859839697090329029905127204766111358275812308253221967022517342524608108718194301528744343039879016040755255693022300826178822983552181461116741665709062683599963319772489796665360538193832380735025500478442215954229442836132092824933745408593704220424670217159857484955114968582986514320489452620267410916720592269495751811934346459751156447756862888857919075529663955813446774979132045327314530766783615129972214534276715905562481416913973806775217502221439625143959185979977357876860290589399347995161075310111653505674526690720656086211179290991610788440587920846441082767419987941719573441655415015856114516865338881592969716270822400854267593825982217729843815809073956495078983788087369390888813276040154947411208571211846309772991001479889329619288844382528051641395194593440482471880981854908670533505319274776834990520991351937656912003947429840669591553273850624226393741086992534352212876311984169532694675297210759309720106206286906703055730600479011967166698674569422446653762321071849604936238413847511813506182057368499873420384687441183537007689438657748279937490415109070816193724255406477575198334902875687655612037747565217153758909797365245384357056060264593451852704027303333081152575011296729709635624171180083472311776721872129410635906314040641790263507529436480604231660114788904455425302799437255080032807320984771824755546457812008727626590467989719995906471872160702483479039302686508750244150561128130228155759014916799452791473461337947740629705431531260298635924258235620944528607603571676669270865055267136886692280449316695299508812006465563629887762440474313895873668852374002828002305666699462741635115556955273656114064017666343637432980419835972505522503377056761720308617531923658625082242752124327204744548934313587855559172171496532362939965119244034787123977963130787132925816368809110796209155946162776272805523044075322989641199237757993367534296235484567220477341482414456783614149606578834846083934190384482921534509694221368557547903092118813062595944032355396324078162937954202089593389084774671913115042808380742368984441513717879616048919400213429689768583975643133260387821937313893445854306977276904119288161187854723270042769649919732984083726642035950095277251616367663639111426442460966605416566912644880494209602083361464906348421163740127531359607077992732649075675817816634484752522320865866248115401335993259902109012126309467790598156855735881900233202985384871366470353151670872141326080166120020095261874931196376381405706215731624165811276230191521686580476542660117396781108906027792268673220963919466609210353705861770493812569217609491283964339668364297925423669229848633287927151090533369154493604054520674028694160926397916025143717846822018258687401406372560177580683920929344458304597476077041928806888228236726454422092583700637235202370427612436487366360643351028973469579777636293923556142891292146562772785063532073759761011792550677268656374132589011329418008348965124419009993916055048749461936403874107583474337679071807256603359680425616268877491035568164549347551223696549938358514090165524880980248028325712239863651793297610942728436414067784123241972179456225405454221984998007126198626236299580434874456015965001169404479982750040876463696976830916284846158279456536357167322566940258970522121286684242624942265211269743343125699458330462522544464563194181316106469014324348810960367716918991052361975129569866958380241942422588121437327100783408202317705030742966353717868724370735835245465284516082206970556432462202964204876098173755218775276825253132307342031275027476491581490733413455047693211837574589570860336983936172973145879880419248968604700105550593878104166565433422529400260882299503317259093025810377894227644866323180860704978406654060234997709290534007904890200025515048515836118627549839380140837883263087837606799215890180515569851818797390967017257781609654721738007874384411303728597033318552554008385198401092617128560511591025686413561481372473289592357154678720666445799544354980716403287130123503048098075116369774387536194280710435321800837344388471749788129571782548674487816678869714471250679327830334380435820376313173640585147746999016981586317935784951850575382912521084559298878687468019200581560987616028175721826572269332574164962073387993832340822731256073617380195285541500368547793376451944106126816285883485564756779316774711034370786513796634534185802711154784753780221960833007308754420370226429295379498815111647726665728073919006369161071373686698574973473221690281868119046146926058652303132673939070237302847231269911359305270866325224823489685654947867742131471900190542539234654466340176588140288375327794568676537533515171134309674033367297488894430466127038970200351466342433482948687936673934563448544130362273906520360766259732268838428340431124523567375313129643386179270671787828958853530988697397597587270833964202007483721453166514598150280193183772778435625285709354863253778218928027581544586519034464381843412811999051481638258178660447015250968391580247495585041945972816435566277928877087294210931583236545779938455492516080118223760740375959099469619237572804904063085558122326987948283547805676307570406626353687891499583070673343990321921212268163993921112932373732951014901192890605984950402338346218708260548918521443554498683566704592189668250305071232309555261097125132939162043317256562043864413635693277812206266658959738276315483190931257569165972265221527080832166105171068654171892893490668611093909287187807775198435127109630693044975290996587060444281459822741839548408134551169326328462405704782153898366769134128294124619437903536503034361921865042145556252453791449271805257800353399354197364692914034596132474613468798199984676234034214411468455080560757108963158259723801468915688116178165174192651032123230270598375466669456745653946767358006349245049212206013870972286212195413041841878773647191447583188185686224145468089709090242580290119900692108355355307101024084422442955985136535728344168010830754587541838877611345371740125950646327013117068025717313693515902175342587516277238288599717266255351978487400901563077358193012186206280018108082627401565932936971970125837129174084880075036985541588240080469098075109860906913881158075965884435229865500066294247672120249434284725083141890294807542479318093659762581044460997890258017797846742783575233215201964854648481425336070167023294181937793528314719892478307106814790978749199160698536152303015211061558680687780029599214032325433576860496130307712484780748411165391032492298999845315752072834041003213838261368767295945574004120817551549913668003196896486238503112545809189925726343336708815228950312100227769058617561443163400064838907997642056060208369953926925739381199410720627947207024559156047494031991381956248654201361249159393029039204696764939103653383948426763119098547515926151633578180182008355520120908827427942219952916676364282929980712362782278325737643300682901295504258353278892546094374587243251173044245027553780173049795629412089999371783816760181558822777111550329867113417654894426144451757657930011610219369715915479953472734059331214623174132786078092426704957260972531374519733703468221707195970827118184719328587184142876713452623274342451260081077565926857302452181926452423550470235436926093732927541264474752988995988763710935439596842104047283308047639386131675654246111602219974744306655781772917115991634464012861291383813509739340023469392427407487987363765077457476345851713037052183508810953395046308339382745865280506845259313047730287817937469880835320210418562904800239711240403617970149978072781101951698400832478262906928191200278249464246634179408602409700082428800684339142863498668151402440856636321584905329182696582856170635058204899441459160595499528333831502710477474983597446605087609342369315528158985367218335728462292624737115329482674161343008232866880648675537523822875360314498566769365616545925555388200807199820922083200464242855396373954493246243795100958227238860598474195027682011250081780516298213424153513555713217250231935334531279042921791186437473311970395603798989570990446281779191074684665157873034334457106056944031704601681898828251560369208101877943428959508079857535079228801992197145760567666242893001484514780110500779673865004430571153099534382010196934907251725961388646366550067404475144045703871718555763248860111765412008933403535098671308962960972768558194005281285816457342584715978239335629002867434006700021147116916072659642716238475399346673532539297806461808998432915297674662454208734450243579881962085558944562710174824703557739742386988330767528749261579394036689127733645096535731894214768294010074248910400081622452592005860037685754191785531173934707604818968451471632256278466012376837344742742086116292360736996648191929577293797188187089934973015153526218360065188838901893989257462545585681768068661875463811821522855135277434909832107966736327646950057534299611808555987716889208431802171379139410549481708891773689365686365988599272711103753195159141286775793626095785165641474126734166490958497455925658166008354075395316409369934623737132338129241824761949546481379186254530859031953400574537111679596260029380123731266843397627679281068102207394913350860658736482591470989176723943423886945276689921302917868463173901678935715442338859785549250466393237252182137952110485329282261331516929617187823646261251894638040231499626450315044301373779385522208449657884994331651151154567556986142143342350073176333046995073410293092402979492395430477411513596552574813598310986465575011620908238721485006490244464795480472148939106938455625925426293803196362145096598439823344392737655650505416289176771474268159010388924777877603790556100861443528581999081479958946541145621763093498181008922563643878094637688668282705710132524151260202635883247203302086263896685531990952039906144297978982993172759060659247146717638325297371480625350531150087414648512234161766509855948816512600945069449901440497174600448285394072139169647957394763028096075522919436401541936757666079735536347321449273170604656003485634027570766036918066045044606005544704299861697243510092637572624539117106052126957465084894653826955225313272444096957310703158285890782479878507840247946371687122688230301157107410118707091877473666928482152403811726787844382700791978409910657775397787541309531181562461190206518036663189961488346225922413582362829438809177370592685956207353802729592637104161467482318168031640664059426955807776557680835369536438183772045776605469086777004828205465957667025588481988220501113767566295723350232741805149372909606450767458122240991625855120221482989457089465595581417810896065778827643120714644122956037775151026475345681648031967753658250542797871859629460157537502456491407866806199567088887670083298204555945824156265455365967584686358983954243938002866854677721724753304679146415236433493589853164330477724100973338762752145859319639432299871855167371837844142347437701235589471536250978296040896327662561854849443901408660000234439723355577621623628868831780092505301104647806753936549386108431019708376428512188091594745297167546788005102456685497238462007651417323780198575120869890578468499617140625862507330305421999925414497399047979463650330000623536004068577746300915959469875709837886462633772220156419653505340391471003985932916184561182203870666795345118559799897150730479551123047473038897215174825462189132951711304347326730850191729235075517546774870165082818386003742207966817198966489126979082879660776415555782141146228832252942304095667532795781003640706027200492007548371370670756446228324166606741617463987032529373190608003441660978948405213629530325439905270951452103060007385961235198316380239423589166052130348176225216539715086492329902326088186652452216103960254738888203506530486452493066842361427575683382375245791041822043970637170054081418287394918344049717748814547923670119328455595464478637077338075759398969095915787194727625524974105473916261175065652480128554921726627495530253056289546300269398851768338302051957126679981755886215495308350370279201579511551815873850631712409454018731679783009090756566126280674414841635083511079741903005884860345770631718749563238271347138679674857515822087671895507088488421881586547195086697929331021163608133162713575525825413168126996969378930891007494353095484779323193989961689934837155321098605662832573482724939801545657347169575784890564250711870964071651080682836065055240318574768411233681075023569708370447481265868707363811159310121295384088218239993352909632257548872346705624523677616624946918428186242559170231279065198556234435680423875924504889027037917291780962398710893070884625382005675558505612049656714938235711338972011963734796107977974802152170927094140087479413543877071033032443535140894644751980153749752249147725984748404813816118475072222792032714143241395501960804364354310563083969362497438160755610476882204059285543198334973233486800423296807848127706572384050062738062858498150966184938968631353911728451636752194958401259013492992634585476560258959405453907351025114464989515562880331299616517694220602791140099061425144361331309268810106630882322501679069212870241711944402496209508918630290523844259632697423921406801913309909258256201307552911617927406819241154457820779440646516917879536055150817315300216526360298956869438314086840301016033857526491287366199240890357127132288306698117911810292655513949854215585739689586076044319197473580693552753141323155229494169275351159972396272986543504819129090976097234092256778514128925086194022933658232197978249180091359669135249902133834879982253219171786840701085892074975838384335402374489135648852164939010718133467473599871235135426837687175183517991176880802775849258088917401328457009791101358782351150506426967439019814647904127386770273853157880011290468013810784363877356284473487724819380773536711926168024530525820168229317362959236623781701087770000190249089840876506173580394280466344943428268173036856714736726031256774609140836711927616170576155254952080732935606411426280371230075495749794620717969766913680597454082520250631862969365547874885654318616438835937889185991230420075222217080819500269933347862982111542268100669174491387296996089865785730886139926522257995887186288040804212071123816122651081697588040607621467446266668012712476926444464534521162151307100793279880570961613841131590458430632197963627225869043877530511551167752948528049166903555091805038373229956799352198676425317634985203671740636832053045936747654430033552167922141632168281183120387916139784639075245413083745039599808421236181647527986997717959683732710801256334010521597090359182295780707515326948937833344400519699024266789743213885679587577485582165140457145707016860460421545606748930770231916351422436284626576496985818153226273932894823363426849347301906887602997382164822835253208020637579432736642292559219409555660108351871171985540984489902235034553420615360567098311381563099486627746735442428829266726431348486799129525363421127579543810694581300250966695694951375962918441054330446961768704003236302929937792680254617761869939966901889315785708382540449238816873166236094647977835481898873099990397609399686212968823934546006517470337781948074456330487051787904438139916497944576939726665717120904719748849289990633762850522168782254533397938509406330942722816845801581505530574938599719397719464684147642328234611761034937902896502318994497250891618330212022326831987215768500738347265218230163787584323844492865441018795642578834857682572404928583480236576757306028857854488164031675177576875192362742131905842998701665389601000903831004353538468397094706696432967685650933892044853546003902272825353049697749901046607081768204310565971071077114904774884586518570252263065445139009516641370369892258117919083668473772114053988667171978717987784452434048472016023011808646788552584531272704162556815066407050910167365507043215669000158310619392385875729580222554236130983228679006369184089582017928977730846817170804164843940827013850381063303699143084950646305620218520598624752621950621763859088213190278968995571972788822529323098516746129090509575873606389058649549679511545171241030235006795295834375077590128982104650308059953836850138141041601445026429025281422202511878854364534959606724593631935705369448056835659913806531808634450447977510015237366677501022587424839473783834279338934115623659778178449166412930852437730374341267037485583531211923396992192875820773922106368509173216805959224890474648278151576211812742120038401042650988195539357529247825111970232672372753837650578336754933298286239341828054329821178745708044905480737139154850247569244123980279536946095281352738200991179122474902062218196157549959646704145918401164446354932161419998702196572824974174857202676548658012395591129792584242757151463237290929728990504566686632846669881040788241368369615984018518311919495808706669867082689922461121904328539931751148052717852990539193294521989268557745840227652573841578145407949343480528620842587960375202958392374630049936972578740539604355503064350617430386881272979082879490586672210917726067987518576514049847698084051059824867403258322028028081223392433422493787810751755691344898281129664880767439945899611922521783369777403203222071407713993904146118610145107354551047662708340288413462912855397972757608148627320080252332350466057870118782952919806923001815875291011862970314660307696731400982226390473996899880634478561616762908210429589044536616015344689551108275594927416613914004867857358396501529897221120438408669091191903698052935637214550256777640550606416114050644211638849135460955908591944544670506562168847523856330377076910496881011816997396467700536366034950581184308223919839105206291983663928311760685609502925352459709763499148573077682246224774858399676323487416013323127489784037018170220920187691782258929222147492570205945274620743657540980594595228563415657683491712949225096283888565545934276509156699845270595392162742487919652384304012583287988022220740970325511701792447251281176368912301031755818490098815452640767015052404804441566131506230512403586701401830771119782481077419944957108819503096449927447972059962732955941386011087170016673132753754986048160762536632957655051893352901460172858651972299121899190549268857320903973850766074715735163352614171661949247133420793736815057309500840722119380017873722628128175916572947958632019473741314289542551232613896969189377522955428019486492575153332336445137060751405372652997203219835171389191092338195559932184550980062527417421208062997948877147674284064498010451576072350377597939135704128918341701758097004659101672703773411867490244864594786322282177301132288055403106148306607257073299742916906426219566582276860345339701361760451341908254827509034302162881242700487563630883019309278250144785420902682632468211015148395344144491249921090302430750423405289843564104163906278106134430612460830411212577437337144802346546081130680353804109051941660728514038322188239724189449108789195557591877520346971492037915072063593590163444938541579447802131992323945139643698790249502374225184485273498137977366925441448991736814013891047823714231120538087861174720130367288281624598316927139340785009752992920926565921748755975669943684975676032817515204982420056435275134634472543786602746666019758648519421852486721839440848475093320041694587597270291028342668901291673083323766043738226499920917333851707067711496837050410197795636736496216135188794487092962645419209961560279889289545532880166805284666882287894611554194156362100800738288753905960355307416988562511156849846352370197598331484788727326024854988413241807288297754076002161923283760365845993602984420084849049376857403730355421101367367343603139495834394766712613652103757785797933348647910778407935612865754754860711629241180581996494772870247148187713105199392270320271096883578332080198197929956239027759175355677901445892440557612913320249808427483385005898213733098398002580081818798444999334522534659226743571342829125284433194083406156604523919615829509613076880857838785239995567018337123242208543945280516767687497705357303743115980652521596890426216179368968542778993908726860672039756359104015706512160290612185861744322392028550865397616148999904980774480815716019802931862716493273851270684490707039708906159636302437505890984953562919883591197604907952830001496739195483200694430970391810740524424274170798710433307918682658878174232662724609587069018548327097064700850533689762713831406463033037016594212884593554572945919535355424459480188939953054743848244081875372886697909395180314713529042806779117298611825166921897703578142947681212607577028905242460579708106708637144392947774387116008408448582960248187382795312617030517202026936846665805613434048557334300972441985814310623509585219126886681623840596790879125907054013207290277009237731087694763377784515717820906333508393148998408909571212048433382762420545077472510198000078988898934639308255637548871747705002528093411139571137241710713111472656162450053417835532735285078346679916806191295661017916609910597867156306474645725112539754974795303597138608506393961032304078239828983648824956226678131454221136285414783318091757594021268326438040704740244507460367349149795881305165820973745510099519614348658646259077969697817196156085091704153496742399393323675734805407960654021016660484479372438781169135763039905353767583408168964495554173113383651361912851116245369430760759291820105656620183932936860796516208506803851818108827070582630497104926472082105612425239102786059405548044707728378618775759521067177111096677391733863103091072980197731254259758298552042171177983678147454214122892107351030663089104436069270506160715485077951865639083862892124890202205865526628676858505422121476955000781384559345678475180280960258607526210526350129567842715974786661708506980785612211680478533505137684955687488661874456989099700533252802164422397438040349928315679356837374813763241287715661201353109621898244493859609353785152005681190866157861682684199989521647153617256215612962056726397483491198769991289426733405324041680546718289980931229754847280206601096386991567537574837235854032528042779588921665890996243570317792495573325431347733601927461642679330876446297652549741338367785077606126207058400591900361991471502562705970603434351331214922848469913110877899646642475438843044167495138124246708795860529718323221233629342576261106749958590031286627776966907042586655792523309099035740106884645555563492403492393238389605578553614584362025848950108058670170326476752843450364842163418298027129056325131076449488767127079121482706654677344815919932866132384413944612118828852257789784144798694062855197676621594205958156823255740949780350049313113655910044651424875978927294621606991074300019282317302897683139483481431135547171026110503756922735336777063031537482558015325411565132646053370706171954930377748291693183129692088762561018159200176365996555357740296054158719166259516019285341753680568117520114339019721030611642411930231065545977412685084352929852754341269001943731104334787356633324469141404832450085725483066879431214107209555451714565047730475920663923620343374053158185122134359583787291467035211778960872048542954515573128101441355607387179300818837074297257613018152243753089498727474056674320777456665308032199506325797527153076385841514364192562177686491964512906988752952865660203522066360431259007418452112297222815686503085699405078779871653014962322020797002327647672387692673367908307057147216939185465034531506549688714621615235242397664177644335739829042739787886518742831120834938065584228487630150387027979132034291257068764532829454318414513480206072610189273820032917288676249532274809911986500959294659073799728616954708224437100193035081850209115018657772562403374022958242955992221986512400579010380462305353330349940875735298320890923663877955030156976316538485380532580977537469422712456841190217902075534734061215772258834056353445421439286047411630577488800216937581773901326802331960547081878035426746168523842408756250096095259069910321760979899483551713531256401174507134480047771870143356946496044201347569794318457091465015162976017424878345263681570842788274100353890449290746746269981208309701231623809678735591312348414708590475991412851274860357183050394322057905724682237350570021707022115253733568590327608231537470517485363588883533614990748884643868059064291353828646154454341919715387935749019784004560923398152739295713372725553133029837191412915596087291195296732740752233588369508007284854717065084604808653984609910508803171351689805388494816546783333031250066655683591274872295443159162661266700349771210034026316165740430183561280957916812919536497456830290290321911752629062183273344538036018555095040251269824329362263881307154548425243481611463393011331235048543262398809700427565352259039483365386621312562790542250602790703607659677953861875429089237774388506738678495237220687628803192693954339859495755354118035051377850569149513582556972191697533767466375792127213680342086572428985737222307094918995518204950410050057723506280229651302744962100585592651875419593091763033043675208132740885297866106118666350573905855706868981438704371984024450578445063568546894609785311861016297022688567073477968069336351550764188346811636874727109537727240434619811800089092308786227838059574745610222112607222605835745120701129788479937869377871797992087055025153643362819882729834005841313714442877056143215923716867146622777862839364243565834990558228317447101377407888305968732752420818644621059605723927453248266452067344699479905795897162954931628365384285428006806547225478698803965285979353707206623087923396443922396407780461486558454857057083650924277927529578580273049070988329966720228995832776729915302221937617890023678829660839700399628627738973566339133343498419018348048138581996173289647263664894107715928249463429763070118582415699458315186665453499759566795275509526952864304983272548012784606577272316582870835434016176505380736712118907104810436270575169918719647913351978884346790128755236093953857960441937843837422624499747584428716703892110246406744002997660669090662553576980658679305264675392209103838740076279954490439497889060982777931095850951683712724454108118659748168984539514581087868658087095050677656184164876808536799862902630130991452095607917266823393299748365171066152585725087469340267630658747241364758416496744504981105014432400607546015442758014929530996182880150597850968444886910576768767445132876029661033815335339683677096157074196058489264442748797972569583532374428798571071974227045834133296687576277221504444531472108146017774240666556315589065300082658189453664097573695750628669616679423645648673206586725350408267630288756006706080542898532766541908819898192346113888923565434691697642098253204883701155266497037888760192608863510669165447103698046464369503625049074014199506787262260592084427413779985675584549367773078165692485638484926395477378779694345688327172298181447834194080207813850893923606999705424069720489925731296724381761608680787832985811448615612678010889799667933348887089479626571173332295705555350274926445389826691095384020552922768912390385527934481253218265595411531880226240384684430380100335339411277362296338375667788054251314305871986384576723132235175526283288665629471476687323217525751936082590113135416101612571624533862969610322970972419342780305511646568229026787337388263545547487192916099700027733224783373709065685109255786171055132162520653183558471316896732999898518462220009202990432072039582817996357139533302733018209858940363803428220675083908028548419690502916236460875229213895182899261970064950972954392840050341287653237361238355467653889104754187046481822350589882800070490553371648187165617415359065286069591683345784125555661122452078182205812720101090075062421417630902444460795789643274713777169302598019543657210001248349462012532324784134643204897303432977774261324818543829743055022679073060428344466091036893968817818149343321456539076361388721987219917851818198590642516838007379848286577875023531812032376044419621627156535562725242567038251803216595834315141564042640305200986453528776495512740321034420731321671100022723289707385329182332442196239014732081924795831606105375099760179086799277715420740318416188905706973253258246255666283564041636654988384637389405679484024773545538693974765825745726483458163991848833632936553806818842688055603017585277233388944449211502986145325688424765475150649607151559650731078031279613304767708416320342615290638724717325614598993389323025486128371771683497637824583359626554122999895652147483366853703730399416054183682627048466438579057358340481295221134649455248370974661505367426503448336184765896345014869732615341991387576853619389332154804173914369580408166181114766594599615439896746127008629871232055599947482700397959779756352372088906151177641374213155192650095854544908707244206220353506808275828511950450406196915644988100322144363752803990686791682786671198422450804201766494549167867786416168082255786768900320648859736905067513555562302597623241464258657197012561219270804865940421407969282517781517440897579799645369173092647116833963867259475104874848615789739620781832150795091728541198241161120894581378590297816362034589935403348114463002760569433428202141683981306468629353753536458565124695079203202058009126092647730041211583754504525632175242055125917769957900625392591649951965219532963826578679179720106532005778816096987292919450530202178845318671470094745868037131831458321628479798541413076968586211883599542241117039044145941615546339180846867072539191263313151171849908758292392276215310764759318393914616420829834051470054585943782959699492711747261837933487170085341411561285956574396432913975521791437327122320185661704977752682195608353601361915163888898374094224158215158321031085239658631400619414344541060961684412502861908700929144027982508762111320590398257201601651354752819529775795253733294825778645217997830287723903007596200789818023396311651120520002925423242110353990661384972607899231380415053264398333803025169873320088855028687665990797090676907765627195203682606471436944269284359883249096213281394644442813226672728575566133479622631334609867737369343284054517440281166683077664953134964547208475444573811039540754260341186699739143820469459187797902747414378663870097031208560907476275900246265971075153960472152823712123967043984091517529322454878758394354939340451927517704026948573959456601915734976009758355519065728756524298554475274815472713664773794697476795393993183698874996944033836595323557255803053081584555910110227354511481459312177150808871941311108025486133450940942560841499440910014614513387305533567204007133189769906122017973658009336945576422729358910601268847735339428654318500763736736022466453300862158352574762060744460579995509458211673558312276254950490836641376341892221973411651616060800591543341824045839662908127476378019276633200227903651970013610325507928057299961582442946546545009810255393933702606551090531340193216912777838327206250135179863797734850834426478615143943896390162781042159838670749274510954833538330408317712427722343067604992256122526027273129492794828137662361892832101227154507448235786223399825751137698232284076091149077304289398975797567165136631373516818240384662659960254925167127994298840156871531562080207796907127069431970956842035045861834403068305706132943494684754180744230218214692286321049734817963464061492273244738784071481818933337245088008935673532390802328284206561986027971728822976955883721910952751804376580456972312506133705356496919866774298379122770962261593437752266409599157177283700600719189455863923080444226050514389953592798672474056644341341346970740546980816043752960291089932952252666384890558099319549795691681195181210094497339674816503253595643955608440073024873815639140195586640462390983749868435110529226279615674574462734575473644071971785242306128238961522468721876542291799905130012133271042442386126190963897799090301228824484772760487383897407784670971247448000825603673135556804630620134091548212755455806336948722213449966326699480206013342078639755015856296476178485574565146149381442415856592457067428235420121206696058772533302663064393711092281584641923891747592514156368010125547824485623212972752424485350065454235102824825022770863078418887073421378820349573867992675662120488636005643263270224633356837767402073831147756889217275029566491644007059943648315135923737374080067726031626675291271071915298275772192250512382609594472131110763195534578878823375605521906296295699964101021921600133803532779214090947968365188694389718491978767201886977339498986740704453416696232149635886670795226746436625812622656995806673300332810935348741807484489854921815145563323664242930130657579247459360566958195909862477274661721545674946538214609202213785343944702463002289019636387817153805530082990928944829697309314185929345929629643035627467223528388091116141547119565673249476169157541202789301553757108126256290055284703531217807998803396469025762855864582885813171721636045988183354200703105765175375850941873272461656822696593190884614393792795637379113693228495930122355380113537504440181323647680889758339218814077406177555029523536123649523756971889445082975980642727784728450840311140026122623669519589344425252089783660837640688203080681792056291190952797441762218974431616633444110714074464303304849638087773564658440586332035319055576846964603682989880528908526941790794897417100619424780467434540551189656673127107239966912202293930206066619024474213752794214219464731375405548236696233874674406025426742079812478445598262297425378510194432839433483374970962125081825059457629549610391586385936618588627161663198940315864483187928701700094820289967249213852813066276949423586722365612281758014098487609650604145474301938642768907597772553290494960738478103291281514025330555401805086075295847214917856206290983088975919462232186121583202045056824971556845102851154881080748986925730138274474736737851699406893900870844904275972594500219853407374936469131853161744397585748412605801715466168969506619706560177222894107507133739028010576194170683904187258894194793959087679730161737067014103748254359208629062534605731441173327934080823585633070669495930043775951562824832781445851723798034886285485577201417115483500579501881445845321201989568272775093095663614426673098578998597173668120031188909260017545278058908787941721875368186342953636496702851700343924792770137412805217386679131992836368652616410265315384520610618149267329452740682033730623055434506481019284175848714912946649313984325076297221228703954161920637952436922888893376124588483088254158818118573151420578150326942252312724120681571034548477792553312203514961400073136762445040547123165496451696289325556194673584532365201962552985772241636343041268564959138604098589166407869059020879524103454813515821343039366050178109835069237304119149125581993168521261150122175682734992342885841894020019684323998173819632324767432588362398969014265511241887238887013518121514948580858448222745774195705898206661051002961322797499738540411174576774474302432863082030116246130458190331862508787630545872723754036287109072727853065914112811238374762788946412020148194962962365949398754353816837291329695891862334705373194343977515103570238514696833449424783778459035876477705266192696043297369142974282087302037377312311770124658506599737675219337411333259428115673959530612515511590963526066763726859074369828673680279520501694453415574857933663552627214684386907381965437180540698612838343937941949424092970176295041933696809367910601482526174148615477871529584754186710612698430042043510347286731670633286540779007212609641270968901185740731292460389086732405454639267021422186112732952960734134009764701070328715809578776182545027335950374859537158051451705976458830287682975141906117022703061606098699247647568805698914239948626021509873914092753172501754449024701940677336458168087962876274802654789869038110951829304745203511028941384500901133358952523554042835736867297525404920529615197338263660403335987832262370083946917538892866117465966151938286598842916310525100448433428259878489630669427066101572880949943214923659142496841028757574224117502589165712656942169617627206594949734666000637961274260509122963248976848140839992448365590930366664657614643590803782812976966971454045406260091569886735140539259502544448510526900898948726020533116187448588833490865672486011724801356444019175736524303917436187122041810052437347790933680192235444624463091163016962088076491921284542281936968397064659675346760164780508314891303077283710269232716626513221177253601965836133122545461579954994177312111028299174307690313000566758761539627630405555105725955695293964841829429125331133726679362081752095030461998095565640193318492934695567409459774271018866105096087464304551969129367264282146728589942562136021124262177407467808317906697301124945013753001446268201742069463296793357900880434768516515641312702620713543014369004627589598886536794174855874344306912029677395077081906112250186428111802156112096868233702600209848459466485377260375328779027845695188149548078438172588164271088150953446760732236022163787056824597437793796918637126112124545047892795109956790268204128828629377599975807608322911259837709691777144834689375455940411222942357964971766829245252424580906842239636066657722813752961448031140507181537353917021227533093006601185814493078880533083226311481679815510372145963368444074107766677780867243171411443914683222176197521180712007519102230140416899905545186944552101370224242215682758615365567147459606312965660146513196453856752595420909988000531558315529460438189637812857267538993732745508898044084801425082935788445066275792304429949357380542347797677839074776323202200075132049077737482915147307537607185870763191162737937576502191772756968153676208108523154232303257415566241469494616201396606245068476386858939423134877790208078638278915574496745595792920328655816445378850095570143194406757110492007267099140351492459812395421059485670743541578319684157274871449344816732404735762991668585664657598923001068531496935315365644089479514166485424702945193494027826595801863217353236303633015064682370006384581658739769944044852360131853903683129731850386926984154126653265085313193690510026004954316961560124039072188358434049433919431929642554135196442706823629835075344051460720675472468330515838380718807536436078186594510061462809449463513868950954935935022080410186253117554897053364699105338141552207303069554441794331003041986744755637317744030094951392925654763994634097005380558161879804601995522710117526807608590064916212799255947884903910191010192410391975731946155865738364585563476262265704868953695765321154922560207951218458011518621053565009229625224487248184211616824730828777490337403409760329867423815498509901017619246895838916588820051652709340314070718113071388717492327520670706952328191115940503467621837197034881489100833196971084115269638124164023945953224083061847278746646758780768483266945394413337863710656963147892960352236501047691569011705285005680758194978127877605247945488316026827729939015165791532506556735098875185266974832559744847668343955968337853913556245372368412959363635256126679935449995877716179897156180609659599646119282247138181843661681661739545006031035037941376521466318678818778322310327322792114883818121659147448892262181757863089633832161586254260402302341415217619891394660190096095304712439632541658211521822350830221340368283055405392278564744411459614192254188976937825482145254215669262580885846887135867647201234917480494672159548822913941947756606237637009310909560307642101322980941166482534982642897432646663580059327448910201484756790639085080836453785728179250657361802333436801235159093214784673511347311816324160857655871901933148710538272763877595050172226200278459148268169609029987625537743135089930930329113984314917475445091271414446619875866811859985029852637299003039311789552073942107612147822570506502402679116509842456311423802063746023264715249498483767227980493354798899061805596864013717180799482668324383546349479533190910867665452861335514260241959264041938174229478033600048551997675374187016940742034167452654344676846516608330618337897761863909577980642571077452779281604043912036566842994766189984674002262034837629364780312249920420477130234800331940142994146208300124939159961563142406237743840648520087625681598654744145811676848586692796559000981994807630254477470102597139091091507505698787605165313556945984055308943379744381700888496210608673943508848670937731068687395761590349330502265963435400178456998576751499944748389047104220302519986540173564739960873276952692581620408951593912231078335671142742685071328229942828483532537159248506123150777709553422031044010992962852265167145290756660309706508377636201342157651959799882759790039269096021769944709836278408628048718659817218343497478219790828693298535362273943532802847936618683973932152031131331136696260217125932265746833906851046999434182010528320586557056120806045472184258072522290137241400569142794343967257992533481575368352865106394071559885766494254949645836189844883370258609036487692234769417568730909370684806592109742490202204214906335311996592628074997102466295164251823052400849389011200556815059598451350833477223582078047831310802356119910791144112937784116885160972975680737010751511146613498164105346331295717317568876461108591429098759076726002754530930276066720640511834345229409956840748847142142378417280271461919481989534158623979023797720931689298445299672799451420815902484226323036788514540704908836502528862457532149321118797428565027198704513165878122016327452025225036882160179629004856672835218771286095176572008438035776413874258619737212389219848427807932826381670246724796883128527518272418051184483837916705784941851657237447057204334715276121358658229281558898099984987106444598817588650030893336243050748467081682535361611818875323765726033321287231727505438417983279055005469505450375290504423919824889748146655189119514918652252774718259841065954751956830783956720047358077805521152611075271202977349530330766626067302989767746957729959088785067708868674851425229369071019333587975624922971368690772590084739468757528280377372336992252376721592639082529853006197968212918258120945842708980692758869411012369033695677348509753889848813251275212706826244702269662236370128279455341851698680524466189851013417223127286661684898261481555033124591624990298181406868309924662834490764500771807731904968053680820914667952195711144672413036269627179101211304100035395542851944491075884911936479547223619780352956186355506203335237905017064675987220981342963848158349735153700318317028935457255953437592827594064963078084340444173061988115559719905332530575952020629863808314978035860473569405803349340652587839430125679548884433413142559341240119562932342146801785794001473793483953291685757909856334094386474541364126972849287895667243484397848362195867401808034509748262581933393741466872872957061659892460005117175613442956779277384456892376699449285932372611343072295812915205526224543308235614845954559469993271014537938793992655774763145332060311697002362768689822374577690381689474513891363986110159657779404525997205877980629801268381356354082998307335526182274142353941215538799577761783776103529942973868734368997760537671678308364987540308300360909155810780337450634809708627275684288466046980316988723745299600838094063574159608637722825258706119105792131253233218459921423512218979593773776338758510775246974211413588928155697757278849517849656305966792520049260562516983424574945107496572244161797727067040217390166221436668948749385729133725297394174861688760516238432277709278980417670486763993953328470209732832145579647141141682673833911097831879970415254280573837379247669778347271045828435080861219912489690011868253715991878976999212880002635488228150747754324454177893140947296780174957194780162116218465935371534998953121955001887364547112927670666841832108234575803269035188170765042940232634552314951469873547094416077665652761670708534351819053937846397848389816147834909554031551399194683297511662465386300144781070206284253298873563180465697077934478568180742535381897921678871482610132111511796955642904011085536898010379219543848667883206535751676695394977507657261988487842667845151277032135129987041384464874255460337047716840155756820012730718162823340827334721613044496064418273965149560171156898355237649013506089169868400924317681761238364500903104260115199991730220485763261188163066122946314837504427369058429515695407641043765655839477811268003989237062091349167474314653252862942974314124593223020421240136186054977498229835897329645198288785287341532219994940630969971310645676493283869710911062312354720037780471791233923896356079944966448653899795219133597280584842759609758965137434005971847006510710557437446119669744345617839904621874739431500117121716508200895179382214362179530593332630888723342007962664659342684973421004968966545628405451399301208877359064733066249004382177080905048032849423657739933784007457420850839256414800433955523086656608011770959374397151131776133665425400840942038362849641629770884482556278695227937956744222470647195490184770722526875614287737463538841931176797958417729063369556044923466789370454937076559279267701411060084688868994916497232100306640165726061869677915680283379722947199668566660779308433118868481966317404174179677938047879242668566821402464004979190760421045043077392248902912916987595178526785274769333386591969483692278965860528421968044412039373851939458186132223396788522234491170996207696718265375807710439733224761397394479084376239947218167704350692499018361293794862823281701635799963089387330603602745282385929857664157958112645359630859947280383546530916023442383588144739702079410287258763861019138352980763854984602784343901733152459854102268723184721733265771615086385516296045554978240401194361895189297975225606229787649347906284895683052084802531071334644687562413394208461128908261609127734562183884536934955680607736029603861345258435134569854567626205340238003814552873183703881416296952550266884421541864677736824465695688399849946912011707536366405076475747669124792987552262434034607524591270020478716743253353200043820241774918690035339640520830402135151175620638425947356734971278615339888135303872683455801277719233252728794539453728290770740563028171063403326981134106745418257368859859914183794934908968785773769158571674190618807008524534161013164984415968630009719685580696834885614821949895175246094211224347516286209162494112300916957977546956985460669294055626135266303834715558474374849507730778918781222183434526538026281043422345684921709199038201410575381910315686492339516025310654647437128453404684713235940545233502340847682492957047247674428379684354414090423535905830944193678294100518985209788772979683954442114891980025150372546222674160881040799370382466034855522458608110676380315455234020766267170404852814704438199969366225990862236407391117620560929031693764034905577810350678356788276348291095226351716025087735665923694032858307127484530485991399505918527044559789488526576012547012593139594402828472826100552022291630502491285304267180240482206695330648847524734747181149238270053768102604900149905265214359956825094809057448997039439920222835250688110326644004434211207893618407289950218517944443005437659367480125255413606626414430417933102138118062043548885428121466492278658805588765420839558988590514098516573396211106314676437594213369232135314840732957425427277968733538925425445790993898130115774035474131115040974392247837512327018704909205717286215233437291454263976253615007544941637726216770054393286836477741367552334026787507025404246640598552297426061604678065548361900573457671367210586857013041512272164685832994761410586227007892208902089515048044170157425994963409549527188415099012695032743973716619132508018775911744885517676618386258120222783730570712022663799129191998457127384464540575082874117330203362961598061603542910598677561375454051167875019723542922533955826808131415936741659807735827377683784628632470511312406476363090118089307801992863257509353301336436702268310505878725130825005900430782845523588931654795951752773595850926409637568058251585790698736797922088029109471840832917112672831701211657342742816634333250124609054451052396022902864483664037363198036135134271861339139661823199107126902554354866827066184602443619422799609535354420580939120830142292065078783511114638082051277532708175273775512106523151481081545710676598845102026448955312191989901756831248036961839986465220273314175050088258256480585705086733122200775021339870123974452833547218973068657271389872148260485629000332128156752681681512046445097592548931936228568570293006803045346433740603684560294064953275003842940190510657744560629306467287802501200401221274798463935820221345549901000988143362596720054460558300096816942661779933994152534262835653998457071716950179052806814369910374374294078623824245294797595332199303255052424166726973120454801247958200422504314554002468723534964780331448825151567158937913052074265264239453956249583690261513752108485958699337534545068133739328047512317460357944018464310371258261769350505435599681593684647794953670614857348097231135403639359683539632092624664843807794885950004070316394288569224005013590210024925018794860475869949694286895177535684161354291727184340762111118187916680251740947497915917585496178354350698943096073849351971856944610417632461165914953079229302466175952950772930272433373275946000814693930667139951915340562451117549426710775637562127063786633916960744732433039280785674119419769170037828213760895852461600873556625055152005371680553322262090606056980226641874848186057604856326585137440820605144791523216335467147774034803855485203127554349691915517693819486419480732296248469380101682321642444019707181992418599222520699234845005107095396422343674932595335444111225486330892840760614707617392830591009708009152658047559274551600086095628786667512054058032262471795352846226693244851866514676106992801911800808387809419719175603785360591327321720969229327682092152367337072908724496446872518949722566107237377887709451653717954195968099620990025352399858139626078926645160733914843221658260635933168329661925138520192793259579742811374070927462330308855742765113105916265453073247360826389384011920723779844150382402791975664666881657902921435390642714029803657399617050537473216853076732689300655488790751637120708181246036437341107676657067947725962846842611221310612814069011851519112764752979141421299570005353319014776145929696706949825876667710756742427885988388533155796143339115721510713237274659160553823894725941582716765808461608311589509172307563064559523419936813333778939798777279830267084128254107262517813371578270387447882815293813278852213203285249727105603118189578528443713290618908534093402698764669642721496029203953813264725628175014496060252104882767529450035001499261628469135176786478986444247415169349478868025031833128342287940123821409604452866447929796306778863415377780714140375268495306839171823799483141611506859928794538076196224051223736908615954330657918771824841358896428707989894061395247957906805848117382835709426346977606185310934967404660774854047692231361388903618855713449508826420226042132534973397787950206859777066585611874703774974149968057197089752298595447610711679315029971258053872997509601045387355247397615767420573191159315081041280816276302988754163181452654220210157679961787381379005780569656116208583788754898089344451627042234689485456190330502929765172879309225145512993943787754153653587887185111146991646739500892114228671534499436326304862004947892998821150409431734265969105019806682182502048409183276283305363981331071595612019151491127266694033328722267699251375367420848597784257225190083792395187536945184701228011565224937399602054892122556707793496087916480332947118916846307167802496631152983740821870389236277633771840302839972118300020997533059196765571240143290128676898051974435491318710310896300596660107584524841761724775819898845434241490731702030803680515087664801461928406557196284715179378223357438965163772033074194712906585470003178230162732227864533793990787692679295179886841078009176167111928111696426626708121839290632419048326764170680027308512980043069032774590996883960623334972228016078785643800230043723677788941296309944383379657743060061797838629340612693490678425990547305018888825978178829106150786530561559038058006357552414753282886481375758966199559790325202950776966744722192060147207672146162885810390945058504206528457648824860477915315249551139279390324435989811339552000769758114249399659906968546772108382482526861061048268738711247201845041571787095907823902070538518234298094559666083491374281533265293267719456630007578380995910720781639758770634503230426899826383259142907364929152617290948248587757881770411423704233922105741219993746718289431036142523070990639232556751863781103575329786125321415474429207358311067174937708299025624684051158045432297990219677224393649568487280441799099161020499787141989600991227323010712694592475797635769668055589624042403081553460570796752237020339353067727089715925364601230903750156457747616359043862149866475851192886732797487672117783516075283099208802154831736858264269218598169935183700945217859415707737464375632272976885058859366499529754535819157434937719371599506334905782336878730913795482582512792938552530972749674530188477607597434033312227771666749927969651920473193356959982006639910498512373678886628404290888410152963815158511699386575075013084828871785587081778844852302722849584519404544498333006642905750279761751688606563227279462507990610352891885392349418916736815146870157054101249060437693845450182233227901821511245684041110557018054536518561824858172608045058720565424081878076434654501698779623039932394685375775024566304864880325735324660452080884950465180322416989092379844714974263235741194174186034928583077597678977281733603504888075080811160576128311774088545573379444928654387316822274358429459430933517294486974366106640383622646609507665882407429379365532376281870424099981364375166253302419068149503295379360228757981277111239475964844634653726015744372720642257308800680473561085540284562232322020280728066517653810082576590814248158251602549529674721554083625491731963962026522435447307175273907967238256460598104919557721995206503281050174319075428696712374473608881970825558676928576680454670143077915181228739743761792297788479072425028684155955520730230170091210686658543524015532478454153700618008196542475696207386673562031978633348263081747760981092860389226946910634303926249763165613055305863782477691144598894595074046161583740624078302711367017046699254399119056402315942864408093188103057611877736544010103277128300944243910747521423336802559464512291385528198965358995867763255707561871963728087976748159829446112861723784134960294603128938732105894672962070376523696626809451578324467713071963433498600363557549879318056361289177933870816242537525245337858940173380346058827833346029509500457925028186126383892652113139259302720474581910650707841266448578995622438958410688603603520645537539057370181018946018355463629055257334146135415851407356403422039240627569039259844394459840011415867164382840414692327573094761919728282480738468476332777798035184606591077592607591484406681484334743459104240012392331703647504663128278473308981731791993550227341670539569516726331652307543422529566719673199139324689993274046030505630781876087035144004841904479742385255889257754165073038920046848693097399221459702968809123455649611935765683333465444304044402309833937178633591149471098637889752881811027113615895020994991776846604199356381574066519692651109038552879275925381050269261453531695256429330462033464725068773330899305986256892203235746069781917118834760418330630175127144136429184995105879483422603698431631859122637441823704469778473333042190516246114678321127009001346076403282603700990027076153134513051664845417283064256249843550712458300441039254422914959482569441386890489597992206644483543594091320397864420510924445894095375679727618374637827127581671394894841750027551627948502883814589238393146864124798395660981743646579889077466090882132261456335353650864803981655373836590577910377405192185903305930876713096789058856237261805042849958871541022226646232426100834426019855071981384464960339351525709868172826410765865405268067081288552124694509414682656604379551263384294543636364393158858528972624492703379381069636712556319399150234044388514429359638128471484149678368977192029862003985561572431581160509122273409873751059908730701763841558498977668209079759354313617248784342790347662795377806565188073318133079244737609822235090034293667882222984160859504179543326351790828974482101785038889290673330272282619163138765281529284107546807567566822544130245059025457525842550089173181723294605107425602614874041277199061695481369835117932139511042309062068485248456253259371801070230978560507089208347975888612787850298452756652713221674586085027169198535249645770666256371875345344819010830985936018286509975603124876814937724330950063979586177298116204818215207708016282644124637023119540860198742048385261859885925635008699973882856702978854741235417960547476207249917166788144242664773420313076440874414093942098161683440934421556904826006483441931861224166436348627746783237304396447746795243758148316489045714948466782309411423644024204987329346703179941222684878961192075502999058245725683228832661877166785350499613710848768520182075034808426362627269621257056048672182790041460488905737123472759647802310403439764535655152773038977379182887235291348955901261170229543391045906814494160493726040338197954079205333976284301511103998224478159894743918662302847150470205530895199382024673874729388008001324657017582075794256236818536365027994004127134216355675312114307077560301252026031288519200155920690052829390895886692725658431378905813755306141719486729900411005424182981486243076819324328915299497315714406765126550126769875858112898031116331909378060433816160804732594216067742310169668986383634006763357312172171271537688221855071585136771816598006890126649597470519828352407735742248798625210059663829053153381822770104531378121705020457950966798512601730372153669127240215616459694354652645896909783984682153104632782101737479333794096783064022762542984795035175026539584583097923905067514776483907630210365154955181461641124788254529024280198395640449972199953640132184643100012875479084474319296667562465518068743904002748037872289470066173591092966999659873536025404332757733379935396743821631509848375983096557184132394450860696388631496787220082443119065381999595527616608678696688504487926349836078560473037510396980054233997186998325339457058524002093555880846829629253880600879259571006707321382288307263441096883654929778504888688713196712058132740814227710036559471424255937542358542728647603219409128891162328307646808257264522008973561214066956748759598374674922165943254010691520667729358204810270833389071794754707111791562901459524586627967944103773462521284946454932646381802248647270625103599811919183759086736434435276893054550570562222710521864464373317089752048336361711344271495284796036927582609261844944455109261412605711529595445350220998213437725265793538672827349544146534213936932736170253656730573675651931313150567072217362047136980110583073989710988133985826302979258198557761408702732696580043488720297585379743343910639471598365753684126852063235159559816285476498630399763054064013721855574608801807413468663600452828055876251112062059272412674478457078213447409509621528814464670504861490060227133516006365803247309108036604731884795466710448136967383379208197067994145261099533326708300826970939081606018424349444296961082561125372988784050140031191196190768338913315787033971522292763001824041868861905054736539424855815164253361293480418890185501812755354314941356478019352341518649095457259540279639910004842583397385315758722263835461291887680123387063761329037201122911088479295764194806264413082069194649122125905761492953174154830376121603988542375944743349434855953120041519786950342864425091488660164993703555705040341403265973196238601467362568320165760847023078098720798172834672943082846453614182015825069150412900602362231033871157322097871280286347480149221388206769953365174393436717657512525396981923683710833411198245627013168168530176068721475588359533525206798010538326132585019800389545643171995740325556980331970576312689815174462109074647171366285112747891354554574450411930107743110195846529418873213163806160510803827084761316999296244714194366170950627083212758652072320688888531113885319825300940871845046465601412751445793123794752889190934548839052823048831482027945524312460776795975824865418561165264622619440021454945286209630936658351180232164508733449012726260369354000808306982058511938819723709305323430225848121094603718655931624816041199293937175180096823256353674492519602661890085097291131195657829951047482029209937656507599628412296607687244635030550368245372307392526929091923470043126426043555880495033501562757378893012913747269981013782744803699165551755988041392089104368132051049454526552720336511488994300238312884726080868948357229339162770938304675137074671665926043485997682986757609102482181581451631928097012728095273012226246212255388747930247057617043832053051257979230450690863729253398219851619995780133245978377636710367506861452667039944882258246180322704669248053271072142205166517985125797219359082294238484712574295941074355008425101393867134725115774207205463584683009928235241730965641440086872206158284761944011769361178712646963074959799963789887296242179982738348522373211883567841402464724605231306186029640493206164614679777377077778577041177929590923158901691328761058241256579774389304284906374227865643190121448617633226842838131898088186644793772762549992245052530461432898748429947889087954730854875245131976302325523585992096126479353963441203770227685419953757632228715670469524254799233058122768656820275995620642313960021391414717078214614617318944522260133661925635472750251676483950679090321789200520315579743706163494145461445487521336948071634499316732011028522639433780512748282217005311839542454272417961673949616419270727864860595088466491170653157116898000787246265386440829497430260786934697110108059080173216519926566982362308948579060407985676663096897482088214052465293606068289306066151966692822984524441256674506701799974369480649283456489345976224967862044755707234785807951047725469856849785155094736526397878204353743748238819712220529824090966467604716078864224467197767981651824917949728496648732635050687852727443335820289797460479979782442819468487270002807878636727200304641254147033332501888149657793175204989954029560707718328555930162287544789441251351824925822941895395747380909073726630929413648959735713592534970819865967683313085333917919818720907426386911755771700809436994604396826139725046997470054930583247416689920839190981919345671711828265439120112068429480860624333882007342781168227391517570787569691428363051930019272769104774921640060226660191683337589441885620405127656469388473954764920239052508072109478314444152228050174042824414093375064063183360037636676563874171796920579746787376279932356913480906264127486430864165160503672173457057559592152961459247849175190552399103524826322931385083468521993457182727334117607105263607183696254624184324307162279068327356122507752598010204010404162043472075827114622139814372979323133577980081719802510453982438668710132763387733971883947303374163197051487161895463754091290617049601702708355021888949495965855898519549252478595816896377156141679784935070918248917677608690099024327107270458761766265867145170557342639732237462247922967186929951993557243529162276548023888404335569625292830433673377137795717022301984009414920753373745777402661880363796639599225267397519373216391618860237907742381978562039540430196752576601922152542599137045295359781712489848783376052082817536770583635484738648750896108078189563468374945112329676067111358699020225440498614008904724746482469028548962840512606078411131210649748846374563386679400784999130809755545122260904147456448214077266143570504717819535485026495008260992601107184650857375928913528549944443268871012009046439689417718374064241683619734739029547062713717943198087554389329931469135181310432856857203846247575643607555370980570131793777156353450067117179460761278282166842411596593415022047069180921206654512956312043007218479314071539364715379697322822857878984662696346978927372462241844066045885449010085090883671814392537679977874702858338949296648578947553953872530356271947239510225423843869859297296756392866468892191974226089246964999919941281144957983697411143136670759142306042898859037402398329164789853740814898813444840260599179562974126195898957343076328590754281822517750239334416509664221920743204078667494121403223512033320593363686605890216589643887078015872549305785894429062143230919987269291013091465858536100478734925033680906444972388364888937194475019283288712257475291550014789770735783429869735691127357973409659789580469740100031891317543719280895328711657049841089630695672327618437671997509254599766214285586773453140754589119248903963078270763044948857133231455267073925858190450735025182615745129945972709860830690896835017964173315091705599129690039309178588995426546283597478861043561180962535436304031142697025842897541910190801797164404919732164719166301014752468736812094593048141785915573597004611502611817863616569702191868534092056830146604217318452258637060698604861788463823144465479028045802199260454980170555647376536202190880874875412077273218949413049394170814954759922323099931839226609494519141645457607277989777291283366796863632612976402917109128745643456816845175630439621263186843096958023222302821750237035757009865113089631263204750865700552068419955087280164922724234843331817516277408198463416669127183877897840010889999699515648073345325879596047558612579766904349076920870777048899608854234147973810587625634756981145426407468218104760129889815194834905184653419611102532459940906994862365642818740744754911880565453598536333787119199170556584892956661454349891850448678050641053715629049145927950806892721358252032628855119197814833226031664809352882118951612679161742694058486576463102995457860605219351155581424794942181819037173844333407703392224865743819109508909341519586994461869275069179673317555196132801433200204566925023964937409411408323204151281605882485177954032558040881671658554480698242415193172504152566168886018503724138764446955826062255679170580892207537128929879571347094231546067018858305457794899814573314382154902354960176632860614926248567561441011182205675346593719996771922232983601226932844255567095131980891939852314189036247372280204587930837060862683817402677774540181328300809632088340663665093700352004096594622213517234446476755833008146485664169415416323381477553533803065645843346861502267047984576112576405378237470208720297985411725793300731722182461128877837340916444216918724994637974700211113812299308170724760369724809087313220283580574471760119521772146717712811995564686623478426394841669204529308488092777861226889805818244904913434020823253226745137066989876173618979262067399805944271011726762711020622765391225506444049610525959569484317995518275095959195342837779709505550665347545263864108665059175340941134091590149774048478339276426388228659802342947700274264012250425018332290760770991525428780779514717027759859973395374483917854328764348426241392115792078432201784257171790843629211706549267776450203034399602759494093891579127611784620774868494715191754903798651684885426492595755134667581718450858291950559670528884630198076125677030346989879970773476603600868107313436484179330951024022802588126019647026125554528780732667963759084975179505201848308118060893189503041606170411660943435233137471424604942464357651342725429152338462885464481707920166081908468878499425060773718207323638268888599260790997927013620738984496598079416449638724805084643543014205059045706339283878554460375961194040779540969571447489665627122412145958003106328011241260488625047899331490126801007234289713868019318729954738936370486408697603594498578066215901360873096371776402502885629968008857458771421121162663887286955840710393716940059265589761887540489856803321908468930130610785369645701420862735633599396887145296269229224480775311778283784138943750703591537368614519429225639302458961516314054107947632541637681459152016696355756134003152089105491762807488409963922446599123525801845067421058137827066600758674933246854558475007980104630937297640147985955504572593546774367858511830888592049996259471797112107525472615347796742726038465061526957919387206432456891753058651908743913684513349366045429213149363034498393503654483873512489511574184734685101111796081403579501637287256230980221895905677231050354100399554592864048283565523282305165136762328072361875338092679579353979360303540334155478455789112933008796601778832584048084165679334966403541378489577072840103880982018594305469824776886135991364942864468708202064514917207446005968652033181022599573585605448299648208550234827049209567643550397609880331122869874580225112189657292785624692340530827799772900478803205200883150553796454052338261083517045303536153086926447616795418710121109881499628734040685079458328045628082448528269229501100475500382824089691179901150841313557522173055495626323573348903719146612305740096367090920653510442439828086836293500956048925552658007076193104637817070620599064460425623598418091501618468173123190872224322410460617175311847189611861396830055525033817822501930633305837266388889406220223208214786394034769311276714198931089586830093449655993359024454146589308458281503826540446631394153448742404291149373255229043909712934733679105497505924248361234950243740478069791911112219272997049123100912158895582224235734020449827572016352047811660559123065115129549900970357734407904152301820688686415535886858406707912860615042465749666310613233385691417588849156025087402589099028680855429108179418570126676528236482073902976832427279107556592276677858545437904014304812966780964388081296568352844403108830353573152088037151807654336588202871433952106177671950573504397426143090620658692854985670181383192623567885744264471933983920685884347414061353985612083316057645273282953762749746761291005265437830665829624296243610135386072842672454834453314345646013142073077994625636676708203366896310290325695688766530219446517863992446322944831160054416802613125043176899778731827408042841048643803701416175711457918275808723645882679348850956537181759494185859676635082209671127405703052824995804794844880809634484060222600246088233224826167782646912209129609169550204248852394041952083914024982709070594277262151548809799987422563003011408542148995221728007330623849743806152612593013686732832309133480269641514272816357131735454830256886596103699474220518400904209265519894350616799441831662138140575301352336282481594141491338131727107072064544841985374169493220203862014937019853185970226449071342902629489584344169192958920632178943470474402891205777545311820856188464163994629014425152166106681738887124633133089907309235389354759128193665556414220212543697733316530910836708200945755760258788143308145210416499129375299934684825864605827542069792740178913070498816702582406902063571633493694635293677347123905096122973724544446983121704934436354624025724490432152402284485572966656766699021804519551939885037146049048748233702468999925624723118841544325431163791252275098589409513548812917627238207778835096401663895119215676354069012856280674779849176161131658603101530190156078426897966788651601709216306773642202756827751331485023057079883763538500242807105362607108487886386775409070711518828515661987473126627059230805084042239673381923638111210791377232248767061374170184163590642398092760306574039593813314407995496583178620197655314396686950204314531980529999340876488049501440857591182654321841559356077729644087541783469982841352643846025520347583991020974824988533874272321228267918760415601036226100470460366252176252684332140039339781518065184524434919815128318956904836913937970044489332825014118274757507369312216896691687094072539557611644815592155379835996001762069787920528721156956024165141907703923250789268585953502689656706520648016941765443103672104689054221024311118490682838789294059830159279044110840821443817348048459265668538482823266063996492343906418455327523229673489766381101291955737889451301095789444232708622310882161925992943397573606136494483824890564014996062365206957440002194866934083750650029056378807457540736008753909042033940049580578758399202429790111359554715404951308048304344960190953547976556854815441999865475990725648972077243429956908713805179067304401588625316877525930631551868991847686012613790003103411618067525903742750770738559181140196713054388328877296684195431016928772983776717329856414403551202020831212900926304881874792457734216649896753714796695193565831605900726649474040963684527801983262520198687198129210690519750357845162132769440474148732935758415990910134755146629392132300245812786470104004585044354295695760394007266022786478413089986716781841400553653425094679712961217209019601862375707057437390377568251480522544713518390360948792805708652294796291600292779199154557757043145380608061006864259528178503134767686985526378085273738517183471599850012774654354741156265726268152126724729104046758502422011184562706379937832838724475086403822267190507764314581654877431762850144726704519995032391196970204121605301973653428798136735616909301678140870751491358688216230538681199751955515593195674229006435843825630690324997259907785529988231160126255442473551723935624476874540508342402518587115650741507166679266703057554986179655192560299962901541254876600696224710065828805055534079263389411656614563575687960137697025378002444739442971892660899284248047222169155464242525971373702803937430930816837338549292536227697734395505721943700968022456523465235328588585208675287600804067779195213747859679339897830985504896737557898037772502561926436295835268783925574143280799529110732092835377231960555941726446463206131218152004329123462567219416179437329033758641174808802892141579101283282758578096750468176130111731489778070731817361347772618032082521004147307580954375501761645766790156369885193485693622282820974914319247387233238561292657153203713043080861136106326110443246136275935271161180937988348714835523692261396288524438643854808116611170075476567088397024589767201836837080962309122705076353550800055471548527413125364896508184322961777322850024553561485320661740915519311871667182427835764701619699622511285410664633461651434405073926870237692442725338901598743479251168891550233446518687965415063695368330825573474498274253271728002916105682781450542753799158429099542085564602838007067321007943009558249275874414556514760495549545257203728856079739732485366561366050367468579327261461498164904865568718249911661057407118468605026073300606372082037150414451496782067018106317885430672945680915192321518673498348506703344083708491116115313885844886753042530616162640138956550139277170431321329117063252530153283455028436029905212397463599008631165670250143340587052972790600815099132567882612688489264648026485063414790698715241073705394164723637898664090275078795543266599195151884375758868606836036149451523005157473416820332460958957949683431828589499900500082364965134567086269835796945266905580153354611280771333135927973269844654727173481333472748300158717605066423371621978756137098563208886206247888186343075463013555503895201701134311679337003867570440662564951676987147327747169885421001706714008239265502786054083935284135157980897819397022401012629748190478053763832833610282066325042501563304832557843856313728941546133156757113682413484313070541177618274881894766748778844603568269337527417907414132512814344596836432921663795481456201195926490349010235530226015874561531511589523392989487692037186550009165035548469854659370895703210249911712639917572871991575929928620907990723690228851571700167811318110396109396399139579399292993282966802355449744169381863991419984060159860116577329676277745672815449583545403723995508946280751782352163308012730287411641622068972627246521267844889814113075231228559202759474976595206683310820368029757123364719331076664564193159300869246768677096789432031888375528345900384021989716521079058649818772086965046781907813175376802081889305669554767539090951113202779460268346742174397337261943986445902686035985702711419211491960310429986434344579966754796678139669371420582808647041552960460356018145867916805222392839803560911248182278172060224162481360744042696029966304604727362658288077082179905985021532300987698962156180329872858854262526018191538330871456180293858620721505228912560715301273896326275373024053270861634175091084270992906766123212131395543478631212312819941853109511452934602885116069482509055914378135719800619167684745408661616936027941017883412797879634068312981615241837852734573414602858024058536987031673085227847126101507868417918921581021797594930357258511780328815572426359840467739819005417908818563822846712044014900105856984299665046508166613425635228631946542944954355917957374114026962142964591040227548562986670487471797466069185120790069452325799538098548704728084071718839101409450672955824362289459230130608029933846853624720049576508642203105035809355340967333256946863024773523680349576952954872358108571783046402415922692291312752039375611843369340195976037652866178392296522753810216989351422543024114698616501537810161553524085529558560816675465054423737272795462523913655585684742047702313731395262191814639105526737835474251561562933225632678283564804370020053544193910606030038464139114321883362156891051451341631953952427229440325724286156534353043640234009689576061839618367125572822398412625758167150263329103508575436028527333871424326195647345219499159030995880187683780280560081201225512881722445280944330657041081921578354863964422106836173551837273297768434414936040515698912284244025983786320984951118370449517117271382213751915445752032312681756859217177876247597691686030764674720513194557523901627104063126108629482207039628365365005317941071828755783474700755791772360143583528702212416485867428196697972426082668901772386697839900889294184400376931959246036616953032373598911303602221296920190398603592146632859036169682111801387806196800083631436646763981399121838108884178115257357653425120389133753442996107284552982196569894050921833467243767952226483029160216109657909415128818513963753174966603608591441575731037040812692163586366769785232385399157655418771629013364712502312854574503422261381930156227718988980254109134236595162610994107665212804296937437841814046102657972454471152730651134072910918895064759018568572640109482281786215556269785345502905838427651812820675710570316992282839903963423778392462618352435438853822331732715958582039602037700695724223293242538291457688896227226508166689301703005090870308708700128333195725351651011044718990048028124581916123564045653698786355432937264805584611770615302465497245981821656546535367159359695898311172046267368798530453768359143182376844391636937860141066063676791894648876985600001778981088597160854542716604391853239819997439949987410940334812308558194607714941991070134345544275368916996582329895652481563853566775782596164841747749497395426954657990199736600290541134720605490285137520702719938087663858833976947694759633013401468723124347533402407500122656252187963235282272191955956992634523351929192991006522830391070941997360911211318266106358536216435973774012226235212728317258045284958174110015376119226790116875378023571261904576981048289700214677341324967510954051192242509960134599424838292120199780081402389477942200952666968540157245572222543276662207460273300625221655911957307607978988180387449227938368780286769839477788099797822890073114600992907849267447480654138415305846321557240025742730402767182661152277835042097206348427646020462812465727354189709398510238476190006753094918479695088888551928300425346743668933196715777121942805624963111000869842746089453758452602857562691865039307666962077167335374398344332553257441795409174348899912632761894763313846061369626648837743753150021448523659487246418464275578079756945606234855698882891210945582133502682266343792947991172584065976379788592630398343672690168070262265874509197426500961669022668920817439860630012696399685895219092411048034621809504682801572622524728752123955710002671420606422940726304021413785006014557452340684757542890465649300553367791227676540853381330445674810771067694611432646784099704650742599324220733821127965386142804803881490528069073490660077875141937051113779744456583480631153464323305315535111963481429902732491152970241827057010226974355358440915909108461503836200309606476877105932307554533260036619976012346555928743461931170856351897712752920513888690410046014368121059865551350869855218374144264173063555039047814023201739979295831109538733841443765091606477447542463189263635673721958316855004363158169649601966084764538743120777471846211743957310706163774138759961239535875897289921929244188398377801146918145057215469746240139922827778159427875618653560998367224449284597784225889950433564576674414858364536358515059559099621491529636716423445574268990840370985751159004455478869642477151792411204790401904929985176041477857778614559345802144042638341764227676630313100555706755969773261669207424223744979093805456978910148593543705307292370805403503082481219679751593791659888646206666272132950201664477217106535570831307319309829402975633043833965635795939175339926090753377412666800004387966383826300212784054430770398809625846846030630424918526889219425060687403526485733009330469071290786688542378308108580900156676394064447871294237399372888346903120721264701500029365194158895920625995854732557503517784267266823965008666695195599938965949908080034507996200907841840178481011819103730134069981495718265330605970864363416967760106556161203445173317175475858487637425598211768447511601573403030254719668038174786159940501922008838572263407268726723335506848822069995070530948589713522798767589623850798852558476652620388073034233772294790099225209201138437649625959777879328727067283747023327004016458266302654361422486882180542457739456398333168624561656457054384586687283734856875812225918412743528299471848853915253218759044800546447602918118264112104567261391377593911724967505538880833776397963127459011918184028725986495865122100903169703791601438361353110163075611755539676483631895789761118466045045144606090969573757025016557212166799934911005946630005403545446841638840137972152359681124307514056404418015967099299686701537812613466783007622091585672399903735171658861911162786070119966814355001336435757449785549065464624185842192994763131217714908528773738980635201292840162888864742335179098009530792406322841588592683415851529426321139302440240150516768143752693390011365940148598608354379700597256935782890911563663305824122727413113669053670509727059029584488009550598213169417679909774472649878500640833476779842102628897294556108544464723375480823469694612755571840500519878899897241302797618056920609000708869744194192130717167474549378416653020495586057124298878120695394041553228200263790920518433678280237730158800088085435752925954816339948972876621524147125027730970133534686064873424985851254286328599916485112987800892428163736229260684656947612695963604927546708734522765417326044853761887068012709215467229756224750939218297722255414994164648566410699311421857492530199190411908163334274712921106620697301893374173460185718710011277718687141601639649631179127415122528533529498394174106420937132484519983807530953379677156532831464778746482354346530550802623294917491814441408211220840606617137840120799470695311139086097753074133487409365765242446273588652852744045117954673174444250170123349464481623650862265440866811258907244673582910908375133223997960169682997625495610031071537975076243381658828540315489887255663468019030143722104046584889075004606359331324287726552661171790059394332377882843062860460527294625599858566794339398718835066116682416373448779850332877994243407717808271805034572829582528355151597653211709022205315312895115971742506234958275419004563393337731876535399204521731932793697512704047283894973342006815749312915542791874984834217290854786625093529133954501552136390867923767253057294749671306949168791548740577592421179413923265017907175628274060341112954096406668747769608850728033345475905310302021578907527638193559249285952750754347413394176614278207626282964461982931186998957276565654109353192689839342770112583924311785350177631958890642759314424371490162547581656968701930450445716246161767729009009938351333338756330793399595610895427880495798585138021201738337518806600707421367900974908354424008310843290574207661019023738497120646191784642460089505958574157457526919734439936489591568002014652844572017150302950489198873991171758393166242856900933424032547449864070648173951736457639038533979061095670369711023765551439984892261908959016708636235851702473150102646851917380837734652425747506639817882610134300980973215028208593665783226484490761380212520777335454186447792028672134322504422724508167983710699663006619963601952736307462047392333448513419635412550436482663432664324589472885780486973716456789032691736754141915727850234166529900110515589172444337601280457901936616697013055383023372322554278485457825172596212577927715475700443460645711241049898015577944343389057714024170788101498374190097755272334488016936454411420462762282093836237603729213104255549212421611867786234088982787764260023561112926833302860254064603201770814093702373030285595474800478530034014684076166506471997902386803874253097261373540654634680515469018421329374216378898184707990074277275554597069612165875907664414006262183980666308304256659410406328348057417116191607441160526185470573103503045197852972670188716711313830453862545058359414440636605451486525543703550119309207520073306602159502535077879124022234000391961335052618499303692174078215800988299650423429287939175398590925833973831410665762950244401013603508919582078543903752756377759851074674636444964455539451567431438961775934491116748960412408382460090980649473644038664648434702176023432548211322526116227411237107208013874451581270532387551800372378380773415920445231965419435659571641519092594122170327707115475440932905255605144582727035415378256483356432905635884573193428964227044379291822780565777459149594530835856564734918239915449128319824415921821355214536337288182280818951085369515559200366236855773381455327825871150811786303184284164075850373112481958284687891743764756545474960339801417898082693792824544161647870391171912906899925060290168970993674929740194591607714266205845913979725025230989605363592194058396285983374837603998779831520943941975249274826000760541191291603265083251232686438546013737696834397691598918992810743318688412866695561619370995593542221786060875266355126279270789119920169239825754874227917773967500501289047907696549128641879159601564220484817830355571349406029789517371042197262090162880460249909471522428031940694347314122197508352811396899105980482318052334885970165048283778060058486534440194948014337842777537265709228265621523199129219752738505526915405050194406545397680910394182658580895265687324723368421416633428021141285964582714197145637957087577311911577427648782506321566463173639747878966728557907910460549516435533111809005213400275585707575682763073700816709778123864182772478336036296173905250543326918210961465610832288736527479751905565395296438446977473128316172722474695214041174374248594604138961116089085317296284551756843726062377842804392428697364581505609680939094907127544046720939896442040400781485202907387647516661542535133446944387144568052829599178041812387671072165943959005612864331246131307836424451523031227913269454964280233226528534080702824450050907170494929295233214504553248542215465642729307244942768086533621516569279391127047631788781796757909328514825978816905792734854342802521568652881618592422213721806539948942551188204422742161714265095070898615177233254520681679837447714706798736728849958651796310178811190801851858960760318775948812054126195639383396821511886889125133768054862727338283513826821994555890477682111974707467739078046847956143066627638602014970477634656894967789654016443881632591415878052676908404069247191484917930730798563884688134354294695646270344415795436295372759394452033155759757019854444790706374046986432293129873325673423931958619093946251767116706720743708990487010738766832136638044298776627410770203191636448591720446565529468292724395745532876899648282770602837214984935101572005890704202865419365902553802999182998398718624862017840478422156830443009601348892930306460480075984773272621273133894863078194959465294171467379558195669704830836877314692529030947243000094054256829310445960029074192441218967536607469008638540340489437649234271478581314340518476306139129378596773379388487428571555870233742972471947883266049192659067630798249735380067519902135708281321274936132759929426730280475578673231952018736301672201464390386927390047004533820795381572399530953021805492775810418157951740382567723156910729671279600470494721359445481533351715615666410757596476532130169022269342440336266014414716314881407433333830677738995089650401294904712728084624651510532426336886936056763589534369282251128708057139144168155601128010944146784769715483666714265885127548816714668023903956358895728348252038209534849654955924635096105886863057742381427193795828589550527072741862629197144048910134332440773872566949449381473937744404993629135515949207553441941827679393639494270227079529053121596212136929000949850568754608119425531409860774723123883412407622432106090597096851128436727234411368156283425772990225830534315112477731986427970830193892965397271816101443873747230365592392429336178222749980231405812516079618672286041916888475754237060356477790430676062601946565240487180880826991264952040894060174674580062893188041779478449048174291072192888843779216251136604008446088652052308698490665104761767979484335311438596306528577267957767659621897721375666799815045212169492810571621248674526891632190992343330131039202384160335992213595543622230156688144549228449079051223193038065593081851557197313615255553927173333069045080107721162247862231384869196421112767256362482149104048695575288882492805369043788364206054187399828196362727517870816306511533380677638267070131488517525016978326176796579034467286308998197375871997564974881880249562813344852095629033672451176346368524371987452049613805123488233284631014922083164941250602674256391279998007124676881559501304676741110639296865645073622417148310661547111052959515545059275041071444594896283065238676667011194080668146770518101824597351395471754858167073926639570505391252808506057473895992515226242430330047107732868658073568110340739546479616422962237212898828504978807623420852180011424219210239771021755026208494791679675947636222489453564138288698997230510450055183082113360910702145283660274512113451802493578042362601190309153082187560886751670043129529342963523524994284048906951817037000807037611452230826119494045947477368156839511471270917640208591212162321542509983422513504133757736883937388673960866431995342481245932283313796642591960445386523583286461553703328840488236112361268821542391388642774118569919125921558578973640828558365479187361340362597785375471188334775710722947170601230067676782900545875185543982836791779279820299365501802497947910824946350620057735984401760628915050080259759445635481843202173741200844495533442220031215668334305694557315630560341475190262140650364047329465155673590654534710191679337222771654710525756838695498403060682323352450395824892688684188740416738126775064532487355607702800756553163394693765279879964053818739859839761011327926597658866419769002647993419167285548919725720317353899193337612445666773265099893825299730693214631388840832763958865226997461313347148872275527030922098231673321211603504122796796615534148145342805949920185530199890666825425304237100781103194966624629156448866745244291074822112923355838126805484772177193192416572400711568996459074720762179903143949083836835118286350620849609639299996403136337843719165798780134568601139472887249616079059435463653067329752962042265925083802010952291967633777440865505343792598115684448632736403385467588111674755565065610632781183063076591129502169303753573163271570867360549127151042035469091664805911684174022752272000809788977615697044855761329984313275609362107617468656684329036790147084680961456205876547773670890375009655828658316634106424318674691862366081418993090897501192237292328679774339282066517063678124139108275799479475681311032311967874381821166452572442791873929462072648079817346434133356408094126244426109551226501602521084623697589227225037386921558937376479732347854267371161670047053500086225184280556519119327072492435243948611882037352572743855454772773937599504661830602696147440005644608730640145186277113143450084287662022808860768481869290345354672217358383112509337617755945217665122342177202257896201706336083619662964448221241982247567156542055396403857220453239472215961185717640498210203671980786342583260224264029414654176794218290058755518264148583528332444965092362866904371965518710331007648016178156567849277000178769779396033056132174546737580735941635208596622044686492495904711208974841455302916056447303560326375358017660052007250697365650250782960470381688385588955830293349037521041632474069680060794832152097731178870007499825228223126775090676395918682926299349103550480440315332401079626312360747984995348509438482123565371756287178539474926230110446562329451850509683425429086890526034540670679471287985034908164059287896604360592645691614742207637089634017731147781443288853425788305520465855538658086043087291099964069832461847082093913050094077110093430256563601283615322540431156941300514166504307701763723626783535684794370803345308455954884890010714643968383744551379920051264972038869989343740857543069395943749423293754724900350037945333314279747186208572421120047875606223872659150348936784254352378005760421568352917357961367453650511833433502746128413377568712201979002372962468384913148848672338474567504456498016085132104033448450484785172284952485787351983868449991807217457940223685598242403883048160105547693113366146833060971065222620940345364131494298491673058746069309592973432276690352787349344171146529687574274887169967177441429301287160328464151115625103825183383335838608416646816320565967007230394075658618532949171689342329701734203910150066427604765613196707337855676626051276154091603817686923576660631433777687125800201161701927794991214896838123945648121448199172359696864817994799374849921935554642456878595025614507952964314870463394807743702331836815667237159281566637058856368863375965094799836562454816349172310735176552064714529496897725314311637410312208554370774774501584139777253428435004076390644081475588400498396951262910667176181074740293235355186918244242104876302420886649870709896187708282188720447899312538125164137884358981616664277086512251349862758814829837103762170176621872060971958616408773718660807256428174274605627122820532974578876912956224805299344477772657680289587578283881387971639408067110654286112243030682533247897452012650199631844016120330000962740975084033765122112927948413532253010322040902536455824603194835494229991870259267227028445222173576523491280662343108499587740896391177116786338764898481351695541549715268506169870478858087481440914539961813716936318680516312521493042832525707640481357846754620822825133094845780224190249111480668277206269528636616643439882908786562208172555355901054036363801126643044725056981518067023699912775457800264575127196694368740496594092788080529909588214693413249019372647580825934000362367266378495107205712036174332477594623715386113993244504580847258848821329774716499749900732060558557951351846599499916936074838964607140005355929235919590449688728419800487611146372056752172273944262686830080650617819744048992960735631439786911389757191331737805435238772652732010226219121829563143114303088439243794647361646923244611065390402742089270040064781872541790162516436539055107356946360198490335305140473236508931101963645496673643085478427895092756388600244025074956837935954910870691985804624799709109030053661720857823023513452449392159202035859630451912365673424125854648585551107878769922095491426032006346398630317261666907774538423795679169308547048335398446015146323018367489300272324890239977361821759586442294888932450486560855461804649544249744257457054407697345223189779020920422306803866782344816805466058063478290738276251426695022877822114810176394245934314745727879677549834943119125715424362202932511725518971349463661377671313626025894176506996906867801098689574236012219020728464526832564696811474304729736925798493510700539217849327310008003812234672638683469699710776407841963548984423220266660743685936428498517918338213677434488562253507591535148898125921982735333524168882060262628069112426645042420125390245676114163493382972598604658661755120886604965100572129218763753165071993769869300801092115827309078672737784115423377445705869153208266594928146071015584411011636219406628095549817819101792693707614657149165508639018439908072089994664394804487097138099258443759582533533481197157184221388254610083652287500074854786123006147903960029204258471767575971981724794401983943819122424008940280830248808848831820861545619320781745998654340356377150039601421813993258251683955231135204458180645911194830269963090139532720364075643636251607540570975948309888313539513802558921300114404342509420463437571130560643615029426437262080196535453227827640443119911126284033849880150040745750967001186773219749937686804070369857215850355244810437842120040794745381703630725151417616426208519550328645199508786784465400743412513140854541373656012118787348925817078939884727547171739631319550905557554861559884577044537052522086767030816008602829296528811013319736425482380756990745611983182335256954108007704639454210762776500270078883808594872530306847670105867427889658469408010873674728912436350977795238766118312128823385141443522827546981848142528398825852994717816005216761709995317828509390317037943780183960799664536040133463657350935894207108389858864681137016689664454732041498505404491414677286675173492784043819711561850253084387141429556790778784643500479045983749255783422995538756929661943522924857784660316669159991990141488661609528554392091562192050568507708188480507754713553733586271186003083000736883700133435618702086677586781219215910758715590648544630590692246238361946315553752989028348213652320869502706688844482706024722443774081367128744122618723478766824836055968015096763728264642141234577409145378801050761320032345096528960939456136374380064321934616590287799537406217503676765343984597200600811147336571822556837515832317277109993189013906590400323924557751542662541756754598712603434194749581115671234557114013896627150574579713180513136620878339339192937862835896744858484552045537235594236525142471567190586546677715966101488117706018390489958708288538743526572968497248532712789952011493877276845225745234012084044433668055140238355097758865444170943920678077345464739644082380591693719751815794837263285561947397473333564218635395806765287519965069162367076084592112056729366341051032633948845867367946306556795080493093392818482898787769860297310695384406756500662052535539237370978416594920359595249568063314719055146335245105212402230961108680561649429885255363739723407938793963124272828252820566693955478272059105649546129602092860717261875674941529534313697806507592689388838785478865358478276541646024749821359769290878269565704157519891637571712889812802448293985685691061640445000457601641720874382363131094654818076120947959575611195983628026101798453577003452731719386536671208441879524469996094254298513175377844938725426430848098850727101212598535160969036641046285983836171182382714295274082199615535905893645360597493471163266596926833351980518374102218345076838371090283015897739049679312223433608142704281338195243098662673748099837525282418842600435151277670621294816852596351319873848553665499404426947008494974136821027780784174613047285314436520147497261622823447493154385135923673371145756983935033742165623703817297966924855581350658811973656744934605016387677253131678727019982616762049688860589915915303145087544702419268246034066578441297815208340645838765802917241064713814462389369473537632234750143576618315151265239534106871462876666729678630474339351184359999680894554950833498516832201803175908729124794957555335148616654782839823408200307922254898525780885607730457760286605401171425260180595365316505415399655540289931718704634600652657711050152601448635179759048433838153968641613725744511218487923109580612904384673302682282206501192242830749968982032368302613865478862107947188899751119870172602283279087421966576191905487306413673394344865004781772850201052062746929761088080283156217522195741634289816202132127527979458550617423162508384894475767259636742268896919563229199276074687592554283304806619087283060302063573464327217315995381515372301038975055526525432904059617500735250429150499092015585625598635495003536057713529938889156847524283625458918113987766246753031742421104756452208347900528520723296965303547926353424024352238360837137134963496626287362114201858073174879398637383458844644939679470285622935593623916734980482492977937399835355996662068996173353729641561905193664553041375789192456407196824913627585819612830313602505335083539461125664305799011886731573470114364697917540256324343289774110960837125529028640618572845003974151447654938961938279461113779719694522720680366703385276035979077350877693939140748122921086462555840844750399867721725422000811694011298599940707488614415421625706678537551253280058783652948360949351121949249037872585098153294032317947399376005742306490963152174790134080269472550673895286515950699986550316367059383248233352592830840123956624518284420867564574677136593240643539361015277582821856016765351022453373505411646146417008883272476389147064307283078706374261027008345137439087733925955312013527816465837822008388133225143883959074043527985757205223901562538155245924294368334131815465747106870378498661712604509662308886121766010133651997558133757540668707922504115486149003806142411939764951492515671002734114792329813779256537172532242253006769298379676289021755212503421836276501354110739189501856298204464492320514037961037651921485103089988893680327523335212939807408513881638800852491377983046972451726997942272654458922343123762027795359509724467120042153991854473564268449971014624655345021279326063082637085848164115035948479262797839514158809941226149913209413323379222166266324317829452044726475757481462562722903795708297351593242398794623203639948915810955388589301137387141385845862961287079776878609358372813223068366992056506115838910196416613517512483225066032335737064800947395334835268645029727187347663166325280607826589047608855947270667587637386019574969034734235406763247150963199153536199085919687483541149710257089021646815436162201063382051188678447527943264209991133537769551011990875572557094771116718557694506130705661102630590141510511357448547935167196494810807249894286223639287829303819754919906650369655333245346132354025169659087082642269621998336492300162469900659783376228937652731822140838198004504117743268852362302520179848537807221035909667516425920826266738718122007768208306973712942868890077257605162935410068589111135905960601825110901562483617498214428525485495116071519882083826077801010433936170954601235725256953897284980561600680494482752092496553405964379219265060258953079712978269063803813526636302829915769682386858832160832734281447694697221168117741012632592809930102887924797378153991455668154268616915249396153335937909197903362295113427175102585638745147906011859583874838946795667775570790912082462776887568543875167085698186766280376474520552677639848300170251752313821504652041782832775590904292241190436000401069264930795454577973105333817412623760664023263396247174206385451496753371047140960148477475392055168749876222560646461130113004316355650448083541751384954937698316252362983278068398791468003723027530082973887802057128731588339382772106593932406099966821682245669554959319663422754611667431405844039455959387930898655428257270989535747494668099331165976624192205553080736660917711262772088730615414886971436357029111533570462081316202411081221338986489924993456112529592919675741099984178816827924899966859557086359278543992591660074315158600779701788089856805605180915213327388417326851105659102715602767188774472556328198082614086692163210253241620128082403879260622498081365505714405812727626966910012111983898653476165919088520241224920105934581895996459544969856116542383603850441514454072236778425757542698183054836315686261037174088063605408450459817104327696558910818180449317040870326996907160192380798136058103549900360516282573667184543491083234326809164204670151337528574906470147687870854758833554961475461757356044130243234361877711541965821965838661331205041595544424001996167857594788018681761606368786321817939742223509922228129594756556411205704031739951696894221443311350375221750313049949424491282218747209278159371556392583577359296207673806440391674517994018432905855385234648251879660582204149005693339523862823648823752541307169518607902803669609140763506508753488995328483089826442518514891491704570728177755173988290228119082346361880547590886281192487861426196695285285582591527734034842084640662853295935486083813359561367641838717006432916643266537635559491607978431217129179943038817298495496750768827458150924653308366340738628843832853339131953740511063017520585574867390995838013980464129954880100798309072678299438826016649635803488036915864682075550619373504408849737206261664615475261148109188307729645150615181866756243312457133060962158969138524931813678650117238682264164641710935013079219258093396127827048242701319838221412180948817775766678951988365678808042312147719666280196953346588596774827833930102622693132407960889030613917165747979493986843744799135019638247979114141358835637435275132896066656765482391530224123617344195774015843836995156547688538068456921666258580507656298901181119986757544778194583745915662738276739123880784773298607665454713995031638559822804068834942007502135453704894077749949523411125667257929529682983100539157346367111490630891441707675580920215979863758731705166907503308891781716058566190290305540532707775338995187619384260570365760306670986713372426286496704850834392587304014322468594082074997773650808410906076675492775719173280719842523922741537705166766960565705712412814514379980092226721378331568713656577401378005700079567837064031920627024325130661591016576244615922658114522069932369387543823409797999769127150298140214793336673114089878958885817032726377075706898420494864594256532296357924848573834507646256557020547085143162306561238443387073530206412946226462387838632779821233404744425835002162831925099675237820832033556329836296866601816607185753205769835823142241306193864033776910599056467622505324849939394670706120042889903960543982625906090526099371417494907016944958788369179157660386156326441063659560125287065881394793398011793620802844145975113605852957974863256696157674776237812847447356236530685514253695988691825727622218876399300295770128650258220899219667062066790639085946005541231054443683621823158340166716526341153006791433642464540544270059418800724433559587429719218271676441919066785551495802694185382161599616805706237973582979692196406346399278597885392761276146234248643355575833892782011161831435543325668967932303532777219072275119422945854085117602491434769427211904241843294441994932610635910934121821720009164487055418072491611969463967564474089261850237169348956895344278242254161361406902481551213622630225064789517157673054573171052518333679052647987989132698127614578022311411991032745001512085823599530807079654772915231073758554227257226058834067181530842828588838146613291088293307394120968184166435705741864926873487362133970161012234996714785001770329061518153268499680535576005738790722276662040723873305098770897288885917031853586683885033281950070496894871045171474464881484276418277718553915187818020516130235502412292704446803894258508972927058780224438557963594876641857333229094500015500111685971352245548063661630301497989640756624932298737296702265368180565095942510558890575374955562671355544282618732284952189312178077565726152505111358345763120245790174909232252200585250132865406712492486878496733795197338841590245646402459475314237041690143547127319018692033841596244345007477932851454759663261956404945758857893963182035082531399855499210082534738177921897029039097137285106063577262275984492354366404932966675565252704135948611700918425818907986015993177821545849659210712586207038248920540636035156998616359346434617393060685567013708024311321712786482946721355501998188984399889573679110131765223101639290827838350597185794291359354601894187451222250448516105086512420177501461558929829405514831042443738117179529259562433458067657725414248434860433896447077071847926851493257082492784922300148201778522983649034564843219038578203409037106147984820735794287791017657481812578548466586342588990588164747960637458755192468462458506292692428682802733263397399560219075983904363172386137648785072652463429278434499033121635966424619823180223810326256703302567953521861719696454094734844790238644063115343800670658262045615914469175655251097017159910277316238950302967563225472565330616742007972964418256003984403150130298407369952597191798943006074503007737507901647596421059373771031514997839460850288304068071824116089669605072171427955073933366484621613572263708414686560111267242197623027650890266705855029961108779613140139536524969027447801700002817796625420369175739673148045969660468951237713515740993870423379120562293228440147644791503610179510279329924816546073278396800138498544685258102386443606972842193985363630102023319587662082341913672434886104414660764863800643088414907995027188867875585576271215968850008683857106784147273459365275079390226926168637887738238852894825589998563070955459146254376542816323363320493748541676289817596895481997009628005239621281004830817380239960495992191951830080133759019795117428040202651087302296105512699061264131740580347411692271753085673533866685953614970024197651033642068272235778232751932323344735465723836857604909155968707317698803698982851576691631285237011976845590284688455269406710994354152502507974582104062189608953035004267154402506061490984400406949257979863319996313600319025957134257522760750477801735517859999326656156458022095514908228002570864672158830065191617686437647952755784692790834177929176140140791235345384111557959812648847964225384282218403963612359416888667598036485983549195108153902097712995731092856958751090011996869765887813342034112718167045422230234241202151960713594761500383345590924555835754925953490705464657179316310364526893904762928203391381734127477002234086778632783266014526553884081831474461747274261629700730058910303620626112019106908312201818546452355108221529760252915048871365165312217740188774121873072234139445636256924937976722617494861678283476568135429662558986986483031870230478887919007358750727998283525222270565598320652874187824036795799915532654566966993783957080000957997498005787818719604794555229891169853352869223696310653399604084447134064991981818519019260369556049325522920371685204271288555587368398807232120454863010621517751167914702704474671795344526419605260608264644610408083623843611660793718764356310500861810563568391088108993578052520511974137944261596812209509878042133288203004149762479024250879384110782207334268949148859758432089044743565107632432616126119353279455301845625532882050733019101946552593045713850257904649617549477752439216610508020709941895308209082853581030422223765131695867005005761150683102059502659057309588927660208004867155025637188456595898946154475473476875872435217826181957049972141910889833759573738308132859839350221741971138094902666035403598344654690686552453759943548569584954457516240136721216169683749610160962463747223964067624100542188859812865748673622276952925472016927444265495202334666788749779592873047308560521562931411563829249755561493251153675673764666487658896074575008272409863900213281688417098535412419922960575902737661765808662373609060444371537256921893018333362090628164014847254835544281557555542454525753871146785517040649525951048283266154885124963126632428560608791495550474511141953926111633946924532145196103190468532864275249241548815889156346127477541546678761102461763595686081012547143426680725850230929385799687039005145439502370244265107354805288935180919640740628703443463196718389341055831225950798702739771868908589111482771098086219174193627582090132591366606960346554321569485427449881266360298874647543474616294543664435666909855601523013339208786950385042735030256838597487597341247250609914813491315222395648820169603685462917406275095873838066928390118981448066637344955409941084972672503275364413473713954788535041076851475782340825773197798249881024457652663231977096370597965884342238396527866565345849527878080368934119959333702568042192797308326493817395901940035586174955971567601883279578467962948408396980677790825526433655861154665312055104416218287667771536913192101004817556059431407639268824714401320051660897858325503511123207608156047836004962978044750140816312776374079065078836253362202570048526388034328366120340502092962741719100242156633702287202816431866768586314506667832197404668858094015909404108552156754604467579545041454371860933271028392145501465780210506163681468843552172975214165689713932650022402737090170765690361591483749484763471113793582783457360806869417472538670194004213166375104771853637297867248863369184122660464296961456011969484018442242471759345827126315519247705880316973016285964091585658270127901636018719024964763580632830667416957236396897588567999167153072562005222088012227249904844635197498924464190700823341266123364940047933895111211279456245904486067803209337506785985758426936243067442662380671146629007325213510993851569106931483284475033818202159153078199340892622131291317438398850404775762231586794856870535653833608999724118417860089830524627594096054701257522618493336288609777846922954586660313943508719109395386137021951679224720266065400276030013679457362229419826791240900953164422163358996303595252969558443572034894045872508835016453968698132828659347117883987095215783963464099853673814483121174507579227839676008392417159003287737070941482653422869098467230246754397386427718315362020067484665056562302090849433677964638262480614757048852542197114531639500088041129857865933994959527271887791582212747837371567062212748339638581154898672456173399703938271704097756125436091373447461510631503167436973552313387908614477381649264611409258404106703672172413035900965183735763426486902987499749830729798525472904886318520251572258996645716491070469053986382546897722112110681795110601377922874145937296832899933362780992551549691984301895810675710423633656087545830723918149248292393951409888676626519793893941186276739750167955697384467012250742664561874264923025676095391752848287738375200276737981988468341218094676071731327142219880560685763699923437886455678780180125983029409632572920330914798110729443876648424841393668335679332545602653856646716057233080278619580071286836198218083097262705799255295804453372406601340596563839897574923195677454114934343470629466084722685550227324968344640654876356729364111940536621336149496599401373166558009600671949668974997760983057929536552770824878044207483329231868255042601658244031210309307956378365385779629162300321922415648031580490301204121381691947534091105416774326444914548938692684391367185662227251764085378786821167544859318568462597052187267052251286411214626892037134884898283078458442129834313012085105691694562464685220723399716495490843719142568757440137241310324960256672435355807105246475031770986590888653456722841561204276261364902452909765509633545438473429025847314486041959718137211601066151550398410666601843825335260872160255996725191639163462862064149034867982949219038327103424371948574679827393152492052228163909603956302035116055497566895781817845657082501990129952859989499939875811370731577791791596782758154517093030839462018922838981009911303947218260380618225074653532002913946264888038754334765085752452804389540524762921081686051718990329453116192163021425382982767398124495523674020433100908536008234178083971773837630469972529664379369389159188848008108304150704078612850117833114377556386310426818027474017646763187121147061311110812386406913241542110661546965796040422163685555275543203068489922259622826253423606871042237950054316256018685231787662877709583112545884821341658736606441622327257259826427212069796264683493635807219298575491467229410764542609128933489412228465884370989742532658323870655980783019235396127988259213542060293098886741125346871852613109002283731235792868948209157465791465511913290938474359427301507485059784635785412251411440439753558345402429451809455690935545622588813394792327994700262232474867848367220493624510765355618469346307638068237414280646630598219256294030524399521196017955132265467967615738369813247091944898442170838901560673780727785498303334954301474690507405082122649266039392053337229155416470019274307381848337355708819071294380938680003402547083924694317149503656987726340362422816705447044853170146532024680382164763806382761095348068476658805256854580125274382543220021259746888970443116992034709755792600227503287778642569980211979588436812282434268986055813607839291181520952253026118901711355452783814167395842086168739255579407191096999664098101138347091003703241088021029277360539341926474057118388864843349865203715782676884524883704644992326605879573296899215543151838977746817490873564185735600263356386599591127346114625555370724162878433111514734909056017562063388460723316489558974131934910025556934239940487980473619586501904469152399671562856002322890290973796136211545308771408254847557202988408139127944301671804547245636184675250590197272784055156455293931057845765034100730305247752594155628990011133754903679783089459225009961693459403785930466773082341018640468907511356331203965529168392697076930561190078301902975515414724842781403794263064639416290746731125282999946644450014182950366953780432584293480926790130149453800157456412163164556040124066725313374261861040212242288862272114838472794222490978318286250516522754006210056757342914081052148553565017366600567361241269651111233996028429579591847785191355240760307092248840218717634447502794385582285407889176429487670275861638357785348222889669971741979518748411574917479828097638371168429834249256931316918571943806928942959439707049227612825222582985214874343180260188383104607969446278675841929510643507293708760519501446286242575581555440821867968761415120151959552776161464857503532701773245700288239463537246512389573162268022867815193939509682372192857746423636369379959194152299523995783140215681208739116353288992913510558356948442442232297829240177944583095413856726156138306880173008380708831167080462883338355775272586058772988089910669081734887322065251852167706136775546171587966426240683620242753947904375341141907064930928491004057924401096038352603504859937960226162923464833467080679683553276230844323955993571968165234209790552159283832679060786347020658969480060405651696707227076776253406840792668665559085286475217807937317321695206924037289799393132544343228218357745148593133801516762658323767335485431205141381672185906295466773400661801992500299867981643474307371572428817054994943651974412991355615950345017423432323241453295768559887081591535686163097370847104030750282867391703745714663825249719161966876002021515824027402583317696011916225065605017284505192879609049627105839673587846228372458240388923160039061967712266859918953810270334433213223025529755547498803357826433215695142838902288202482725379940766547637527043421861309810603972253214205117945176469993513534492053733718958093524787487615144333102071775348894708731673983423478548893100746646901211470294917293594860288980825809337015884106578082955076690870274747505411406429932412714901681793900096443703235522617635964382713850150207139051854222304998526885369700344882112992322284135000618584479642929999999501381239075060362462809463672538204132356884018640374309204789919078409144910454939794915407442543874514010349938218383134322355951770777016942137980611160657999639027247179982297837258003824514221988475064230939029108781451268327440659624282967095050148480906262081310544029170494811341526334547957028239995000006359808358827440304584941138284359118204957826973226699688479616172697963664282514166817555621267477153737132077494498336770822713791136378068060168057806674809080835031629343138289469840296250673891244668918645411544237122498090173189777137203271059619671673027282901617194480566136434323212279026636253899707552274327178919255221611626891270896423954380840623430009728995280747303728045697349004018857198046428530101267439730641528206495637949537511183552055352055171144007620235488613889101549000710651025063036147245813395315716661883832979289013082539666670456050679418392853448177286236824467755797277119406674070720384731566890349456658644246015323265086823949828123541029950499622089395629202204047328928491690401677535116174465013147054758059792869745798531871972083591877122205028741001579322022797538542224515919840645142635708426107245048520761248687529380558212436958688549296377846820415776649141624288086936052997458313670927569308486732775118838852503633540785099807636655180598919515492052912614068750293168183318797453790537534426248538551179938072238386954507788778204872365065800459779637309566339266666276621269191930981167662108387011079304876703543505686622902664432336138503244029264158464965723702019947188497905081861458620206564362119908916636596321725803278189986078366891672202103923588209552361777252891106006076894237673246885782507467710828312423920859358762497505660100294876457423115030566344943764938318705619505332941719623707010772482309449812623746319882872548463140288561683825317040634376787098068159588261911307089354191036173322736125367289955276883496541976129601551868334245513302633324707203531710485707512000240986421742316077368703158767198767290936234974054784350666192599943695228140040585381116511663501636361128848925341174298288894586315495758474866762211613500127091267977274500570191972251548138487669232673673327851555070319821078493867245630791499323553058228711389439285810397119181146216290936452447226480892931829261882292908146980739176837699522070399644655702885295443738922647762392498346000017666288256313358041747946775593540654904798437654107359770226591937781424672665667369089424503148560216027201478562728343424924571784125311176926556666628573343798883571856772454184841570389267832945498018775209912946934973768991224350134651952409682777359302369528816595140479700418810509501549182566300454109439034983558033884469724094121850610362929454440783239101198458765087019917273989744917857306687084207542679456682817348891377150447637295038935808378380372858583763956658618833462658894109614677787104302034269673503749593174769457202504679476247162849712800630305844826435613527241757760031690178409918199001609759451084835375720021056608486800820626789175643063423926150090451089078696122560818125637957777442458189039603057611808167790926179290646979909998340937893173307534108414434840640727189286177551013846413479993824431747054053871304925135809264191819023627658201517082342718024543699371454884935403584005750450004075410255047834552246982162262656803873873322194799717229515894540489028041435284435317471165461870336175302975495269144325020161148815569756110883597016317727997120061482999951667667576494480451771878997350066327890055614597653309488152317995044723754778214390671216081884161271485570979559467943323701486903213067908563096399286231816742142169055738979895191366404647986174315409228099150329555764161079978813760573199012091193876173751648178834892008807352994113989718982393341647658328007406267943874945240603620729430078627140562654163650671037500518620026573371221480040750993299491509500017695747350112246623055243458804899765495877529529691170427721681587365746016114612816780534682976102886968812168910729970399662029437078636838581082204283878531559044622270853945085142381866370360493593606731581789564668017228826256674384741917871330660577514109544780626465865414400197842790941734685515062552349306035248492764190227688399045139534580577042068241775736947487088845376145639791100651581070028138825600081437248918661724856787033071753989263586065921584260109572516572390264344165710134748045853893840488579172915490125912773603662775913742185703049767791193934809476885656628624984088333467906131917742100355333307019367541718385791765710320206762733444440452107770843396714633725867985636744670759040526790899885974624994732257224841518242454018212348911759637873660299639733394205684562181326264315568841565478116012027597757482031318423950180001356694924374377449901839289818105676093515756601753929890162682589783407615477987147197169229022174149355288042421842259939052273557792620930750033223484190631255537430901555736725156680605128037387805442388052044836944001609126042169571445725282529931650723557222585114975532889302953879979013013820860421050510667013238998027024137744532791632252403827748180265142137528752058304160833511191391858229473277340097180339721010913174304909479346475011520428444789668401217634166914428182506087238206723078160787047018898720403618839101827815333483948171051328323966969821490631411433451759316000258504087068963730085664888118445113373709149500007244216097099203473153354734047617316620393479447026645421025975840871878208056260211068427784525440000054909028079924614086997264161519296268814013574085135368215977249923630089190730928716590465082115143331872243826305311050096387183975227170599942707140909150224343509954208615419118531006257086279728051743325481225290605175194498780574967492478878634018776558623316601753233527136608025192557897112157350414429984342202336182720816945153937449191612802394791022370236551985572911600577594721773548875267211805213152586140304618002391004318054566150959717434921369736099768963183078300118955439188085615690364466242401844893376724604516522366628247642125411843135396054832188738004440054146939791095658446412458081299395572754967859751499894028778022809710416628400650182912742051057988528533550784210196670195143148972742708154048639866590129231409431042481341908199807633012495981610322622086152579125973871839302658526337379221873954108142840131390338281904142374763624552531959807077247918913994280589303551816388432283540705272613221552139605719419006947273516654191782866215157449506708385767092336432262268983466086002706035834913875425557049779831531542554761030917415359773686295784090002587140454343537099938322564533690508129306466015386082014157226165308709051877853658090379150872183941428406024945654858323526728150574871259254547379941093428510870869159345260338579282289913221427906461361149321236730291249044764495585941322380981942758344439890513320900689709715015036029088725378767833804483704751029255616153918797615656917821531788465038095473157112094459672374776058498998732152925955949302727523746506029345020726078419683371774232228135515303044926643231136128547881121793399231174864402213387129978733892873398892948136315188601763494451671780680117471465959422654988048370286045181072099557355719165738661292688961928943872840503598149468632156491284914277503024914977105674487508005436992838978962443534563246681226865244089687734879814744447619123722470854059086840531557926067565644671867831525859099069714880417756215613085647694231762379442766691747891071191069293749412012564845733617396032380002200839026346636489880275242508258133415187995309933845408092430055737081052039193655418346773996719866514817988720957850349893439683751401081304497270384082494818573410842672088114680399689286199215295180188087487313591950389524365679534748564635798040584797771357030552750358136240379468693994158886685027213148266505911244327158390036052719702531504604244709561842168277040440927643382490918071409203093268523010367749668734387895369645669022871839898542619021690015953191250819025187701038117206883183995251214854342017972348002940774341374166626194395682510242328748617280365686564079171333562758490941488830309954378445225110014300226986716060806418061616503902248069193806363499771958782277676983551431738346099295755912495288433184325773143404408100609555090112426707848331959672606997375664974095074681616455403326836295394999388825002183543588566367084071148762230695980910393545847024541331387159139109591126370956964470701862699039429632442614577639056327939988073737670257241780704845458349873204072996526149829990354331402834252573413665362083707970970064177308762433768520519022361734943904011485947140031938067255896949124627262886524906142868375538528223372063703860880650576023543232649439209681238345954547358076796282195083840284268180422142231126923842813280157402777621726870725487864349869873755719979313362081863689871863623655624116014354611805982436977255721766906480192651515195752176033664123454863994266395550904088810872588194383432532600253661320072050274233661123395063707147994031273640200394781620774569975325656379370509254804167142705760334336887975470700131505030935691801842575244408527231418273523439493526506616162912527988058999990055200987003966836484570586606561365905430200902837258681620045192383333506725788618500796603850266234961271849773090572153016270671705455692969087881694913125532747159448503697655252372930850245052343150310688696902015977043209636359839027995133790532745259520568838730129687007956073932048995822847799328633772773384438488917067333594364239043364787590248019770404448804346678120928844918043688271073685088781864138764689841315422723740149880687455521239553067537530980662642512548589889121395240231156214976212567455675866587410053905384969633865322996557553126390518804634367568501124200586919494639496732232325606319338106791622791904699568514173069265405628008265319448198334134808534472614435170201883767279129746184093724946260996217902748834152134652677608430684602659572757500438785328146143483413234012762604578879665368889754902693560003289118566298824799790745220086017688687546184078557681799045304708595627696669451301323218162108924194882831508400840145617659714187488849233122767057101682950532776810569172157246231535482627153688710108183854722449431008390596406201547597985253683082457936680800566454261098941358639651153083700687360025446331712311554194933831587744952232051206315749738418444166091056995620951074905715821920719942685855328296132745012839265876917373763204733398392864390630010904637563557120927347661342940697271222959037716988761788772805708421088109836810298648577631816294099835134123608947648950728870182922852311985376045417288791740226831839765889749137740909302584618119420133507990577454549377105941919773240861214326959516729960069648641184024090012418904566045432314299748084110688950017681938581261403826636490827235845466919922621045210233864667407907649061404371971274326126310376653304905223708657162135554495905321809457573591058321163443365304734420706110391364137576831999050580228422400860695371809027007334939044519051229051834903804481549712803779892076123082856875555126678283243231617883386768310399355630118804711998720800940043122695477929668603788476762048388961835607202013071344022299528395767100880630377464258060460050375499272759709706751145479627582999634503583390297569987987236361879150809907872635386101551814844581642429496028109630297624273918651216585541843531280677890422911060499177033759192151390558887543608198265319567550282438828553110561412652438349788124931587049273690102914271731133527668817828813162336845575152075057771222024390492186329249150336246082337785681003135912741182744157222074069747105245081239141974826477619444703882349450438361357928182364733405601660646372694786287568856056014201416029208331702945812925021407960241421235620115934115892464012126054979705551284186398956517049636382455123053494775805595476582715741764096606474654472048131787186671690295803788537347445382372016756742523537159500210644523022604430823021132130355632374261523329680199735160911091479995336888005342605036167474820877509964913753602903283316912171778674363891715641261684562900761020205685993917984973587558668720277269377232897634333757505191733267440542791420258031810704323632969533067916376006707755508849011895448718941610623222918444840665680465210022246699245982923571674703661086230217677447019153604807368517751242087835996665260984585772579538795367132630260534536576258253050058337430700028109695257681402704886347666282260423587073344698665546577479621498419366283301218038425052825491572942902382616675329068151794047659030379989968975073951144104996249335701580900189513910425853777725684437077888786562894695300685903239275449285934704015850294957765771183698159286142600771496323985115812294673504317748520825172003020575120614853574672797883847225871246367336662514419070915186270940236174876921333662171794232553270901351229014853180991806267428415384494301565920806547143477252210045234200439533176916395955553121377285678620205626755233631954240145677140986592076952702356775222975446039127147823168087790489993006318717570068015355938165775764745698473877467837361265662338406815341344097756667367432805406669062380988298508008859269094312714032192785754968367414888655383382423916934271695449675605140718738350912786309199201272525364260944750684946870003178104220078038244834208142085912599530606990936253750016692953540920860332998975112959222142873056448154100442767646882804883471783766258707093267641493417931882811915154968979011688674715340910708916438565649592304640718996763039702162677307421565757261238199170725561176818135885548733479596790953365065825684246038567941792343836804510474537822522074137577219702469159830175046867256688975306480713643793594417159789369331726232360786948344886739094762206673040418020485748848278632820633818120822649185385479238743795927748805397781045612750003230025727240003921502172482344464721049549999113510349592023442487660542683146763161011826485532099429524141450648675999695678941050529189316578637381107141942219933506469020931889492688450855295642783005358392406158307893398016528654819326060589004067087929744341483139988153275460331750493116497607637367632532031507533254221816990246423236560460322356671389871938960381848829602833443044951489304691154911081092158365121773167074391885311018949177815950304604691255717539439627407394357456240946965325136672861114226244321208726982459670788368289695231870293253305194422924078270202970889819911076198899132111209261336547223127413313325995898413944822100879397843642574897710031266746427925601355428957735714634185884859134298137174771258825942016815096215905019652285167629952392051808361574169193780579109529550059917373309083312211719385870166498430355945359944997360075947641290675364728690243361775417813701810886848267211057367565318819303704421398647776233273448079338733050237554818156233293312346403321214568291453535380400450813351742877346812136587239700073572392477992619258362171550603154207533019867559730901845713417065549185301759631623182741905474111663270677275347657980901274262335880803511478396698211808927600777961034309573580614219059092450637358687819272693998873145181556905891131605484244974492812651180657380360472819989097841233732748014778793741051659250397887580085906380441024455471691839382919535455161628128516492397414014484740977452150292258518429540366433775273858919190938440682342394179268808817055486674184537798653212552220114419938227822960461599917413822711160546688685540872274763959487129609005087738738312212814499032706428828276095656929084758965290153489369409127673634545946392857961628517968247329680144337249044592339208629719285039468774915896632283986556552812105339423362702552502730818914336298771474579088565149883331894054392642105830937313776519126330182445957701585613702320203421057402778198933833701148390233766025513502118798918639049151866279494964179675516030112637432594465714344019385401259067097591339288541580359836793366921605054006854631438101843522957161278110954196954780583917784585112421395574376787396952003013687806530291503623677406977647929806832817809065498617269976740557965705873497586054045317619495721475202720086342687583555609070614578755253370734092560931781302306668285844527663108827795563984499671195321961229830214232490259019895609917043044803486948725665991268705823254739184783597769813862957504111640725656327656096753876900080058130600477693885678694038604774438079015991319989099592195195552518466500210240640943183527572348497005440833921947294907482002395794267424859732675413256962580287321100081451764548740377594466984695535977038531501229493973024796037669871261769193837001354662294778803879012729279818444627011122793266616677761675068116544519307525239709102706028452716612301192988265324133634961593537862145645707039712363282844545188664051968368750933642428934931478401037448227242429468959060188717416555205675247421981924177873086496409115803097491115196110907970007729187963857873142804723019405253992408452355102826800190296568117678592681770248752997919792583179100934731467259342290017979608896814503990916076111602675648711929276320263736643645460261451380695695687452569247952127116747744550903344448340604000673168385834673710429066860308277758384435390797181108590928857526829743092748542282961652236128779578789620860814511702832636219044451962206678123226715784140710736023859310102493684842433695129456296285452358210340141899131955985714779668891769504027046351235243262566206080777574903448280530453289409219492987409086155965009728941644768124982955230419103435248702936218729825515006106511664514513365392624837671145529655344694037804683487497565950803582144894030182439502551827723884217583423393847720605410582120791669741795763522523490664872784799921763393105571700282633900682742838633437416433921409839271266208771714254886053723504821479857088034165084720295168811960255612493442225077496565246734363226364456717147072101887194884264292106925953868191221998346147110824927114160516738655912735416713846131075388711957675163915827667661798115003417015556050024303823856325146287053195431296986336047808713312296936283385181770564418748815194455195052024333551912840877384858587162333842488027197534378109993504919539967574630172081726053679922492179271810316915546821388069024984426062260462465706251280948599495049659766893385748402583759534672477262181848571322114402028813754360693774618518105845886528776180373507498987083085857605902415795724154575867682786569208792421078032774109166781230661099450145046823757285197143401561926618913316390933622402295202256954391220022065033832202737915584682467779757589811361164276216714993801839295948729978911378105002053760120210765639119356165994613382212449339200464412449317283951494406070324122386144386345925158548832595000022770661166554800633003014349662138416489594631350255579259363977434900591645693346295790175878987025406643440031011718339182359828152870923976849311442415318812450609887141209913998775059124296810709859693547752770748271129777436764929013383677166525137990162371844908294945375974903552676894194584146522106420909029855701627705466088799193754470104714461286380678997656688224277428576659669785264688353052301409832666324117583801188206619704372218467502864901910566733459813136876194869774525907518986258710357927561758196653759940627597109764338948957189855844172451628255229612537848962738290162961208481861971065087914790001498258953170813172867778585899034305132527612078936928939139273845601413456072905045172011290219955604419841714694634028470986944778636173033286939139490370875863056180631789113261659918825972696686410555547215711112700930429055180837622387116277117035718113720917122017687262628324057209703148638883770516991475912697622796302020494540002066033598849201658752370544362559935200280255207254286064234810351976684161216682773364579279271846085144525248220754074739765200460987493541873037066614832951849122688787146677302725033096199837658941666060826711059652642396457916461289242090460640882498939885852791378040855358155387089153184327653723339573509001691165138996742349890105017123203517665019444995360022222273310507751792416594888046566235140391860568213245129953012225388587303543090107380951844973933096097014197668126558056714491713613368362433280786353150875161489891792344581303681632734778332744732928803020121763962527614358572178158266267133892316417317498195629701705937967288300480936414725976092818152072461044845621905482929714098332014361110812229362784047100746588003213076549136529313418598540650935592631591232001027070147808315633495052218051480304696718104932743846105730595524198310164451563764219359065970758855073409673809080597851402488742610688709358080357524899123528453838820563608162270458678228531308338949538610062277487248983428580949017937644915487954366895333371486907874906487584151260624977460980802343062574087539458524350861238707263691233759290724823110777482054629280646286139486617193144472633866923850281828704158132143864238412844932028970191695439140069880574395392147546117580252278769011134747968365453285006594134814731751435376946544438089965118843007813652147798330085292719678653554290518427902175529392067822480427085769825348397490111692163141503948275344318657439583429868200693308192962975785432720537059104115550372636642262621278441180683742604061207645257766908874723502572327383810040576361924366729411412568387673138895678372941424149434595842331680117350949442497155953952115821394683080086671018386506660390729125261822391076370465525929524862188411538492694131552696867656415614259727551552796647232577255066260144746854621120430887305339756520012711073424916567502260053103555542559227950022509347739657783018669294295629467306156336902548323703866109300649572178141152985705771693188475696281069654277525435503991179356255076136640162730590183236293239430791956226347655176723130611993747959099298710108502395104273514181909129706011885718560631526231952641403092482988181548614120176034610064982697132506733281599814470999060032892109205711079562979936991058892169375576466426543447543267572617969107558075692382114727659414387083967653492389773616438540353155220616108494038917232293943042747814742052725444006126645500390181325412829530206458349914702825064812179721193630717003576518113325208066613251918719053630981526713828803325606400191611327144001591461075549617531759185196682365160976466971976279525390193881024675571026887883628277831860384701752185760077065123679558673261922341867686658575582209256970510629258108131674650201525180871169155523718330245382314030411014922353167861149101586662004182583232264833119872448958010040791916685827391672150997700027435207656184442411704230280453973328397921408332726561798140857944193734527957377477807980886557074827251537103695162319248972430837785753409461918082299412976664312951648799499395032633212914719596836201946384151452119169208542385803006876497677254185978238534850475902325039736828811102202190910329021448178981704537373131596136094150677822507032795243446849278412458521156812224560594567092892896473776737283205388961848361507484791297961652554989577152258401774570618382458018217006663191850605151883917454181505324688899793642903062369374372469240889925330576099318856273277796942295251496381603236590867693531513860158098832677774740232427962186794209639291360369304917015513246047576913410513383725119190841175919587134731164948465104199891181831502948875146700029033535373535647234089882146206115230566126495693373388387149740376378412270663500724775150661541799460969745376620916614380104320891246973450568313012391635231640737280139746190007470711232052277591595489352390619862697622662099503974699254341280402514827811489000045497110455679833216358549357266385394863050083651225405021808636593901482052437558811324857104041458244108247481180373507092202180283955365909693158953226767346041295616511112859732844947334000450443562320212368159443294545584041098675810331602358193180203103982946015542166509688159819161059025375650332780329712830717357053183498536140569928946835478742699408751236374250525017503711699164764468606855661780592452077992095548395262724735780538313045275265395559194352304984671086526607343477303294999094609598463130127467837519216794059194313656695383682062276606655961183794855444991007548439124439655751386410550046605015673704632590958746977983458764766892545297051012980469565394314651249185076465006374564482180235481136691036424192673984928994977531441735456006470147723620804260226830421685310541444356781792236984783734674275523253031812268777400846284766210282877944769354389224843729661508491802655076704935742461026209510953381645276415096277442790392866384778820636577991710662528021274187255222471837348318987563283396164010184762998116459723012740149290785888642049625239083014480048525568517691639287656547419647459334457474619022963873301313224036209935261172529103250757766143934879080938734279920825759916166832323333805298630435059521257166060441086428836682643078576809065825128591067151965685922414641605555033312175377392393231166772865618794322289136604492757888796529969140538927375970286254903452789318650055289099048256686912086342473043181524441467576059674789844566240450544077872838045645148472385816723131176923669054425348865011601625530410038295641508588623886197190163632434918043062595714283377500064929562326906827020541698549700442030182911032565147986712162358433605251633218524256008333203826822602857205246209114820253917753682080919549220488554459167927118786740757632442526088712362780912053580407143463726585366863554600095064489798439064221799113994600772349255672856607213921676182898744777333934781420316125639709544129754653786860130836395632132247378957910656714418640638380824264534471235564370144295595306651798259212138765917281694067726421647537074114409600963092814169098640658067134854779726373662229056505904611036576509652867477740058109802262646871583066547294327731162181540668632500766006565141182582509407169502643956510241567636629071814786025889668547943306834150737268390400951142684527520920994069965752509183434801539440301458590580981710973320477350028564951518465483491446780737019546417448104770872402701924443896913728540969681292670412739679299162098300882013403992123474087019492459983500418123725538531544525346648075412759133079049045156898840155484953485494613613378581180604066120795621426378530609132589007518666155133238670514867561022226992960265568713309452929520230016567188120409469130182764627969276908160661308678012566010911876546256638903945925697144388940168233934394070520504907946200309171110760924218998221832506128075491610417935878635542840809952607248257918111010061242105531383658973940397545465487842266565336810955144025257831541259610202909347151669201819356107895993599534268431703369676186716618946777163853915808257513799843229285417409053891088544089467933310754283670964914149488604764994040928216332413261412157949623099936167593644374102362994384899100030369550834469238312537927865527129908267614295322025358694562819767825321663988133455961586882701449193418789866028139023165138104221871044669300285479143674780315103816889578502417987536164415239808704834760561170367405658018439338455294277983021891768059715249417673104098604612548022530993129940248528511662077026769972546739986032529068587941749605347356245234813948246758470269280152736668570522718116839189266266446257088607127198707131977566250628445184384181773275111413670645984901335723497311035239043738811896313992693089816262938771257573522599109453900583928658902706235160115186708928387524648933109685648399427288180407340082741767112081151387636240649089856074901320556353042860707686993331728277456520811127422696034340054393882245308178698218622201900817753033300132148022231967439527311418982819132483056600329208084230890452602347048688033814333844367704534712577213061886716255236105634003701560890773019668309753108698230474956525458001600543497394017438068158716185532804075132557397530031153387881009120120583187351095482553440623825688726597349574100092121714448520874079206719010185312539288220332401288345948387432869948275210542747862018345004937930095878932867747442211501329597507032365297366391779895480831139763593480895470358186587709013983993545927029698688104219595197047157583532426586687106052997526937378712665051133016237854270987555334596521906825922146836093497625367012171190648926119607288946746579167636480872703695827265002542698979881152849543176189413943820947775716766694860009159585002491712272767478606099017179402972040422317987900739569648849006761988471840648166026866023358342716946743399507823951106584726546514689525458592064231648452344764005404825490335497178542381526435714693853025284579045517110133591170650827245605229140770719028601229248156504982841498235807276675979039149879547709853744673441321291938104517552632693613454601119547196122588907569100482232588174277500610212661151279925265752582085303973652488176890350644440342925701705657299898824934478566800245254257174498879568035378829810067162043072759741241963610422528828794594388630626865505946280186692180118823005031586946318031816202112531700888241086781176624819248295836728575573514981947466519706516258968541604733404751490905578992845604616540343385736398054061383898713597290356100387171104647584039057305779503926591727287666747032817526070215779014560215318701142511104060457263234352233706621698465409655198086293903510430051582752491298350215357742102604016216592533147053394090458609614729823601465408077025647292026456325719486548946395466379224706217891365572758952229489153855771414974651885677087825987985192818767423321216436150841251852812215923471296267089349296703737044779185691542764026043832426142065270906554670445354945638684308980921055121339136680820271319230235064042713309820615367716151354842848570010323142970433826265720988202090780834543443111310394552601845771321633470333951954552889622358818854635380611934735479539606956363626847977901513255438624027787392574327358006692082633533183577244167091674624202694415317979824623998373104125226464718478784372744362018516971939541599828213653238244274876629654568647487698700333751469051318165944557356869078985735708548988364504420626850738166752442180257654011990101472832763586810565792598228159189824586765851237242810975972128933488695083814146573736401186839692684891726430224949164949453306286224180915927062978638006094568880568311289893562436849527128886419745643993059881221552426783744074904263420584271897353202085904733152707650284542340414594535665439171094837431135192667886928799986337486154324241545398556274646134581234762420849043770398300456083118091779293766969122381984065047120539532554070323218895024324944585596392733822409219448279240814830417734673144466937631443511862162329546243837353896484626322146338927226687623014186045099647330411571225583317414379257860452938201254309530278875702278305480573669018807913764684006541449274202443600240678621406145122911216855751056388751760325671910915940139630642417925543822221447558203097091944076789885238843584171754265127800210773242959400753679451119360423973097026514899245223806446167493623581162624276436699377419556008022806152018825930908556536119273480052475430743796439927725658925699759460826361990728601192280099289936443591516243566055634493734473742457449026855485689138999873627074627329638583767751234641980663434792459826833963751665839635793307736022606117345397334617420139117276438559298926416762275375046501732482080801239738041188952600853897225994215868606714108272378440645496980167532011795544964914506111960116520695457413106031821238867249486036239614465496524905680151240984096771760347855032250229544410926791375356205660106677523411208013239125950194997622301485996590921203802878577733472880006422059338014428074528389328469797674836053370470599659008287205711426142380470475734799731697269610850947723016388164332814486760624247183508090219576103146212300346180189991079307225843785392796663400376473507421705942342502964983272995689672596642600455492746065595044034938393913349899097906565711694148169684791031939211646346121200236628392501049894077858154499514555837583918627127378639889274477408604678040856879357128525631302160873541104142528422720916682105088278858163748529720833282712110037733659566191147293291910360837853595816569786111010560560577629323226655080301134932583806904553394292993409741779005986889918742726303198174453404930268788755196983910365359800507155390484641068035575013924364872310493400728459021714619414560347682715171491118320399443396058679244306974389680713534978724682371088157155634906098998273558711284217210539588123356641098352999279525199794349646776429603373650280442014067897752869148634574356912640237649934868765976079761176003504197478458875468019061819926576526845807631183634290225556190822467374076964820498181212136119218058691973763188304512767531551104776320872578192982060831582811033000525281774155171542456546676668713534081920008710062495282974189326570394243911251464867002180468217872422516190323957159553766647127058142555153445795882257000979385383637483894658284138959780945540952815047510216536086461109107777290457369358231424537907908770754946958699086373799737625305298127536716255962187718615145841720513378303637343204901483919741015942723946208186142946970514054435290755764474005722179365565071021056967949179232729368577098899705487554188797159970471257149265877578401162069184833835935540064222149430927399200087024511201049240530351890995489240191188805561422322167222726449948617769608044579803891754816176886321418071306541519266539036802396447056447267224327701224736351087022349849499323894123980794158573961157677047923203778731076474764541191136677456810350915033183499535073774495101980520074291517091620073385113614425237568358941276966553253190380337410843283012818458971872276133044493464597228338795403000487648333208399467985165142751957915881992971932135222177301472674180221065159929813131700552498560563685517571415895519303228284481170070506413756290397936774662080315550559628485922596248014103225246804983069453924679847883108653234029093317122569400215222575620343494878038174055580026467606998501104103361789742078902544389752431907512881168729403689216695248487174330460540624760955394414855414800576960741251953664717696138399712746564139645837822061206656882496235221959813426655272611160409912401422340790022164203018336168927996195033982748425328029794821652957539756014794252010124299381594649307512255600072910378817243149638675592056547413240194990870744217767778457996857004348356170591162543086752571969981913765921261124264188047721710118714472114750780268334731758508396871763769140925815903054109065117687593985740510081959504956645999990254925583036913207098634063009514358004417150006259813692969072794945071401046695950670772535403271578286155179455517243448498770597848205989020518262195992919831900394724855397395993352057227371717439797132012187235096788658723987575259778122599881165037716181253133359526754303387490125751352561859748914934556131283837591257611545912630216687862326242959251205365260282912934415830357652465944218729955518408214365142223900438700133880788703898284546038809585623767136228604081657932953216040244016166674407766944813070442831009536234670871935028920860875233223573882993958359819368956856247248504670207888268965503623731684402102266954594070463875331950212261595699382606801613363129537888811083651504558963040443298790422337915813993647960830098089152880478603209647909242349497132170160636224322324872833828979209541252056183926065156552935306442385251917672980956633771584057230660332545728886744229720630400487206897967233718578525191167899114164045844349834292556795722628972951980965544682561871368219922196434062947899159740704519337104543629191935456195042102496947719214759784160853648334506549913817848312960591408418707649679640294663569629057559519464316972253453366423804352858184104785198242335486474060341472816537728086117169021011125250047235803366354580680566186183254369988488249837099441281628781324858349974316262413183426741509294957442348662959538928718648912861838698904048130690803733241142578275914759452336500720759712979379713101900566182285423803935721265986468889614979313775357952493448615897335070184969080784960989474032971196365489323298478798468119935739941125274302149547179490580945892551081113155382789799306467141822505851122651616467741649231325917485075456006503782904736996200401316493348340495492330879972110071045575044577024980932357828410053768747915300302470142386658334060715488351002552618172878144945935652959078777370586004838016710576469787618419361630372333151829234102116370132890016447669153658376904818366919251211412970689223679377599877191354847503834073195730208639972282241143184965241387278898368406181405705026934905836197057804115359668908302388442629321213303520630285926561284068980316622688135775381859751592300526541401577988594310203877307033878318276741333779936125076927618944762436486585063558648220962439441149839567065072985529142124833216831309261123704876000146494864706535557296664167814299765664722448960682366885710548891078210220843021590685723727342085523876658261755446886562526449634663954787747352163172082982376451577290582599191177151584780350191197449249236579844052548481412682179807737643341687529199890413442072703082301816775609318171818312601955618902142552100958287823775296736537676790725119403084417181570319074457635411118920866254655549649982701872568913568768755694929493960873086110364946594431277203638785495858866799192363136707818530436335336195300029451729906552966617565805648865303732773852383705416129463652963796514816353442341246495317202180646906090907273355965794771560756927231701593795793915615787128150097192648447809952674551468792553159862251998435326543855349194815432509777869788856625897931162883086307539795804108110250801559593686974469939852765317543292389791712059503467037153620811301236619534251533420515515561552324465785960299971284488666574565823231172619429343629295248612372062450140809652252152861480843142438640110127678505408212842860896717507189173531165205403550668521098495960871269322241067968718388837355595037950848011651952434092721981276698921801311173480472232761861318881271847914055517872829060029887825123536024232147873658892572804870206753054456952118032438415211737604071571412973365443900727658165250004491118732577677001778026935771293052530596760083332216193286721559531737667675818790826338395698326602154831652805494448505894554226061529146917058976624159998944074674457896421569642298468783521459451682961223470798811445588292451420829119316013425249792656598457897442106735406597824127839590645224322404518884579379366539966741349685449969660967970075745340518685829809009433781598357054774477678418858110743418330969382780536177862326910622733188173790390894276380616266715769675922065127655423678351299050637160773171584164685002599100937885094506360189190148937310601068580306016142682878258818941555411626606130533194669429511551654680089964139706399089674834278967934776012853653777407668319996937785399665878247147331073062187256951807520965325261254300187633563324010654557964404505953171491397957575252141605353902492984764914328707552836758795473137886431593716827363477945932157862351955864751490608948982295378077973553676839915623549900026991575258173266021537253966769106791380140284871138781223778576094655641283036981975709823927030453056481373253241452475413848461467126739568044463969140262229359040208057804576121830496423307536773386173144330064634722223207505672566697757858557464900848930278417037474503516944825288527068838047483637640054284112002354853264381298645664034412121512633422174474183853597208356021912261019091530615583411648094982175029353088689940468796438157420406782963458982482732819009593176012724782366692922880024941659633428301388346546948733434277836984527005067190501158132233538919604367009408569045420528501822061825571882679644383248002794423828332183399848701480048952293545517758603850617432579199511289182049426195341248808201199239575754814123686876638850004779036907794050249695695351245011053590441417894580003173480622247222832912035118257192014677422142179685162976952424972482153873266929136664918923076744787543349868838504080973097935941825744674882105734526244313188855672286168005712238608579708721831723874776951080045736159267694720435935637191327154480071682959754274556424222749992606296233876629860310387023311186986155948382967947376726324357186539112282733988067493859628864863056592133881820048017540941741045251689330823056390249024752870457082202977493191777122328421708520284586517380808707758611240395304556383512178796227419882658877699813581098671211760949765508334422267648727914183427781371663049424563750936186698576059200969261450164562754119957807492954357062467817549771537940830192587692214768581911142863627888850148053653689238722515745251843049439454876658853503426112707251615390988031434101574558230505271120720762380783923834757446745429648496040337273376838851358771039763367240234621962400004089378293608857944277167301127153106377366311171814700268303878904738166622081342044978931665034045212244358541070870188529335103319492077443063242828329058495724006854131209860417116559254377841681080317005961213782800453515820713535030478721571529667638602139983132165178908489072532185996775265213860093842036556529129829549223235536727644643168907839781547712854484793347194630915573845636732017110474607822958986363166334547615849773679836834496043230387780992857126585080823866418199980833673739738181746787731909603748216018311363990196881375070178756390486676190945715038997522910204227458413852574746419649673488068817972510363247265064784067831889041195089294091713069019244092656715246564494642415964280371392965120552801758400150603248731011837199266531191028096410006347652202118670379206255404112366510763283614629416577368482405463594329483665630975389972011132902472256785283972373832278844390378771338556327209590919554975611454373148663011898174958340372673332114883439417984124760443939891461223020872088548065496990568923686936078479341056638175554509390995971276484763231692948452192964705908723140400256766076802531584186651410302767228727455029837704402159308707844018898498543395312176145332718951861917032817515492179539780973000512219274862856817192935842147018387036448270109280105720640656640692442154119508335069934696983501318798556822742531387627857072315871460916828956662634251468660594354629999969651541092595689620541896673323116198903599176000324877501230944754088452271758554970659958933467166771470174308655674785884655570465296339728350957300668337640202315834685939489750953948162624095966487076613734117957473011727160943310641610957219210309980738633382527543451829366625935299965039303189641909734921532232554501019699034494178156932294828940526019833791183362186204576149881230542573571376345844748994238950112234676647131461746870345136618767570390597407951172101171481721123725114623597354335183472254854895696414367182652109418763659512669291428193029788175573495514311643565191462012686899055518379859604433410934691551382918878277684999981091683850801295149855556515280987892735241402888573591316491199479080378209473988519632080622940050009412195302041504472371495757474974689317033273121621438450299097291030614077093989211223976345969728226461476437479902027979353846733895458354182804251235420657441037719520241209899751021260019677829577193489601655624801151412924560133585809134273110226602391300234132355923408218371634727449591797443806717376418906319682272259641809922707219366818105049294973625296554815625065374234080290585250873060736725825824126124023370737731218764976521702389135064261042625885097876291643103872022610628997939506056796483441629844874751683227220667692018163529399844294424246362623584591108030637442621315528062748317123598334112033192967660237065045754175269548543578366307403071837731483316841510981813926183898156393123319490935074135329916924392023007923098103279210024914040316016260985009495375694107908519700780500193424022249535830619801947506803410538174672771302753888280209007507977449362417786030431181078386789432523768185462674397288021571252431520351677959937062445635849987043811755141693128980778138144486651976928015547150546334375961105849572613462689128767549251288721328705983834764865897224793041754221642550567704958869004851436119977761107342069338499669982000143419634338470677191123331847651578339652579848216793679828118231954010212227783581855743405647027844982544106090814526457306491121847492405911339423894431093894905738134963747848965671651075152541745575567348471298396089124965264440160002612440777620129099553035288162250468311003514318541693913401938082286164433111405841183496195208549261592857556984914640496592150199499749544819100270876003732480330059937342167232126538719929424901139950049962978391922119462451310560494014329529159194403050997148917271245551984889684260765206756971941352202778141975384077965867732860189703299382739904142118486834246709286492701178272663538666875291338773715372579548773692042755521838288648744472463489816562331675581996213841097538360161258361829836158169988122249548161216547151055905067688039544074342790244238517221671135383347549693165560128143588569768297220427017034696404033381408053455802665247544291025723111300090236518499773897829041545268674027497825746077460286379671990412970315411068920302465495014883011401845197051150677937885625264425121512840908451677059955510153155856761897182734788942065061891657003421297785912360795057785588978401300383236015036478703538752512823584452796469465318251826940052428617513991980892165946603260074251185709637309503599032937745460489701618351908100568352741255845683405001710087667128727671851516067610363828266166262699118560844323359314094688212702462983560326710287277805074456267017546973220262897346145975144603079343068531783737003002663039731903618096946913735997308139022277849512470964367166600168885461731061232827400141154915356768424402942640374506928610377835566918072136031320769686712124012799729969142001564998942894161727879981840633602621474324649727695301935153681692319095938395821119814131476696943100482666438473117832029216014010113888549701652689927530439527641155785414849076829644847023679248128811756679680512114108890583456008171884958455754428615552814342963551792239356484892552400488131813874189464782521393427110203721219330648429170805556303902327475849999270472179915754783522769185486413231581662943221957032365425433535760413176216442240024776148820318228394297169579785909699421576579377515880378255033924631866348104668463258304942014167640425708801118255592705985747485010530867628971813535553195633690019112610850447246483332482292394428647155278009445473106449142082569837584301410160491508131051683920177615584840757127508020851207493563438281497745249031691571133905580480939043346900200424098872916649928121699736985138781523700411416260360527313819876011096869854970189970471247105966645254502920743913955921775868996979773849151414486757997802729460894007393811437275846050454309391470968182202314098694470730197030685021399823495953279724267946005744430989695461974166595403340004423708757267346987920613263947742396525493510975459654763936196519417170143341389346660166383994888084748490787486686048101301181692952094356417128218656641744481203642672079091309611026620545750961543637175626317861383703009930378359673422344370482679022774630363185948539536407833851804753378237684376189219731297454215629725370272673531098570711995770907974623027217660238273443224779836951881752196919714506009044348313951814846592798238136047415342054750225553614097193764440042099211766112964680376358751709327209350204223946636043269100907598839227719271729342901073762232519953070180871233295302445843338369532329112529798368644153121195911592137455775225165344416331366167911687310926924945526631943692709468363549465853850733668679828367708944365170993328455070051539396638156102018297361594444939602590638528462587380534665079911762794173328161814839264905133693018522426797415461305421435257848834265140306735703527894306378025505282395493486798052387029843857367133460486299427549200079960948265380130450157835582663750657599902080805510857158614298610027118754176980255220222261273834376084627647020525621809802794650679411834394350568957787959887757022025243083877033701801110063312250102404911584044763937465135657132493143782958559839727829968909735493356910808336005778347814669935833438789790386853645963856995781240138208069132614973563799724476360670027047906115715436440531156054861447386132915078978103758147260918309541447011010351471859505843030073466170455924002983316308873329890638560496437392135924973791999290588849921937925176795943296245447026984277645594046996343879421547697851506619946070110166029947045259041874613014466798567234135737782119153288946921624666830405129238453717175133768567962364373625755234530984213244358667467872648541986521596068023314327493885037641348682633209393702573142470331567787919298137658316739860649976583784214690440598324548475553139573896660384578979696033315531620960944034952838240657704922250906103653072539841293435322766373005876413003611344466173157344537479657073833021792371690589151151138576660511527883677837762989961178846564060140462786033932021067141473470054594559915447132487792507719132908168768289137843948298883708711585533295424922634970643605624773547994701906326352208179901949972251865831752169413365811202019204205847856212222760753914852785373149339913851843492371265908026509963028332376184707491877382106079145808834284090534312836375430314072533874218344204084989551001245545642726834541630408436124118557056739774410239240964234826574148203181656939218186565392534004197766812366732724696337408036893565985148031848428625623354622426724381922781624097596997976637244312112557669651034118234032905252024500295929533485352652594307483299945337590433946313651373869792597703301032064095407815884994723475491151636588931401657644234497175594275056766651099355695942702760099511845213555078227810371830759097980612890556908649795783236071364455051723511189944326494028411253693133022170521700151660858918613119749164231726316054771241972767145524689221780244683638673431370487750786946488200996642327834442239841327596662193663367733811855470699394119494629208017694489389650435772387957532399965554919620683619748878211307461272870863484745628836723869785090466540348620339802895153553087328750959267814334652050383085222843420217258117403319591370523989917047872374747967488135353976095644286951191522906935171244831109593072723927703858015730477198931323000480673431973059898813309078906664125568046080316602000930370849424036173310553718667746134572612141855702759912479582719063620127292394224693437448641309747843648393087172389408068488216973993312977201281211218004707020577581072386398204460199281823585167499718662331071854110495043675066308885442810224977741994922167268037149896463667485118583894617923892756498413940541517856642966653550784992284603442259764377583896336082764014106001354675635799419142868988041749796774233978704786285002932990967858826102701434853645044685482078232492891973627119326944688582490042965958707536557128302067410649889544256839870661445764834581366739748248187556158520463502265184171692447932891199676130275443077615247248156915797858983506739817963171874549837778810427405518107681433647410784959812362770274421850413178003120204366519123277178145025985544499514700022211610355372432786400667230651136330113292123780700877674575873825633891010824045310431831632967637344986484624431934256644162135993385646406454068065652647194202436143461981100958154882047769782116274451353838532022977052414755568567846190843443944490286894178754176028500456349651802275728782895785909859282882957255983264445205165788552117163167841851284142768681247629490308398177871029322757099445982803757543270136933858600434006116840965149802952850284685694102394827618109036196140584930710042129850705304888720514550286322781346344500201466873867518471105665985163532560576595598711215938673602767466725830654196742682728207523376065840900732132175138556915867886838970996539060549336194514923509015204877206082276882238826937486673782551724749107885366725684852590398238719540368794101464492193150388659423017902635033908302072519785014470828416862817442754028200579961572639948964632414303810796451894385588857044222689042891292775167816861225126727181506473321732409520948514167340044541500501801252621055518889220944654347375955946766187026818422485423138321613752040871378790799402126840453267981870585153522301869231315884270474569624049215851268462327025254824169625951490691250790461493534667119819445678704822217472654980935913200913793899881732191754955848647574380305632909739389239678501467735696198434773365646786462565069351982136269690657158654274212461907918045327981321322226673496267149467140635909410547517764275899519567379035935157038755300985739790645080362987085126912167288828813585842033985993744295850402548815469150525269034298499321781515340248970874645862604281929565725744246823112050450368001439309684349908632638007957866413701920843519710591849710567976842240566672654672693634047601246945080528782141368985234688384915098009846053498161263588658299661613236811589643191783615552108967827428354438276381365840030416285451512373499576737665711453122271767120518222937300532213578449286742923517581334894605827174976421969020884115513516918136949959904187432574643704321961234201949785902940373791512815568620116592104315490169662913093771308361128907229770912274626504046817469302250931456084262165532627942927548862152142075799573229715778969917764307605067626582399520457840567018728351806512458894860035313297660169789932149203152398959796601800579064402288807661900571018046716800522933839986923622058715269567922220621963901095461341301610479422820274714991905909293898169609888878698358079665758362292819865805834166217519446270347071892400330360781785918087045084981964818953475901362133631011607148930704025292515246001836415277358010714351029021328733662830398075104431135453344991418993734384634104636260928441704117856412737361938177210295774830361748739971971742155865405772706474526622830282995828298231586613645448075260488222835663564726386121002828666286892387119085135717899831626536895003013805585786743970984408763603743776482583682966177434878122163263471107674174157064077837550070455165090253310860667940284057373161388667256887397254190692522887354082416916723179305031541121956640987740773506097213217413100335442543687240682323612734413314101349820702331887818710062768085379609029392026929317260577525344723595360207426272751708494179906068899730338075201384919455423403627273677032807919440395708295084188801056226991509199722809830644409994780078766496395312231292800948257737624568777457831166722083155026896107010393860256617034254502762438303836816934462307634282924920379004411522337023348211806646348853791114308158358937176009087011518750785528668596173807828363100195385492587050301207823587458358587893444923312591855309424191650488331079473627102792027536599676794306263253018836218069783974854456966108140734657209613592451332453670230644719036549526232080093253154852636898545691149562053911940793859385794017027404820741237888161006008033038258223318721783571362194072613450628301437473065173436625551318357128750238178984787144834196918336934211467647341062695377967588879470524813020996876578959639723692276071513046174265331379833863297944472535291045060769209113142760426205300236591173432971889363086950726911499506139483371739838061855227376410839384417614572638588707922365944408052808049427919223093700985054959622421432612285107181751850053953233855253835801333086402636204123121677940757942061745114738537593947086745235402670749621172439769666817512865631526291064259183254853888600703425172016195856107159225073468595508663234925345710260221151663880621100404945683132534605717980093477329609530367310754063900769132337881877083084727811893558758651045689802721797513606440546610053683207687014204199616202924651796954469049125260419410978083409487445427223658087413763314910023542007860235018058464726214921898224114321780522292116131800961457368405911009528251578517818981629343623509121068566051336672581083013712488256299688667379690921883762090126381381010116001539449201132502892291013080959148481561903163968753560575295328142391604703710519781094626662513177565780060572833572895011988070046293202158236183293465553260326887867519008307087915943563695391682376921653579917475964955744693664613922671862507842037167005678589127538214666167016299679643209136501522655887179621905449494805964150128952365264600942092677829023551388055413496926908575251435174072103745033380467272390492486690238997269716558966042251938379604864270446485661238529331781323027587694325581188649787299585891073430960433396600626537776911323240940716971701513708009563639100128559882069909861909730582038439946163288640682588718262339695279393981722230817484551057195728405928290638194175498995667342612434421519180606478568496370245249724004061610866126621264021178458448687643559878336409965821852334207568809255956888669948981951203184734487516236140646894539922703437600063863389657058971572247654954988598190511751976920587233174900390543726851701153057589552304710113493338996238470367600529007331874361426941245597749521300917544627940010185268075639789203967949862034717394505898231813554467653534149397922668333928189177225073510288860084734660486562228924118733517707027431360960437177868590347276534452692725637752446206745296081624190304837161233337700843245137569043740987618495672526510891004139722587519407801972167304864595301189626773751378451178120405180086115536486965739527443082237447788978578810658405325368553017701496457885283372900875961173320013538791299209977700545783279147060298836298398632086683950043798250644621995141623955635819134471770192345122817835201444399607775469847655187621356095632359389866321148178998408554166353741703310700526511415897850278091652791514723112263846477632669132968519879461586708579480884651140698517221431197832515929820850455797489592484239569836976384373088416730838878781877248669959218184956979139752159993583210095529175474978513491472469966943668631003578567866717590872835137643841360237224214178023987497505355690738486690076853966774022241976973824112162529944913545788698292791128110579809351676822277217088782238023816828118631166924575025760766847434246977912419334902745207601773455449788124092110217783388890313424325162411434863074491982133736873802808970152794189635998714166563359088257720160571819748872640439645845923149096419439902809355520279098191882782509193687500641553098588231404684226107305336464721257237396320563849259607907858297509437395229329122888186663992183057913631381700594103978255668065400774554160739884055871525543480004183867133912773649505387144199299176462944640583340168163797379730157335229060042102876084553124804875212489325683546798469532847489441944929025234993307875640068867794283996271975505415945961207638510451821100726374359981094171149697612690576521457525227966331734934834704365080133981947500087955522197342778819498318631320611328152146336399502098093208803375924617501831659411849815064930760534739105039346770991809702616390318677466510058209918995741014835475113414871925131323951992738318427916648865394672906146647841642515275152119152768114889512801054445517060024461072155556701794665978322864715227416354341585495496070882571726907339686164076889567942746574020978193035682189703968905976844756493029574993574293859728183429932695976024442191889216301559979570964681926008242453353623813782312187747401978104983022117579241776751844164494112174924745026647503417995207812886785388117782244044108525146587355404102935075040761744606745479209057632417424513223148934682818377538925825606181760717496904731359672019366197352626878778704372930347299114178420623396427600242899359904094778696967257869222800362236805369211091214669979726557209712254060562560551961497560122082809047102207108007426914397877742240443271481131749582684168711661369472739962375923925674750643751606740582972247104304874367061805880802650265861890913298138496922744264717971363388332407305591080199156864806292836805531330605217881309491693757523179233625977567054221267355398958780296080576936068728944050770679157133137384880238006661785793534257371662490423980742210589354994170979272932558026243335982850063026256638113805107192861133045678577692190455228105123044376296787447716471700598622441290270915254066435468699718127101193104927836495244957982151391470987388907319930686168977091178934853728740321876374450207924924960447148834374178565514105735375419184188763617987344696604233979539512128473935552017400668974913159120711608991140509955819049601386354750453571961237640693943549316070293113890341822705281350822476320850586387257466897919454876030766806466414974073740721512301528285596692255015882111677648537715726061355544932859626128735900473248364958941362474872891769457727183727072408260959004251858349634633068946806743629001944503302710348261343918065472324506428992394600530655996205485179272013076444044927378956252360140074856829397990297857879764280263455421221341879328731843376187203233840712563001320301815129940429129930472298627257700367203623479312521142311012756125532507715194195539399910264680263449836905191632029861128182661555338896556213637494967818435636381107657436086847910926152020662350979344894449905292494482922689107567085614677093454382545170409858389648555371337219406411596444349706962069066219889979764385017833680015046096015526442767615576324557000048250610432733498374579248628563493932198309934771887476999966393291122008520514062495673041445321130626509905207359235583343859210621054902980911872622506825488367690177864079879301565891189665379830222217732693447015220431205579013426383677540379104023878468179168040386788158632222267971108474942411768496706073991056006978755362216653607969601640899239096310503352387740053231330759310326840404115311376724499804561525756259237338758348872930853786778127559177107425073769644082962637873812711185477582663818555073536091228275946032330490665705211300236852841090314306066804399180565916738005809765722704108070312155099774217672030602532536562191124799205246098573078589460527820677096447007724813436491650180778047550826042677480504996899259451998058657566109509191244010128351594193053357424132259144213836247483184109520055896946528108059025194223813753826141490632338515042639726143375183558112661894745169809493076370156752980889880649589797800368289649555642016912082492682584818994589675646515374792452269188753524583253660376229971357417051169317440890276998365574149478041925699258915365118096579738196702258178317973223831737429498468532925711360673874658050149112657510803622916472311224932261595701302393417949988470646121048479168745582586886760925288234112949568625262305891349651934317380075870306412265033499539600039124200227377767627555666740173909593323013943109879189928911256404827188354774548518731129937359462701044991292669966879183231479261820391079023841742700243454414650979930518562939455430003830985939078802900546951305967764297777702439478437867734603048324688330992244507991758776742916703546388941932056839210371265203707166812475801713670996189577902377591038554071118984507371776939213497319269701382632089543585716824228179208396567467592258529818578058733207757009336250793426975579381160820226184943931951469029726241524392866897788712258609262274808312521233769637261255225397244657846803170997888479751571093800365331648590743833904785130967416881476920661208900497936793748836329591014874446361194171938855957799802043911815825559232392143255016743662454243307508221302212284460328296660536845064708594964361143156578900375001910364269336651990954216300397795008686211674119253556053516473478013761837004914456500092054189906320057616954344205849671567774867425237548373316704909079993066566936608304903316864601313058235318587630233624750559807542100383778924850004813698450678158942544318911621993025351571027129248429314561644631115017671063347693276984204769368351343101479713466022727855790159954745125333633801090566718659213575811408773557599804282672790254724373091301869437671439873635452995436390624656297864025687158931828849276769913485815790255085473661445961190356429575576234081330589571985317699282522469369954957545420194268325687160768467189186734194132948641478568415735842602406415682742525295594866760753084672301773570773241551509089879417956038009335120850751930031715545688823541098170523198104163146612802046449944640707170761556370862919799247632996598214106223497478534869594482206669963026741508029396317423305316772509152125185405960676290810197760578629360985473186905998563667055791283278037641625398413416670853027686472244587775491219503315417360447626478681195530435461377417235973199810623848443486703885409303823527507285513852697956293615920495707602185898892228087595929725932875715817204106751644791910328047640003589913464132958127393675719278012198388967590572789863120436040255214393823310819634551460402065228354299576089826253668911290245983300399620416880808305751095957193717706409963030662012090593050068299764152063362407469802827771434755397027215525093439264848639595931372083786804439292495323187609381738945565260626420990370321726162928816405445431692904427319312998265432910153843022485556259387157372041637499882669880296170803520231746130596181481883837664433053408084936310297034043009392413166298158704730456158893228003490271737922054262293452594704500404335561732207672983526387580111209782734678247419082769627227033059808307861435234082473997342504157516932884737355480449454987069194070465264131220223105766070932230373493935140487970165513303279012820959830754353147909681933471803297374027179214376879392353511384822042586360000678794348815906300034382428280125142697203363956194864950563026285084226841379651145225118613476299417696334478243843724179450564089238982431943768940620524771017220414108148060429195693995061395576201158307834692545099502257809462319038550961716635720418482387839420411687725996310104728306782656868287940054159788390229463690040375559801002474016357474817693850493627633812453636853647102007259661558777860463043812346376197467086298993799807992554033230623958233720271833626227733520229648039900976589005856660547936808069873520713143420056464665718691245291185865575397192102802635373571811508949712605181786938718773084054956202691521064162895681520223475047120015278048185323201495622712875704944219358491695582065416156197123397416555731534101211402735167251561308035409128303059210793571826106903190078181672722342701003814749691507833017180540294085100450002653542258148081454479782934408665868119809300964793826752880266130529142443057021502102255935089882939130597503199609803357013349036018842654571160333983849146837157876843255632654064316984062533760559087449058651312402021062069880909484503707292236174371712693250484093784085521899074225058462762627564761326143791346850357209808653523912997078235482451800304959552535717090474501244833833587147710202382744589676452211772374106977335234688480192308143291214217758774245518774270720463887362697502681253882961366016610978673436955475538644823038065742891444980083642004875851694068239709635323500861795759800584717109528791168630438697258991494809108365533454699948930898700781757468623530132371931743834531699766054458544877573556941755871949940762103363205119400376587813851111109134238628433304579254487856580992611333418089611161636540662505296758641948208579276145277161474017522001523017508882437429861255800849113267522952956278973330588524005128591069562946589487370197027832427959776447254846641049559827828107878465275380534403133775270943724096307965455593314959117308689685607212206867541893014176886405394186890841673412496907948374854778647730897706657363841368428862092642325463728015341060256427851810023815333235047785714340929497582739153926058936609943296013948552726782329672045254570466502322586592138060845990735468165886904177078374464755975201364768520551419788311885307681067371237514028311505203635254790364422984043445990782627202275437990830305175600196161940862427611690026997195113083719359286393238430324444415420681920580007399893895107931208437346325038893642088414939994150983361342803435718505967243891134898218581929119054321031008836153950127334466766012926809307422558311451091553425311876699353950511485798230439581683872427683090657979293298157798979031745699520583263963096885265597093183653534565080320083823349839492830902114302507403184063343567703679378570068602925688587938232523077993359701455223600252234115412649902571103727853734116845247027220163462379067783729038525923996398191992336011952848780081372436552997474135583129895264689497140921257239268305715682052168150097600843955100300221328027833374826727449678399050532102282256467198893321768577936254889581098217714851162860127721806722880929062143868716770614729116939231154309762002202716052446767971247415663628830933876514369674241667298218214021428134526257398026591805781353235074909025268351474985019993759550263691494399194691724088831425354415532903865561915242886235185519126630828851369285668616077282713474999116001127995716822083272522027828233322375410851567707079395079182966567403250283808846040167643221527911362001064505359131621447916206739550064889125642157936238734178770823647043646063355384384215129971120368562281610407250620299476969322734955122457258228424200192666159575343479336701293537152961664424097811922082431849606211448958931699560058158242191755235816536765983606372492576191363597697957277929581376290396974138363252792095174010376526942857738729520201187894728120298918889339147901126849078095953325067418184779928673049061897830296180663306371599795643396691237381814137455574570942362014234095748502992121877523773432209188478064774826254931132198620892058481584988476881606632752217112402233524830346073420278513693229344085593866400430019408495656821579770877358262220463049887652716131302193240660920144630900060456764218427599703874794133035169688717313713895406042910256659856634491482535445230798347273427401325148198443350415281227597849560573836583327135024479333048793212149041546033698295149106681475029788135100834174434266058490789213557635681883108304393231843628547199724548379473230957737960923164346124012645184758067522025227639393649156409021770122688407856137992597632973133317453232527441451363838825507928327650674931724179917505706908727018124073660997734461355326321971721134478573079384527595391092283109857610479948778525164908661360203079831380182313439546290419594355861947353049723028383932146421764459930562920459174898476956349503755394675490851199299342201658818743615253370203626790484657115086772421804631348379352181229339070549801706183354373277675073398629228051694674491421626577680309116341689060013460036007468317117246502249472045159063880634427129403437921215301795419532031293791214329847471603897681137618000728583635726651933224292884713220882701935296437107458668957332754308294187348603302976560087297789870104240893191655189583242579340030124301637281179581728520049031476397497656518631317672942457471871507602886083054897184183661187802492480065973786322355279398425566853141995074266448513135987012186745938465860961619415371256727328335392906265181281074393726218750495055328582464115195460274126457527691414014874493409366730151359939395116020687228090637610012175552831287681013055498386708848279197220276764901554345792112804724367045256499687303568641232311388645128551298930896929521531330525921118592217123267100462543540480691492607241722481937216654330759696804116761434631711501666504047678507108946942110009721132819420648912970473038631301521992192535348849344185332465415298134255519672964695906867071513233285460831877209215913517241975316908424912146231632515372818220913279995652785587937795643547600312976065432389801076704702438423403115747057685565651691442512770244765556597917554282622197900323963931450703833083191537878969650008079186017512152057219148264022096083374842385593121511020972565804596957910107785098241284989218013569409446759996457663599518600475770118271003550382655688652578946946798515062795290230916441509863402294117109926675298716961114091073560117164367034096202647890274573263921525207755605631452050050497162011760356591128747319098225027108356737581338774379466253195118773476385459401799387494604718966009963120472287137655107486694907336432743344035094850009289683695200281354861185835685988390682698840441489462585691879212894034460168195716364963157754798479862777852668012351916301250574362028390403242919619049230849229244292625632953904360279917216104247725126108817603121784465355169896988810072750041998598829178471234462722855507397433142162257693195124786066882550224751118302941976341683459071753587763817525782773723329608642641024936285541808291014654209076280030124096879097450202075489981628808090639601447354431737106952908319142925457476335150557154532583175082537391222560026810483734591617635685813905943543277528836011630216245886563717282032446939846618297908615215907491892224882505090406678888428284735521832125184434997415926073860342880385338624898539717422907356818860936941661359401968558110743697447558550519059407892302055592962402234252931927251153493989435681790319603766657039804908526579486233624854586543450379970537447918615477644547597395690632079019869480363880137755932261294808976048077841704972836224200441637863939884068877655500564858326081022358159549178123749900356849470561107540851073973876704590533908828948863089847154200128102214924089217863782285997234003630620821233689710969979762050409180956474015692863790670755016742285411848139474781205796193595777373902700359054520475458782481234309039225887319082156459054860052026702908030172920365293748864773795035382116226310843762574587164391535456330371163939132998800733825851542737555603745527826523901388701733585672469390415708048537204328128900010113796743676406435029794371777790932089339786480015546080122668091092318906072867865357219584213955965275326851225385071877550206153220975122611908404154253538179271294961785859883216484675175180807726802694927452404378567582564757157152820408477421345437830569215587200441595465973700390569019260413668628962068835832022844936539025634883174128740851783720042608222357890913837599471550724222399795955175380776956381616439291098159463951203941155562071260745530112217311296756704245194879656656631369108374745791910899771954399116252969756182668778253101115565350248744005589128922776998663932997306842537629316512477531286605751454857041513629120480311247861164324022818494500881794501644135414524902925896345525598573977913956841813411718349544279643644548323734024063676954914962763173862084186789361613696568365943788229274199933836851662032086877501877540638455598511792767912956243628052918745003413494676899584770111161948580563303413253509470228230766972130879097877224708426390176241001388393843158827683326065903179507084911844445684768853108768835106760081494320355834264629379228795008752804709444887818312017047719980776599730275204119744861256521654523199466991589174051186060470829296447082452398728215845024557238441151738671018805315130067693203769685983062189930104336061338044597762326675088614645627203374124720201959899487799908110274178916173556907462166673998715977461973113279276348307671974841183504014061228797986946518372975202578501265715617184009114261137104985350806737993073655855925739119186552537480109374656588131009381209028992177852741583046279558876546612342786457617718986051892166170480177320525059762262048771108289030774126922777120782267585246319153098177484098675187571427139456746785475980751969853272947255580671901274658686496343059784013905159600248229698440438671789012468851952460815748863764199718885106937144240011008669798572498106352593687101278636170393401934749461604309639529708956712781347128866389900358325625745443125561059492971631620099200308672486248842011966379892687235521843875925438282600157059567042098414228047629449493495201882266654297539844285934240373787827136586686183438976642204940686694891239482254423848081943764872131562304211603384000635953756855410814366080143736250891664305715364328457885849657807239151899639607582413718280137267993804538357515897610567398517181132160067120421779630938676763868843989506883208291169460704399122589024663025744681040370690160307924776593281577447647349198036801775938716781654504499511989103198343559004278167048743922629156826810179411068057623760732094981057743758588442247525536232088165789188517518355088956267343823251139987675951346329870361844214817619908392292536758907397053545616536119435846477603449356699766256562217526989111264106057142280459373706037586158671165588554768847973485020403924636201574008069102157238495238136632496765036404998761833739952316107182725605192709572805416297253603818066375331723148347095919354895563521439064040095315291452701106527477030748163940877566859743545041075929389288577527355385818009392234680648147471715454144715111700800488260352080681264906403585615530585425542538044990717121961356533508821481774223977092443388649006356787663675705044429237740904198717357660028256731229392361640228343957675245794464537670848057359637259567156890541793322624753679525159840112065065223998429573249878890807912929999195683237682087395764139443607417519429414134893501093013016040316587435950235762908289735033442535020217600768049826670440869878229239711975927982548357905766715337711467754635695827717038563950021851976682277006922468000130458803613841564266437643209670421003333176204404641354830132450940015927771564711732008436274769668958255400602573052104714653626410559855020015070505157066946862036628440942958871837933248382420096182441284011577081497296019285685844971354723922682157747943470941197800027553853500487930587836947416868565451113153737766663797094138942755742677638448742960565444910951221752115049045971102901974468051793881542729800978924838108162273113198243696628021721601768536588891425235302597114454941778887427168037074815356205816929987644983396863065184658172074012707284081482517888741016288837164229041533007926340783008911960484489574215887459332717912098599310932045867539152098375084400948227039907460383270752398067659943173837524070423573337292384616729282355760614352957391435966907581924579897096502299980576474380113698562038975705385839297598243489883936568074744192895780871967689703795811171798185325720744067283326197709605396209504786124017511269414030675427744160927753231159038555312232054138965310960864890303800555701869975864644196689070922157730300124427343469943884077441071691805128255580175530994339770211841865382045178188581542672865183772081803742535300171679613218397385698971138243281810953120085440575968369662642217688888662082843663891516260219275876695822377932267891167260029672103619693309988715503671173113167282541922227661019669673343529117107635349634975615268324531522052950363866500198036496187847833842740927247741060418783128281094886977587878328056315389686319097224379845783342406223342012775038491531685862358143102517082878866006964793506603222109493675738500262300213280266619441431253329332608606303959562170567002467754649837217329201691210592159088570546523728035233610027236218846985057297651786793052372148370837983839584990080133322924848936422012689401434254027034441937697397667805539862644446302132969137726469153735532703220519240081788992331922388086684775526706578904842247879133910000309983820175820125420233693670097248854978547859939683961992336067758905768157729759827454235122625311191032695962085217479830944631775291049642252418765175983923812342490909632777472828520926806090963110799508431969671566497788313860941257415560362845610970155104997712658142197217556958072690701139177496282569773235702222582138562217258397956563457822531324759390347059729290910357586546540985790906181798227513883981962157608507798155789658359315032697307672857878185151903283189926188774535228723430547181997736918779006442497995313275920018751274989219773445768576884277973463864998523894409027152331135612713380659161812498130443169736361079012424056618559505319435489250728578064361656385343395348075975506939838299569810057021068870433710565018201219492810163996858304033582971567815556983191364235431799888762709835511281205828810545845022724963786720472050717480028436095025189417729364225484300239578778683562564165776180741392815906943324864218136624350142167954371461889921866035222164518312209080166070809696654239467188066683803424811874761460454960547945846242600459244560553822275318517459780155225531149289415112731859659125290895605816343145335740627183537712457801682569542639056053367241406033356312627889039236635095738637386728863058513050875342737809741197466347123932053899320313594484533618816943641597091401990740470851750805968087358257035958960694831053352863813457212771930877851628705690695130948034462342002615115646471907470463813006555454576743330616096394685970126594808210311069102799382262780120662003879393417575224093311719644182496240429844443553228503312112133930202235430895172762753585499965508004133452170119022830441327932628801106027947512262288759467544893121706926102584116811495702247984219578081351576960165105989647990919995726436773363920264621924361785169943925211424675103327777523072840949094681336726515868233228403874393256143514958715881821954726074257532898939744352971444070286094781715618821846135541430311356921078253818085070860641841839353361610329177792467965672613730385722467501183148563519252261840601253121845373165200868420725602127505710401432993913449100538308177326617371651280664394014769006293511639997520350661934490404222013698318899421270940504505331742349681715896782662529801032830197009197292256254030010610831853319919755552292670655967357649234243556113365657796234189452834747483773020526852029932364193827170597974021776449499839946968653233120214584728493086955294745849299395034198493906687204765755485369379306416822936180386588489170733954820804281014450433149624473332137403969769062765944826798103536350672762119805270485918786802848610868240381665666451790785824062992111020999672926547369865206292642504488877185453502031696664750297509246807669263787316128284411249404652188411667836772646441977162777881659596117242076325974615184452365348291185411166531160936818789715217811172711588203184927988706702624429085381324856704439671315273882217106396701252780239352115488563768769091579135007072729779564454393856407276359345935210939292685620112003243573611307867489525504034020160133084022617936554780688251644231811627768001306646737589931823120522933416458873726026571008670479866815439138174706686374666779642598090327926077667818884366390041315930202552752402197151687862572239367310957132749983660233365974161459136523179900769880303750194243167249309035434710284370846799212875786294820242828489492921355351208094480012931744890013811528692769241042957173089563594074819748440738473023208210656557664392993326304506917102523335657140764284099684321278826643962091252478429444199520622407933162868558431556167533014011943757073408029075568875492150596091483097579689192076846485649260404362817968823715755327280659947416951211528011546210939498903850020732603955495838420598311984703693990765562706820946553355138137752074754620232343069528976627907236555954211235105074008347037326363727142059311657347040568405389861072135312897796134330299923199295047548618948987175163918057320646064864725280849112296169339362987835180340874787959239071984668462138822430340640773838596411675476055766830542482299641265574211485966241466849746019262325438511564374950750006964637498330226777661549284671153595525305680989510295123876940384989629809363156990461795375061707549183080286195616551714193464066100131997591675803075754934122766731955701312804634972031884883399884412649073272453220048230505205218830581743075885274577894159683603634074891279582732796384697103605747302573489538012730040821582778957240558479613210711626476220387254054920192847477061853288764678242341453437921542440521400352990023752574047338094041419158079815361647226089420087983108043146951609067285696876322438166408982514158430356349947061613709473694152978732707777250517786767514084968502383486696935808093861026606069724605907757645238440750406080653472803757100302461387864560684744141566804321651408072067620221396516160075957984071153291799926102790432665914715975989789734848034927471364666083591320781903224204755808464301962583707221158987470961049039318989019916638590514050231629736893666676053468981527793256562551929267129079788293337873878096505233408846007232872318247587787981256321367596698863615046572436230100623059408319332361801140884000089855444320270968956920804993329495098544705281091646810793577587957293702600168427982465323377603669048322318887508761414427077283825469475685768454180979666413323012060656458104385798159195296113609345734536699166085474826634546018675355365643682292275561002402268770781700368032624629014105763983283478644385294365884455645817712229361847422512352372225750381320100553409052248523477220446700818057926161541867773270995424496667138848065250113672367995805757067379348166878208759476357640465841316971389993058531234144345295050123976503001174262356626974718752623801499480009728713813423054319048039613395826488821484588140237732384090889772056516118866306861622398883023135566365371726344896473955909797450092030690057648036854207250845105288640660871053034849092722502907802696653076026796261410251815428246936047868918546308966498377880868055760203609176703841728978115821090767794687461014827931979383663836566792489585415702161354519722609625155758048083225318963426147254076130312686929375058545288719956431250053304727800843270887639560754172114316736610722605274069852166176930068477995764029286608061310131488633853536969225814012147380259883703630646064913626137036284065701350945573683691482604214034187767332204762854521873875718742934824283796966280147466120304760009083256816907361167293724184711459430226878567062684591866510385416216245196189064408326647766732335754893892240714014841732554438600148150641616057119096975492825189256718925811319588872136257338420995356768024988322928833157832803205784993855827410315073978948764216278408806955022785880567645458696173124684287079940627108580782871896564228971276076386805693152305999825784012452746574445760637620534697095165278502901628763201201337293570823125239215630848336225263562447959679010964715414687605587325377282406803888465930979942649935405932453978266087431405570590969289057106067506737247644679208141610812878116650328203298087510959816990740901483461747832200252292330704386742405599162452279781342149497950055474743800956636144889526433651374949445411234752053993145615703985402925225432727553804740763050646709042516867426216103874735896483627791728017963370198055533011725913351434703157894806463446235784502092960691561987651726743918166805480231883558619879204388208706722893220001019926872707365930852517134538002798276095381985866566570913377575358717491272724018515097992859248682154448515074500047166696861105911245982102656749084973878834960537442210347043707071870661112823858078012116513739235840152111207095379094028396386638306863443889356931983509502513215389736082872695010468909584853855571447658795555833080361989962493190751931211015505546587620695546120698018325471307384731379595419818156917075238651503389044375518313943958407801375337186729542087609880314296003796826295197006045947518456176349388112453162927857515025389102013453121202021109259582024747085113091469476978849156395501062926723136173609630790266960583332944833322770381170740890447616960793686616306606228157504420016416350820804757001444391816173249420463207460604945544984359734699275307755432137936869766325423288018453904132754012881965246215303073725592487873208008706469362403009748261466495105117167979530336115899580358705438092922802686561696647157335426922815484361882901518894927774574742381555070534556837695688674841232620306851962242134509937064997492251480291690660316263670754194498884194290389815065012177806733494662826779742905243243648499875616530915929943056026235326535451171964330329753536431267832746864064709006959531321706238883789976161653301274828340461002751674117213544740135631432287863947533798661442110209583642594564068186626111060744387522961143230245978337561244689836480838888133234644282138964224679096655982360758127180793567254392697276193211328830251485414423017608944860752928374453522545512673108214812065715736183198258624516150549896677989987935923582193442796993108355991103982516920631942466221953997953323125110241737485405591490621866542951822369577934156773305521003406989981950070970292046318691458797208687716541754719760044580702211678895534942139732151413220362045108459121694120364988336627120338872410846735100575300832235101135335728817293612566798235288014759644728999527633270946163958931330776289225924996598053460314633188874152505963571246157956134649335573075249635451419527988951587055959614880417490632396231919272850119433527765618765981343211183813665304296169891069983068931392630019658160193881658953208473796586372264861153549671126525783973031213595635449620219837397772251338969660774629551430260692517321929533247056219787415616708534971006291605989809767551281625153998445296555687991262251246372296680116619831200653280938095153266608790295159077061354126257491658649965735826043498851533467890217167384177144615425850803719380161726429091962750272964258810428833572212673033994726971724623778385042343682869219100739758425445503215623574769404373765281732570279942855250445041577198400650313429311064531822892017894140881043740446985732946800592349606055193693940684907116214287028249030902771066927601030420228901707570196527613506419549020481724622156404686805066740718205335445395816972078855153937714199767158113049959563975742887347459969358285216257476453170550786737373336308591645131043271338349249484460305394673906887385830087890587683948079363273304905892622642562921429702104115618332156501405060465185861363847512409911590809124538153176128804162545282052215560157623732256533032751679452911162613580719490620059174549816598878747312809506101896135203760126025967900600321095504215943439194018682163189393868543752186870251418811268469891729818759084570624021435108171864450505169308803252132068080130093672102339947236044453830528370304205966152024202096333627589084963131734923215780200499182758405959444758611727193319119660997325687442579617893852287722371288648013262237220779023799339829155051543047837416400212751805668205905001990163702996663474108674083834350230247958484505342514406746596681957698045384930189308249594945912442717951849773226670132885180928704103968249572818074169763815636786559642039950052499578944039909026216776921977455553989074190664299397750827200734885938951301905889019655284134110454615971463009635547361551350661991789042685160130887754098102710115361183004249718848626199339691715845558771233408031540623894720766729903525126300657916205465997399597500741091540343425149443508447361827652039633173594769137816837549801159372613872087003835163109821327652596791704772283370355357710138146957264664044535475281779053627776015742477443581926499413245884935417459167416582171762717013681161352925162886226760593322558150094782603263792830119125113416548782006859152845071474479800400047453423885271523517336514111956207593553461926761441201140559881694374979677549947623967150711646371969424629250302788600549284742700227539235345459625366511503338726518718059310393472378732112208812792860296600070208320250141694081414543174867947706399741699273244405720169192627941814750470875060418197959428803846227694910264903677137363234663694836428709464115945481931676608639052975094237076286818033892765994162234350602984192783950838803115583595923930119333959142285079772158129061401240854634803688336589089227972637551359201782405163426129306738104675312963750304107172284674504354392980265222979550386762457187073983420061683911957449678220839493035547423692522346193402650115298441557357970617663038110089380241784712931455792859370494902028413750831815540389297146701233551814249989181841849305496239874701887017736301484620370961615174266830757546932465276380793141211358731445716215939403847501037518461346308821707931096559488735111020888765313414497940128072678841041880401617126196037804401303386079268393211130588886158634645288620388617011478001024821534828157343893061530055363025582218090548932361653302851481774209684576737432830674235974838794167063479832070891909836956634855170081548984026798358980093651334037504225018842597247296587860303826356600507491744544205620327488255769247967263408111532440983776299652468760637417295989716948301823199739090676443242340322105727859284275618642074202124011902859687461093633284636861202604713431923984496977252492901204521086061335330512777391648733454476018769738833343341775248881929321361281811322959425024955315624090574434958856524315473284646287161496220129643738219841619850501971880327716712035608649904757297479184563896322300127552719364555705644504926545245164395299875441896210860250581468591214664953338554812527501989440350296431750913282297631554948954003904469614595880502456795722073522815416395020602738993583762596767572082989182720124299777387792954815095903068156746061206963119575294631332047195179480277674080839616016669345845948325852911331518007315046602861940744218800028943625401989009472393747285867802567793247787324748461617617314789161207303569773662378386551535552371290232050470687165761379519315159094090471963680495209282903986604263472668224329502917761593785328452552372263882817797775646267233144525081423991867097165871908160571832867144925855759709617468446671618048388247021138556710608578745089252829438523196445872551472827801954743394119785894360351328545429549247942910830237778726348698700449397608970866261614988383214136847357239186820704052211482181751417942113979111129779815194377365635222669243165207376006638965265557396975820429376844160484133056732594525748186465811432792305163871214486890155897184489902756350528730496160152444637454593463462255654903184391139849079094616132107307793161549528072736548146124945308758596764419340793190660602880904233467905717340344218645731600595892647526769517166015543080856896973413812184242928246278339947869807485094815302317791817789131457275152016508447636050320099623595831850072493523488956929095439112792440170276378525429308357504060813430097713982492855538480554754945628272946835617958506041983210760414870824145400388258096169725114918565842296199325243471333128556027379150643425024332438372480251716559132598261646345065841890308751902582681768337755727292806209532107766528505861920744283849972727486201932895007771260682694793554009891057127210203280028592094762503837975807504179845419279359289172494798972335359099399259232263750241757259238572339099265767878621928746559899321193972217442156868975277929483675720784244900432462747547247371721153777489683473153645784839227816354632987154591739897428902340896555213094414008136216514787382009450807446370462010103796546528229867965743211224794118769568179155509210687994297300228990073616655054402653725498990360116106943101839535405461502187511400266996248631394656069307582289267379109166450404673994245243893665108610596387400880282868900930371269960309714889005955503986915539892052320469708859309706708047080270976180877008569825811650723880875008562978879614638293313657952475415321987600549029766588637378272814030034329924181380830305304436529582570278522670142251044190869935099809390162916833419158593639597799386177480361869183646131833770557119872165379256628174619817587644953451029711112863707368258395808502387624901767387512378098226281209518952207118795738022505906030390779607694451229923753288816836783779059300148691956891302515523973390420009709747033740049756594121700895356769353068285812422157373636294566174376169155989071280447784046911485636307270510100596767998842479568141316044642708344198143209173236491441687541467463612645654162372412045752701929497101692608072176211508255223929917195419465300977459209120422807895392557403794209058324840385623791543317990814505844812691215201763571565710026768382463636285039770083590545237638365015529440578536125472960142149425641232276056920710917787307830447265155442047781773495741581153660206801830231960124371686923372589800645382631298513471876313657790420099478007707354275537041664969256780403831990939419258091734052303589841993263049454644928780473028151428077679295702981581152538479018336444198233343847962058472527135459095206106211910345995988345535195542263943000765962194197768526960050893498763971386872110886724830819773916533591416367375918921959950902257637840796431178859247441192447759082103470255259724601250119684882655023993130867109545167857561887787196952500908440028111505172339075553528930106340534257744540852345062593126820396230597098309361491173533728923869998068005854904863830611884631648632685735073626759250762275236816056543698478252054862083429677974274217549349906000145130175794185549733753943219142950067213799239573865090954911995366614761251257575187848124154671789848375116918496254152570876403153638037421169777977266774532526290483150693762504285587354207666365217409073945933570739609384442216898874926868035042969653977792548973942070379188426936644023361222299612043498331252484922552202903322897487198737313212266971876425630272733911704814794999804895441064348431067601957032707581168633437993985120176912536847470161694454671385080827280182774741643468980972792538800640812680558838509479909684618511603399310078543791292168231517508477917427387316327613585179563416858977818626924160082821005384091192491290565821925639783848072053376447978528409533230342921587946292247222772925482785202701506447684320634677073689519155567981928086423508717726160553081851270918864478959388469097437994988840152841433475671783389594159489953313749995894613402395895059276687507329345685706962544089394292172576755031093393413266877258169520547138653257809191311241593152128291669682011332718546214424927011460425029291195721645596189079591457359426004466482359375167883269150125144569625109051629417215755574461189010373742742902996848129675689212991830287709208045846357843446285515009539308286919721704147268969648641680023206371775236614704802365344154866075868774833478736303539618057444203901405014853970578401182760261607567285399449340481259657648149738624404735415794392878782774968057887440928435229566574192335971785347858745809617165634579679928935636685910532688380857717277196399877551441071620747266080817854423730969607424685576138830034698955158837117281101263232529113995345537679700844737096014884286463179079961177788245872324398914416171182757541478916580186071166095849143624048080589754305749145047255810558839662883938284544847981153317095630206448319669090442751294943632602292790348333478651831825751055625781879756318102548152059103090265356812754816792312408877465910321627435563029950166712923148854063859950939170207114163103146635216644255543286342602603352972991370574288185946649112982175125937813006492473582652290092536445877608552189887456450321082752606959392062707058306377778464728900925296585515281337241032082029858744960200280161654878161556717017495097028521097278209799960672900963229001279031717164068108607892768911018961500257324050306972224943440708301690618355419419540656646763212517344745783107514448356219848206904872392779945313854060292486332780825275321022643943843097113435276770223210187904762962250773108214741526065580003082366314823471985319523961713940835555889921194750621024985287373191333606008060249326485891448477259236396339010246703306745783349016121547304183602345596907884089279085540835002467865644058887732130062718319062550304229379907084050905343328236508710062126556908911298663748630937938145168517086447580352220738134525209372330223430310019507686300852250950000830061568771383528306309479472186954644787614923159797495132267257704854222318735431830954065995711761115818931294601720104600828951846817009327137449156391473985733158489355093192906734875792536281914004582076016383667621913260826534951197328965282539928555627825200771289815560986152008708354756212569899107971273387835833764294795031228171599621549103597311096283345879502480412823415678583938728986181358422692775553679935248383903137861981005205111085237631173097064406449732903980142534348984318957637593418397820915760421602458197851667200962014685528930245491992439313883365419805104953867299840546595097191430922959768308420997241332785015048387614235450010619174278432094375952449301228993089382027343737566957879625247369795954401200227295587864081235058284367865199676454522209510391368568050452196025048389432719623382431723643632083481979574946282352899592256421699801214077249714794616026734678406772417133824784859358943706232870444923286954595003663614910028891234473981100640148877324858953089216234074193160321715961517607573606220988702857027531791967561831511916107122003939250918126271274628636308811281889941505493338915820860477086087113659817611447457974221268581306283152966741685762691674704827978426539062491831932327101027364600642188920006878113021181712220504366173768124590706481533953206823945165097651610730185637390495150528209285259324417505913575872728767860209715604112111914613052450538769388798608356433527614753791856144860204733795035485872543856852600729987431578412675595116508587533271299943188958941912708001467168347666490613066283646503007132707890186073220997759592837367554340040266355625757525360733689128322006068754684495687766305808304014542709930979868257432594335045149765312592025625346203041935045953326211354953297175762601206294557809859917548545763398236696804121601673127478368433033296965304603227745099541875902309089796308340756568860958070078352518283534846908931393655353672136325671455423124186991870400507775326872588188078621380891789176748381194662934357541205825692392325023334849591991898104929960453510143326228483298683792774731483458879917190492222251160538120711454417257580929826098718019368905425311780553113942094286336316008904428974482451218988403052143392330741484655656783684824454161287160074779528606255738859297819771396702372182541124361796761957721861145171863708404738215193478696582139118500738896217681930022048469069143016422185797796354398739294390489138685595286642662910399732738649027736067288389221992403663761829330381977380729281574232565354566909728599046678725712046192389903943245008228687835240600459423631155711869535635459879274057400212545282306040961344182989280196349322659725739740038737858868807248842600749300373418478692087821022987192622283231332505058103284868257191111652457049527080659460121070314099844813537941729342638557575697629225162485909835618601814316099078684250994841595904821587269368404131327469189109773564821030563049605891963863989966928378090144107887894523499554912334021099654592753741092437955524017450756829778585913671465649851594917664564752799530160210216102255823553824142728133162771194355575551582753871505931121109989982443513053518749614448139043922925364428121665111535946045089950931469588843127503859390078583701901136060690251986168394373818258274481094033375506761122090689389256736074303689790875112907245490347061608310941227461515637588752241884992108968500577830775973739753577888235385154667030719562008959588090036069535055937606191907711903157276271702410955438563808853715080676354849610293370033859361265607897447677843041219766528161303418303267940341994711216538422570685686617852973877584396495275888715196680190202619287919309744877923493221122785053384302807836799251528996638135988242776021375860405193368582780434819506870290178330893753506117098544618274849208772628774702634671218099909877667942596143463560260693286584453024964058968727776733653738581331590786483092169378053283861547783860729004351839799611535388592884487335164437079942089067999195655450800514107318365786213389544871302551544899869767571461243539786190215848953243464820336371944102984778661870154867121276393954531156141633285911795462074870408199811208231898437420865681048905415394635225868404511594049085041939532652383323050655405877326721939802172684318934337533044173096922410176058422586678177734322821987265889578521161245172546605732146812343383381953318462086256209047158792458630473151468073684467434615424165198241954103830555275013846004692211221992327861605422896795647227728751267843075866756899305452149504247264208729641325702297536057255699363193218000976089409967450325045560036532937425476997225264331357795402311649452490514444339626903817785709135321513846621240059003839108518977707607554924020147299319597935029713345112043815777548723787315257246618437745840592757079088049145858366441468924871435955628158356278799004177913485726063341205779221836969444293425598869494547730420920615276482754681075851217697784198330987017501084689626608017315936377057377203355990857581597370004790084750690513770506124752107758757775435748603037417894420699286111575635397470511524172938435537135899450578550551102716244538040095425768004235488672314321389256455137257708740499882725266113719568014392772504975261137965778400460999002700245556153933407876216978323804863854467682249224679604249198158074197707225696890800078651243228736802967173880162750208370953595870250255804187293533860048521115268857114993763085609689705970010859373627887224749912162563822005947539980471030800486635369135882473501500950692214266630455663357660435763041604287789539077195552442323169594161849152074224314330435724641449665344606515052808551424987517210706473986604627387719344909727328810811686956823238152935565953781482389981083178281519268997871464097247359110800019696450891686152913719134046502674876504746725158545117493626631728469962146002250074993122108122836409603289973319041460780767429655193797079902929986192702370992703397305357011760695773374754420299262411995837679250671745824979556911256993943432350422159770134676687092778589165979683701478085166818714713383188601874133239644461093845986886970289440414458159959361877200810897106354103479323895482484530391342511974502155580517475509220725587677699586611217500758587897718766206317004886495680376015125535918311326862247941722783889111106146544840900232830427823329979274709388310829235353420118268512420455729558837467606954475951842786940557471918275697702511137009845289406831983168465436620384872754172515059636546168321886590747315250037388963714280426181367427783865968083228394535096249470617465232448437422564110328869552111026562730059709834233142562031144731371372747457394371026841062920485376334256696442230561112559671235118750016716289141000354042230079411646138803199459966427281363668233104384846647472155762022222983480879880095477943214466146696935528394948017685689329488310023774292703658195645350409826399515961202526184041217090007335939098230069518331594471371021448112060922861074500405142674073405720118949232439614166970831920701989750472795432457098869519624562705206314517723747544602019359534511343551915831789949766268666742694098787527350011418694821001232250912124167331294290747720981433017138246049818943211388980918425197577631815801664905977030384157218080632634309352966964515707795950003088549243259081675988998229862071640821091393433193464326484811212312828479794180089210963159993549729736505251292415860055905812381557978700600400287198896750209495552184002751519783867964363216248532240549312940625313858401352802497493765177963567718298990707894112595139557263393381765309305874858334634457289709128610336065843407451967574811120987305406294484533231537046550966699135331663871725590796325939473445843173445290217313857586288478258811860904376695151694942641876333343687798375993427908680396747846800635048894711360978295616807970264998653869052296311358036856977714854640391285498483750252198985292449596299442401369534368103012345712276565827046768732227613812370886468093516204529292881274446536335695241032017591420277961197721198331984769642132339673188985788925275293386743963697731240719214437693950979338469414006752539457011741336527684592623294393124270293003856282359044229486035392163772548317664929815379902925646749687353283232391718498212674271491422232859784854183273482342986640583740973668635257809059661771348653439267734691427482455473923130446511586736242943365326852495070558192042872155293872561839082575205671699632584873263351410360881364847230240188946274402116687564970372327744291816925807050999701961272959150589649795041337942020610875459562888905584724697208261288791462879585689454615243278018750336807463734005114085537119241374161609108524299521691173222481556074797435646277147922089127854698321977558186048366079191666710261074429090421192167817580576023412650899738771716389451134751970648799910790237742774246853862229442504252424476823268805869377223991142079685901970130991686784058629287814278116020261886590166053368984421314770388711945113124997623208418204087796713467626547052900550116114750657521367886062431549941426560311355976176408302536381987658764902103112259816886932969118923773072111092131555002142387986852032167797274057128327649023223725987662473811659967661977924569306852670918985863756849617752591805547413427893959198395254244287663949848315059954386668420276182961993199070437341571399416011445018563811344547636199718666060496003064848681332694870304223807397732123243052141387611217833758035704137069583175445637280140745344435277591147571037139557476508278187558357510329433242811908375881545979195723102362953962179473683877338504173662376633162193111155763274456552383341408440171529601235745308361754976448566144833490293873029594890808354963786252496286963719575992737566798687414723633834913455206042206515075536514861574939442477022504127529477549986550986226643228106193152731503450437183769119013740858435612576242485152286790840561815468325421108553636925680052019055194315472648662895371008336671402003212974892875777841854584070370280613025377879215507437849200672454270888982117399633452524645517574430200769155038248065601891435199969116186698294802678841596020383199653809405367669349445593361878564499235940742318997759974542026082519759739413967342753635177142018360320231693291964944774955113025732946666730554908508134940728854368696481076079933536404345506389384667678725204306798140493094411778073802924190297260574408159086481030229008418095364412478060808722211892655998404084573175820457979712906207383524372370378567828761682988968955235515038807285297367629675346524278064517531895177809045690107947869313906231738833185202655285975647098239236148000349458428328179081702046750530255440092811225230814396009328073148882044753422033554035973802912936560840350503061097504865123206750496333895215752844342337923412193744448333838390531478986160005943362957710970847263591837922225093180162377234105201678764555948035362776044211670198777796965901684001826534700984961590006802773591600290683523494967149631185265574185145433629895424156027151928186854417047437508706318277583824639121691159141794769879513403519453247556157976575348692025890527794487849724842458219199972132098201239705525430775002773814268289341474261367384460634475859413711545921114307181644191676471648336857731416917920028101138985680741531527843674242310042662888780504959020915581750103355428245517989732495040089369847221715853878325256534958568853890324965374491314121265752408846128071290999662932044062703372745512069319237429647990168450163828870211607629155070409260037791165044466472619222801148432295776426730250392671153741207343383296315030596352249220130864781340545208336568857100850362360233158571596743098423919270252652725255031336710188520795374337838765898633876632294462746941538280446921031844989503384339526058795629750221070721926950390697845105669122869309715912457674971711083643957555426698174352295734848333649320925408674983128589112726813439553536927717248001305643821658933632088961095880093428212668748847067140573805575005810249560352550102972631086811683303565069562758803094732451955935301164386732743469089037076317120743887091172057301756556732605384971735042871292788607060331196036562955257914940407011906461263976256768048292329666276443114768277779695530309462518829299408283473151098532573945988864539432322887680518967558404306416700309463083495555557473366732040701990745927369933517816724319788776989528613734632659936571543453836957156128156635893529404947218008686700874571210190124287513080389619847709991513369440262389635170283851025749269561266312924331228952270684649759483601332630644855158243498885677812234467769405703600493791038593281985282655715681077074420443006362094305301335323713835517108378559492810031332645565531782519615759626258815498149122957876683194527789111297817660656712603947387864207959680420097862381179355791826712034464969268632248837834815985497987190858346438478003383513188614371144627092146724488746162189568569818167179926716541660626523971499024595566148735596505475574025187907057273808846884432664256685098259960422552309683965896533170443933770897096196291900734108703066475568661756470903829981270879443567803252622251472509957401239213306663064664125456544559535530121945585898326563073174990760287508573745308216645549119696761300580889564136244742717918149811133696405905306505163701074547574416097110120844657379844997609199818856837293564845103847089378634059015359575212709923673016629638990352649358862664374140074087779856510900151762997265873321822390608802795049975255965536639419754859313665241208093766493756587051581405311875219966121420387373883363277095480494789101436350443123771355990411597337156521996560970447736972804833210077693146038283921931250007668958162355094312485220505109614893159118986445818010838245256801554575530749039275717453005732405885350466411209495162813304135590223374947513424145470250380205711666336868399783024963089651839772523931491820392515637375667642173582049815552589920095030814539930715331443734641115479936056932488251639060658085127644178676617883797752109993257792995579539079411118219664239221035376012055868866816200938780922341064293380776819954689992556324688796262113379004616595588957153889409154735599725627914325085085339440330431574970402151845495196086880669013667874472962144955474878737593146644618133233814300160780239159658220765668393749445060362245256506930816380235313007643756647917338528229381247477217073276829890500417270101042583646372809424846873031921657320839768700732328180114473604572990981612426955543729127521743020590835681919324719151448987460825682037374320816602607466718862371682909059794558377721813028766839389676001688003110339801716137272488403365970312527786195686017704095099372021083624337756323757680278415517335436468710002915081247753716602718518643678436046358675291949720148355618554129130867127828608501588130456778164520665444159261571412797033806993518576744944438437834515549258796739192717643625620179134268068386217900398873001044275697642428692634994548300048178182813704500138276944438279021294558679644970272558641795019537092740849261723113964088477710622911306264378285310978956836725519650851040787325893324894949646883395923414096589231654030249764932215949261709613595890922682827548214968356931488364549271812291602970328710522023421991056129260862126287035365995129274304302594861510931589674710992330708993071603070625263536421132304272714966937317399116228318039023416732182226995713974934554754011687525136052495164820806014989244321178828147242439062082077438320533041110875457482046020583073478158671146105228437906313647918875225726772531107102283518819986999296331095315434739155360111596579813470790220243508324706332147711934653063745308103122996013451060910546990845576364384049413227830874098829849326381308717143623469345259761878334602516059802922576634825683351071025287064780285026599307594707351758393399163806069362833326086282133387691759651779835369077119271279552910788804462716833624498853730253227672516808413829566110051768264053645545902112078978526822763578654366043834509671676618545781129179422680559089925980462414761044890749974502039900764224357969663151549376328002261122399789032026839707065216098399472328548896699901962641122254462466003662765628520855669350248821331286771010911715216787705986057817962830087733567779016792145510911681298112258073350960361692597388590757805118091052281532244192134257593865641454560348877926512757272191439521973910958963859185794190959626518265525043946498529387878456400897778831701335592146571972619243317298991452485771651011412333554610061358961633943515591045397880986225096273963259784149514397343127385956447129439208195741620559417364205626517043478568607037468739328238608656761934764409382838419597844553418019776593327692019796811974700603186258935966244501551781531838503094155764061617381182900068006688648363724336319304173309464037688662920011439814092047080489992064616349963777405694119510473255444185547263827583290966557029274271110087101902922917531220621838399846138841398307270553714714432540850660061164580049923681775514174738393943075534293705173744282047960117605339205997588536552422272625576485665083260217742439761905637123689247849420971756460366435735529431018018123593193232926904975612548978136678032049808701303726110582398675143129764599768559293028388828349912779937227602810996462757820134999483159451573067319434515896363739608263363728894875832556416683709021189752559571011013307443773390214022455040742665373804205659164527395882139897986440757518105078524864382415893237322523560672591605169086879253180412052163679283532940802916454425588060311630910437975301695059056718451004821581575728955686936868807135821137685186630615048375601802602853979247274936875847849818760796908193079699741451852523247006383002084586681871720646093508117738477462395395866783025047867320313135519302656370016879119939972053844609945045786617979848204447453777792647665856671512745059002834673053164129343254796855540765900049199462405711664375477560010655267117539871185388563310853454715622927357930806027323706928283791376360362021408354975953778138168698444381122607749511828592690880737138848096564260739401345141474689254026255334330737768829567190685619784493640750316934507953252317046817383076618308917660940756256355796700498419194065778767766384639884377461050860502158448586983629049368566462016300329708683884482299694504385971069717969007688432052357956489932298110998880121106879139579515950098003199573512348654759156792946910199555925341805173958927327999290579529838375362655167173142909516007045010008476132343125860556103960199825080871798307656860612991393257469634419345461736010871672564275890664013548314857114557440423268759068658362225417483024497620521237024729401057592302210851826522632021755889352471336945332032667495930365375145684242572637431691410011221639793490377510853477223684713048040803555380244454237643287904929618193646371500102978024683157818188359305890050042752243844397474899232064327291996246513737684108861979692529919910714624542912693208059484840029695577174669494347936920110308520644708812415783048935886077588162633752119927843663433413836667666101555184339315553414698734104076590141460790213006810627620932317842673059421229623073932085782104860762639165147279811149457869874228993905000662723770089625281237895416654404877693243391999132018138743675266253129023025234307588628023575864583855921559893983766588621314080069718645810531744401061645825366398953042851793454183621271656979619185790735799927302703794320869633037488165574090329711199852123380396734216169864398263785043725861040548690226350798260890831830854482652382803498880029702135568425724473703833874895952089675836417857810995065674929633223479861073724420264416661713980733521370264325255674792534951738379522067776729192835500074860273979062716143993153967674211876613951135984756937271544462841113462066205630459397811440598988171878103627462728112238822982195903197329145525969036793388454627817798960016721662360123802179565210022591252506773732206349681634079761058385888406488161184347598493299566024042422248177057121184073845381418570727220261928458049671171187978835981613347792045717628282716710199689094203299610271670525904724232382920767569027407574919751964445147352404995586802224309956549295223488918491198440652685193172185955660718029309785340252896187978547945690064561707467354619910107945192613521887263317177168438514976817432890304004970380829325481443976944569271155793027943510921255527828454079970651011796393317099176270755291213138548423573921711137033808585214814094366085620287739945153475992408498851482749712236752461380701635283549317286818121139011363910948069259316708310205299294649458582166747794488773422100655189190140757946616077889097533779358133509263104665238530159507620528569137133348993021059573480585827988006890002913111572655683567602944162028342468826573434393386777402495415572125160872829878934906382572578840610493336696598852490325424971183968338993698132648003483879785322854364551042839493835866438933005076176460542979864212506295087763368720596310053685078424392363943279728413008533063768743502501526980026552030391125771374664009239662941173688728926415740985147863013299327392429919957982928868620935606502015457937339808364806697586173128762273059091274456077523632104266321541641245963129980032009251623913078241936064152905179572442399934242043509067056439768877882929477569320408378797615415101322292009337940137323879102333407389645279637231382081086996131984095582030340505550342039737350243796730179992655569556078635335105734532956632066067220776041455215705552074040085700441953086588794813440337887758391339623018526660319972617830614869097296469069596623639555040352457811943518218177042177254190754103574224080939506164006975994810819758193438685868677549063413822142004306023336946840498127053162228404720009137238020539133739213997399390690305614222169314285693644203277536407074990594707145754955448845421751992205777721146407912511592101706732022740827218103574208462388761956272421464818669485271851855379054854017537135413679360258100180280841413771572180656773865079387528669867503860881593488117117637763639836907633483346527220502527807065836513770874079252939937967773119264122999765641457285567006865787314735339271549741848816333985921888975977193919430375672386496641478600955517618958936962502799894154320024611590130775624716102116762863312720522219057428461198080353155095009718300195037905937023007717297973145590628378259484399398049054875832455688487176886270596373014198208214776671185470559361943652697419704282804323255434409096054914279392772371352183693405835055083485481550367707879386178590234310163959645916412194759090088617911038231333770191991979714245194847641084997908140785904401678848460959379285828232369981983879548370399261664330058020629422531999463012184997131692180937186099625793594387837668716577660410903781283276029761918319666558846422700669520547065776248283922116673354968700796517753046888452920532549036141086029473019992199354720939964200104721549986379462080152401228055545157896387965091755606967759638811423518358238974921409661850514277848547378575603454328896786809066978262703542051065319603133953875017414653756464294783913641553811851950727207245543870714393176437934690799859531679871359417631909635068408938421870725555282374777692880724061256844641881054022937357857727453137695771341282547708517403469008499845761800326294084947489808672315118124803820552888178692484826320081664703547290279029811793792121243478537174364709744411700735260772038599253392408764692214146541238077268476393866754978647672878420744054275873363224890623780920174660073012419026132261903593827748682733105660006988610152815807108399238260234584501068275136082911891786185506758434976265046492171183621483866306184580890697400820594232979405321037617073898285945344981663004398384202123976702840225580468003142079253527926050710677659941655153124974030133199473570693633643736106148368891123241828689817625314617584167440813260170760063898986141466571937466040996081619303093571616303745339999161447567134856426964243835803992545688860144676560113571622775053940832911614854521482118856802210633356993306572617209784790259653815481788827622602887092413141428997751037042628362104183526508991000640507016183099980844466070037766121174984014800162760260100621747464977698203432590078284610002489742568301006671945768531660598252107389970523114993970367254645684076400820041098973292943781029257889092035973631641743046407544693233124048091800449381392133073572538166287177920098746956191071408854058076729522288698732833726269937624673070076778229198647299168997669270157343746955430642179484719549527269751404708147219802245959844033024907595851994462215160371157441365702138712443423878663777344286826197462121664758218824866426829475837606177767652457975469603161951804803114452557154910723393051527619701954461839236824682468403332066910412486374434026075948121828245396778175743236473864916574143034476400533314621241278510008770122243542050060907787139286729564429582108042976635628571436642000985053668052572420257827977276723575853825940587458669777420318792430339533953046604594409632830081118185740951612155454259204458921103262785293277929358184812598049087726406085995406592786222366602634264771043335470393641983930634311083090850238110623240502457837080102538169176355036299807735402125092132634097000057795389916877250010139909937181010700449984049796800055127946547233888677388456130850272490202360396177372328983751940265734892171914074342829971210138146177603003151361437569424640340879945237041740096655089248884495663397542910392103250902964614988121345469260969186692368556727908292484839500510434347275793585903348512806690840836937648620619842442491607571892500274255545450608883265697935311640008506276880251307643380641875743383614826638566792516163469401159408378022535987785084795610488349069964643150460764670014560734880580946175598274272317580807824171025905829300280895298431132333970743437010010602797349690989681710410324741991564778199741283488623440361736274215710493119282995815894837900554552510692681442065675656729976270799298183890989654692611135217146417395314793952140862492004700442167131142652946998741377477174974948073753596055445784657783324481789900384342074337541362351297135276732918160894535279801393642718929424498485052977637404189137525102268962839835248488512862942067941396428716572723399220021042337897813224609090106577907940871363731253995289377674298732699135299436166005693067245837097741117818508653706081473155012606724405100926235401292139373188054597307473360583128133841799133843251221376770061020079496108762720244288450994701761717370343327115904660570494299349456126590996872757709521995873583075096091678867629892573969340817457093525027793030348197777591850412489564119353541574201875545035015168952870970073705980525423650547596021975795698574840969887999642137940524001797439506945052805052172043044797578783625234360429261771029698894362972706759145089074258340530988772208037897144163281728123502048548288365238043916822565102482054857783520936566065348831558230983638365564717183425254186701862539146231649332315556755739467164643395981296839762741704627293784531681108640636917161583908215219686407463689423004517552802212810142210252000872624226540373100520389462212880838479938840890959794383471353751560193593298367425200360404422366338226151654730312013292413909237478545844400698987758924960440920734663913981189055107590114667433485986114652497976892789859167598136592055424698046596527981606750397284829201294478387934864338305478160988418975352699889618427381149129332328587854496243373859572097012519537818373078605798635745974839750186933134009492749738749652922885147053226027028250559009257422190861327009511696824908165678364391191755485099677432986905053211645272266703008992616093213965489236190181077392191359904883530347734274931748618895419309709829540739967080763548858866315985252466848654288969327473732530981174848113002347255477110293979664393319678278910378524467225279037104926993062518182292952487046099197590303867831986000211737353218364583281320580477042282826296035906962961788099601801950163049068449141779401288378224862516029046761586820380261658541723155787343101844220448277122472071166291980105765260757371718897786865064779535112753707660707836250492087249983628117783998278982828707086970163754192445338836891821949407101796540437574711142384442891069189428886106533454617537472801355219531815770874850060512731896716955263764198194249921992468031964547755949449373384237842533970223400482515355891134333313746692513522708288986048369915199925670358751780410277307751978774212653801421923893689699446884977646190534727890829633211001506956855505514995641654013387780601979653149858996285715334220750169943591549967366714081093444588540989536539970643161891531483080596539011858651058478697257949551303008730738086875546850531217112505467867284400288567759601145607066631769155375832729586392636673906833745801859183297583257266327812238121962747237062474266555311384329530111725393410831297789866415153573148285804802831122276121408761354445873563862047249441006576045706337507497390851885607074691318710775364831979760102134104543236198708471762822306218772825479803952660522081368746135761731714311132901168674939567415027611881080702082757305476567399749353597170591438378063805657492718700867866992225839072745906755018153871294455273006013284902147643426802112030134326194138711796449465184679257881348907160633493366208659741498679301827874055213855855091450272187908706358524699672148270429018338358744723604865022267842731152968525462519770174450951127664566059102423828314585193594459899690177007331640449168308727883208362883343113554877071864871154443073060693689287545606084023431374238122233660776956646202114673430275521173813692273535386789510269251324513429381699077248387976177335783543967240733433739460516068310671732308443042105869419692424812880561228697433394704697467625612595540966802031779245269108447303595570873066973170504713273207874198300544665566545357246900319800390916610897093679647113027376913965259503049719110209182737428741746832461268509263723433318369274560256253263296528630642713107223578362604473478236849535999275073615656017602650122094752412453109793104740985968494123968744239237403796199744243300564769965232991152802224679713366708975234471741796021912616953846587518762898048916178763917814346638033383479553622360605658917985412225824310677408232925631328570828744060922119737449297101804809160008142994918212921634856183513161303192316278748661854169290918456960591897394230208855861621324055548815380325919863202184335587747357905725538986550219782812767714210857438118614988118483189495898932710509212585426377275331841625235233129670662053966464903689412536739541945424764383935620844272567349917216324974204960152254802914423644286771615390796002772717499209148224426581681343284101366266824950291671389389841889975101533358747384436228009593048114856269116771979544254570630147174817273602975073903659447567371257941630959861177475799494950477904016513023941221663529025653688400533858409687182523515404154262981473199358526130101893795063644188119929743468722977623223840294909014986807502834600019311017435996541480998043543797331554123919075662469200183439129952513801506692491783538235678613966847390682050859816806396368321393700405477796349115615796222597716951498372064403841859138301505299602727707839159094395849073740658828698976999030110411593553325466739947937446521249645595021226891550511996310318774539571514884356399016898078650278158214991972587176212888451846613691659493286617036482026664620258696842211069149674632388116709225196086167000651352691396723223242144374431530561659007136699989906672810521612250861598939723895672858374252595704229580522571325427287665877196639461204098409362821920569241470464030946681372110638365371446304056070149904075003650732750420713552745240413948172463170391430444962898324143829296542987538731679524261608612899950869627394854686360356779411082400594678314021788505940134785991217213202170816328719875308912340218221381798927909339170972403189880808697136679894371840819159937039024498893228557325004207254158662716349696853897686749685055620114696125585611670784515570423232385412175528853897795423214621137739981839223902798625189999226448044241150242605230320971293245554997549678651227346166947690168127333021246799582101913392091514372495052032693413187583359211453813553681699050559094945182466152763277459176291697290917754622385773052457037363410446691018034909904192356242028316854811079684939102856744987998774782257382865866600139557984785600135997786230010397219602445092383499712013964630395370114738440843574464452375141038808584673583399584009489630934680461814574658189279817272353202523598096420706817974253977287375117356616931877118196520918502820025860324240962256504808924262344941478778311824353045788333072814224958496790669598364045858276815574013585532539154471288591250590558450051513691972114123307740261286583237346648685999098433613380088293750848308448640958252430445040479279956329792182721355994347604925141770758981782027508306465395352309885288372347510037079145538755827338496104405067077765240723805893417847734128258087358042963077131153990779640541151164440953064350577095128701767415834025301889641869257406238836871649679233372985229723155285506199251580410768714686515366578164583988005548602030155194674895721182992112579929370970554374032387018994063060463962734290344681635147015283615581732525983549563612128941284908766077917583270177963805866593978610508914243898361034048812496140234921900931412138062221559138749110440446754014192840710737246803228272317466330727274516682581957177339757046758978272285774052159670858433996569639357423604210096854089976394313870969248368694213543009476324511512670292912928821301556315278406460772625085419203559836470683530735776360256268692722631803809003053416411529990033528649881507513452553950707336849359184996371161372996757049411787417004281145708244407862724048947266959176488009528645304724895116825703879036978779998655099524095857985052739768777159941489668032210261058392268921352524815382556207175854584736943305825561687785009260352434699217860343048953769725117143033409049660169334459321677624851143559419474972359339163978793276521990505677627077870768601128986426124017482919695471735024387652770841492783638487225617243051424245309931914412492511818634096487542706833923734335763355163796379255789025120164778885448687562196783013418907217135232645935519855159338630877158496508051622791835325595329425168243373582655660496873059042592301328887788021374642023291084506679071039195187331472572889750742271110901606141693242345170631362704660619584664138012537755554406609899397645579784033715752098155818421704273567712581938977888952873280697132785789491202540135530714306063536025497765744095244547352538204403022164362168433474332932077223834313589874650338536979091356387456602683236679220790850775052910215056357481206091990316475184303710652072625003330801325332980436085512915744119913901985940331326878677316335356613897356934539611390684570900820965384013210119208847037747462564609354415316051956344375516504071599386677894615267211778789351343028252983884575144394675174863012783591211226610299816678998453043297152226295711336912499093390755844435927962396220832070784556659934000041921808838839814745343634696773650570414750853685586362620955922382241805592526979294180185149604874879531281326873819015954164903697366010308305174325150545728935742388076649978856074007440102715988795114626822897076262463968221673127931088613979718482405545712197387909616908647405100605307824590515583653058975762632773300954404726548355766208601254079805806649492550364888197339756593179992172050194369765671507551304230864567702273505906000705688793228968041906688399725815360494002218203299864883049312442400640813051730423020012428890070050120126496941894006028502063338816048776590840874227381341440091861513591505048246979517951923165608855008595015835655483902650314676617552487049581913961849278733129367733185826905345784034017255116951584211714472258789765647465234228926792386885111921401054482205270550942338048961672510724714607284844418684435941971703118428759320268147353810412425917607939279449532286744499449871378407661799140676429267169274560406758742773414990285891757847558383538113195001734554543459533618320209548626520709558872466540410035693747686603147244418288894944197907576283497529189625912186815251616033540245458089783594232287549427903092267720125552882921479112583893157844798628012661791735328530026630271678135259728190060076557294624375446148765589747219646947985101801563432738977462927967968028896186646479344546878170949037346965180112702784834304273194593286637621107386877833957241866473928740521687953837561193942321303705368994761261359525444968573157090241276253123102725534293510181962372455152313381855214848688593260494580183254263392136996955213732330666881095060938085890066476579856745010585440868361025772258798682206698910825453898770602563099653766610367464500476083897434485308455258263738146601486772179291248008254610232172488639611291467498805050312764561906572252273857964278261143226016023197513019019223817849003127744070613290593595442161950291651463410469069431335602928979611031320078039464624688989589245628137946050397691711232484374585701970268639541021437127361509676093261743992291892477013681419238008121357642293099369203129937399885147438687575871295090171366482227193610335734484009113923725045176252074982166670980068679625053893765437831655464145930180662845083589049102797326875115321722734738028894502260145724151255321431114677295584375421762108410582662416192707945256587212055827629928814768978542040613556606034183861415738905851434908809843725496655343632790634754365291013855160000849926145191299326822612961608968830623098177528555706423155450623349681442490001401667687237848391644075523654380416035120816354764856012337251342767576666891196935884120266456415449352550818553951362745419517708698912268590893132656503724334614170408406445946786839849511424270782076199823221104563567140666872498928707756220111835671856265471683762867072841350809529413284306533067505291032469660807564648566700151155275998379455774128251491208674540512748273718832721988794760437406069216287612232495968186725019039350541113139877889550378448589535783603438431585646184435590520426870764927273955055670194520153286115297730740721515217616373229356837857063049851892105412438958717998175000474847412954056178469939530164239534299685861389662026367583286957668950472714707674125472311703516752850972202936831253679991669555205372712558855386116495837822539906040711560837257324421695872261641483460944476022824064442983175544599238607545700205238335541050352243463122163625301355748360629357841242384600093969997418677350344308101880627513022376805602364373729961158126509787761801637301376246039802311018227266044965241286303735423405983454151502188835429488599334515595062756541123359233911585408618693049095893127740338296147869346300543346100998790836713091520037654806784142302274861868109635582455008321203260058012220722198932015251692486047838750617446556967229695025145402746319749077062742668656249871623183477395704195016553509006633097029596510600451057096006369255934384958013698579845577657168257964572962111599390995673581416215316415243380033743193548728116707334974948037134806722363609132789410859288240102268974068403791258525783109289953991582315704979801126678169595242871599761299264622721341611590803699255208914276056261357195055969788020399910034664089165129550048429166923992482932271855699597249268664790431527367088295740120438573128468520421635008949882623083610052845661630617877871914408529724771854451205686828787775068296107215694933064612497631518414417410323552031292156422015493642881561724479098225363536552106615561516492412964220387479443975151704715808353482199870738089411504061600760221932577404528333587163304562428225175566720631165305651690035928392971703753965375052802110042005350744120872441301048999861049946164881930096934095946403400306401128634798546883695428987857418393598041506179697461242434347427091031612121176327944721170651017051555174034652685613934053591186357494915545223430421597438329059430666959050042229326583105980411047565836250990859880999999209998048161997637598737046326770235293844799669996665096482760431397511012563247431607848856556400725143192968154437161077575529921270301965880366368016450065590789760622645513838324618499189578569810305913741636826306631936464404773223771293278998763580856822848661914650293890816526949448452094460169358104931923969244858090445191681238701223404113233757358773444187133654153544618473580073373849875688648150353313566582218641645529863261639857517578937331735465822627828361939892719470390117452320672054468541125793420681660213692193249537318895901289780768933187073911406286779527285864123148081235856998103063705838221334311977945784765077436229781736842418595077067041744888623101412306943229417112664640851724114645759761566327988555341918391094977998842096334161276910723579556838351096649528362611056639554511384815902384528500325935722788708181184192236152332206870770258311402172457558334552250018006258532545190875681780927413775283907630807741569665819745217346981579672651060779325586501550991132326406141249342915189576822502713065975488475901066461029216647830767374498259314837472471584217253680469458739144171486627604547284496995295733252475923781751360344939813794573958811305763121562459987367198155314177383017954607560494843366450219251570133946497376094799135132160350513891644487074701567605990947743943141754642558386123979341494191111454382228560369231522394488374366871971660071298396584575567312722756117867024880462111652825825453825350134955172404421720540363926791631932356784737064387774723449204053587661810652610625476667149178977532876623946314930022428584707710018461107784434605965200766886126753013207884672916899858173721071477255224580257695220289918254242777363797966971883271914958540755168787972179264421216386786488034285044203472887288189862365786274396292400759642986894511321828523441147988962911337930407631577459995228023887164419776818671867524066796487964902007828026935865818425279352714805643573905341237459793707552568120675865521625950334270605343773054117005582653908532841840337861010802649819005048729342305411368552669045317931259308267664484659896060707341599464772695585451661256596205086216929456500557262990714672110686034661389629178345730547057302228790622707474373862129485888016610432997679594046867733149300179526693778909313921709274335853671914154566587835744196267291773058377250487581977240706051643782641480546056998828377189165630526725442898671303930638640703964085072290168370635347785133669318326512954599665037356136919590895658923335092231619571020242819469629883450662236628990329899790510532648012375281919404083794036763258036195649088381341344769904761631287939459488170930078883880209474084475689429198359285619009371467914832973286263341531537341251036304465317333350792228283528047197802494811586906590500701000716872462262274012247814006373202027977292329834367224595110021429722400266625840803529490636589666375579638631250343153599396480864623478769549625071990705074710144618622404664244257856214486918163636054326689572220083975209508339525747895341392604343527839823822444859263858753595357405475208188175446733471298981226664714603036971467130152690360829602539959041311419544954017873767039027223369185801520374801846688127522163859004566399423202058667034493618501858323711585630688553905953315232256803201997279360859715761692432864730160856178573826794324188448260850371316658833622736277373855766035264682376962673478762803722809459982633536109696831856515339558302566295074383430964762047347061792243174739038537799243019602756672926928209958826272807943096076300868005179811679083728628112148848440455509701027180026763395679160016133191666794747304362473301665533041296771421632467303178224219132210716790711132299845127200097323044790101287457418155502122697569406424698554056257580483769401493787764456452007877279456814999041946453379455944775454576334284069298308482715113772293789211301470359821155892158664324427253460261188756563278931094429430342673370457533597238914070881628073132865848163409378696160905753148620427436734594590562130840753320455255159645620738994716831297440968298312702002340134012968245934566972125583446323746360155524801812234818840593063868526799855492646708928452344779928512434753810251063919756771590728254058943613611466265527274789008621091486555159903541926718963925207720084176641869425767515477615492885525433833028835684835668725205091867799415581346717148768292091050676374568304687995930966547450688916886338607418276639554469872164273126807664324966917656322030719483157276572914662499661523024731922840834370289379265967048280150187100620360055274702113556988748512263916689791865580591161279815127422205019564801880498586278078380428096164666524580327199215669913236462164003050644969652521499123529432352217701848440994863887781334601504726721526689762221535739721908797906048776102115610757693441890005280664970871065590914258998758677484353664851578804948059716080969145262864322572379201659002511519006729990810253395309576168839453643881327993443160946294028977219237373169310983977472698558048744208431838448715887749215816079951486781246655311023251723897719058362242042965067933366418919596843284638134393911968259796547165735106069658838433642419749815088668909063258349508506323929297493526696591500498241767036302254154389318460303009234069132461848078051838984914235990825949489029599488838903589055312354012162618270880412368668496845700666198144886777753452465658293083769245446232549246646355611883583625473644407831517379525834272275836422501807598065184062649394578790061807022267678998496502809405099911322702931037314179602450333339990158739443680723846302792099382579810186335094046642615483145068443657584947276498192660307234293679561444513693686635731311125143535061151138341335253343035208990471564463991867737846842718097490890339560199949540957943336894925940715606583626795216784855188717580399649154348653069868822475207421444732622305860803553503711110252627972819240522795986158157451232195233922963211583012678776524228941955366054586736674583000649489432075541826528906902019844229477080928720921621164489536966876274801358439077004039414167574587354397888270092180528369031700151607581897487264548001998710497381661811353253176644194938169477889639040014744220137904538888463665131891222149622678944485235498333533928922159609940705353406409008469710519674328297097206615278485676462729768582321078171307160649347013329453703262108343234874457548288064290742938905526551237415736366098966942433972218863871040207820068113207426322214712533241255545650587203345404085461424845062944116329593176107877901365653123810033548183144237764910899063363675314321074179588544122628029339997576985341942324289434514994253713382546618885759812426434568993009906024663061655447900304186565643206420111729478270341669804094801877128048823823381165542391120913112569460578296940291026365333872945416842689610672839660154215357116484775875002507901917028750686323400716021066542778733189643029710375255283074740640599693499047874680212100279214174933674733326993866995163012745474674926295813406519031108858898889907125173374277195847868064918778007709110860085773163054251796311837373466762612704678336010903918003778758687005314425214460582070858595613867641959394374747837673192305143405570053630649225694505791339150656285407155151357077456318375464375923626755095354803825120776493816328525554192347031159888328291926857732558991133427742860347291694959205557876420803074514268710961015869038253236705234455321857085721173233250767725312335224013703402870822831970187254591645254881745568840947975204001301531506802547995235518341419149551701228738614043643480158147673200721925074590376687901638541031549271728210956268377150992712922761273173260335168247928392846868802986742432866193952127977768870215776119146406946103371581376315326933184474509422073801343328214914711223870080679354749173071337981171652324523893269001761495306758956312902368758289128381205166744497644092491422752150734599570415318999576291331401896892496306323902291388168915061284522320023845992137621098653481320639067302892473756919096491283157698344213200299068279999669443155763374294364990465838794842141740637296417136820166897144843590191822594604490438302704784615357707928774354071078349253373439731950647508386654677529268256379326051569233830187217721378079331625853377084821251264430989874998010876171835734220132027271233388655051713775772364257986485203342867328968036665881255556210841039407498161446863553030004074532725830540063478661869929789064909305799579822877783266985890995523424619002134906031886214761036339347347329074364519667600273169836179672185765951840072264872271318713011740211971386730973308628017796625510622005585959997780998539325764555739746598661185054935451320218587781282175626062267140960620995074277596979905795418619381119406095821295731018763861754249642385497587965664454600111635961365367199327157021487542494271652227484584169539780745144136459403387074421072751772662473061476611363251645903639310196709402621295932541195726157781828323069417808346477474560743274948649464210445058049477007859117738408232306706286787060214166847910400844804136436754785054237797073263296769111110005595719528540089171410997008784203828943634891339384441862279430866892125681212081724123624771011176575859577554508778759377497031105645880463232752685000905982673525333273964059920463025815810204404394328740508709966556334522518811817998582056706669256498208765108186490336236384777121847238555242259895232771952629212493867262573425739916949746833484604220368991755202364745197291641415025753877095815552948379808063564507326579331981089763788292580866843094942031723258980354605022878637011120087186830858966160855885315837873135032467657897237207267927410796599581452677144027329435650050140096004192605420476694039332744894794381818389934025988210532796844986681086269829344282851252355456348914200558303281953177355540127703985439778169298437085241207865684642424640004612736368056089913329025188194969274732335187167368110264600381164537155970189480674990486675298943959606385486406843842903774596150151678212286277246397119459591225636840112414637295753808255851014174829335027079303537510328846129381481513313210549987755728464175466106719809253202936456593147402946168528128548682977015404805663304377838160693632590523975067760782006518647690897979161455714361761215283958955522790745100375183919187012062608568244586225473976191849112422517128149087934686160684374202774458600297627755945803380180952772682531704868818131348741112405696116025860050055550001485600917415035277197509209626599055417794121294305446296581153307377888403070614032550105458148156863383256144635948156908627465246860378209305253173542239704799715330301112508689673149285410526776471393177614952809561705865398377338620525486573693156945614284688698137717864441937343098076551041353694348448894212903348472587417478640610390323592538236038298857753871474284485438722308637559019709728146989757295867859247806985957897086415147855869257726806977661673741638654120420973639785635735804023973523250454404834214125590343185262059120304327171207424799185809750945604817874665957852000882245019289736721811693606381100272468495301012361498685038434427041742484556398888977557433025938672789133723622407417894045831952820724399500322690478629238856270236037210515081509526351398387440944940471601523573449852002772415717230504760532360665483290478237194392099076531556234956688729041239638878719488699472468293317548803357293824541938366877693785473952242812714107084225781053993011411257635435846582707002720897606663541308436604783083479536460028074546805092122466763410273560875953004961788416467259424759718875737058366569591538722474827402354154900253137745004985243916070235672416278743003873241578254348115049233924344234837909407180107555968365157910090187127393037267035936889832074436894623961836847516408429083416189722771703665759796848076203325441345637688112672107688006281907543266413967206345986788792605477231004407075547737818942028494428511180381683716575529022208486619134105582984030069395266425126545208632284316387083636912139911700332809467403020041925447629615674351610525145955621540318567862039118408169346024582396796796378814801159848098368582788349305264079510747834385801932952051994299221535945491337108671006413420211470319291759986590076083815866204886857193790468794323691476107528985501022460388864622899976506869118549844195481845493894575569421282080513364479639706594144909241130080788302077618901404504486443282768873663874879908492098496632894970332749104998650438553637422484517041174764474571198874591693787456105735049064791191774241476125325816491241423980833973449989855200230931597484562846205456700860988602144929516572731862485413102503267058155922334151727334831620783793612831190684835851515916665595525868748084453976018600079868922444176959790617190107814771981312235224821227821851025266006488297530798547209529361067815224712290517756664606529243955683089115824288418187577309780297137864789076945106387673214184549646318331292395078608230316998593773475467167564998042203911455220602514216236276751973687527038071255051313065741418456718781631932087408986695697650807054597634214961194833084035908752972820589986522825451772104182429431734068233959958071460385100055410949674467614794170305425565938860538462220383227615393331292537848608800037499823742413275605216435359139082648686208310978878939594694743635977164679830785221412466613334916282813708181109308484709065692600346302851595538808128508960844459012616898679420040256427156368112562683555907032724571607064534151090866052135791994561014071395259300224248491293808053491676391491987503091020189961436906479057144896326955109757918253726452306757817312755355852130946902605348141037953851311593466253852162112767000758023508552636643547790483092077438511384449682592152325118099404763937584527226717324075308319178045792241020566358376985952843343743447882929319304911031845692568093492495445345486490340369798039841018060944523326554948245709594443102403018443111143649628928128698586331249307069124624788763859342603179202409292646551918304328819684609818354711215582370609616631875550133641261562595699620759275389627069147725870698769759255042588229320101611230209432438224457882274674889461251977530462878984296735459749183269470903172225675178114230188831772977763412948159505453313949093958267200671256977409485949013774105830116835337737616544941134165188014956719860894491528638216304779043402946300848444737893432322544392963846304440151405873180679977056055595181628937107179482008139352148030103857503537133398260347460696762238502783217872508350798008541937458121494906228590374884348407497273135422634933655773550697633861442155434806169185306623696372282192664261020149510880025828025517676267297289869824518149042622957096611198097609990283226804990868666049388769887917920239493200877766910505842161331535176017099080944978190128541441153611440758290454784590543217986014258671743050286899056442760105564197419483517320634608147936951564561552152901201388421774727485651904768437396174948787499700375143562827825331043690754988332357364318319682310707542345801296665289165941395045116254350245587977380181637141762961659144217904113776181044888192323507331892790791978174273709178045124110960044716580660565154527981841715700735010132695119356133745633592001831746165846093209304240610172819987336767229259611958732499184529450812966849147183644231838249015677789870925377641799667602494378884429855689829102999577885905128999806455487172462184445828121037632547719361570679041446691991861089467757616758369367111090808190047328912053851211228374128575969806078106267518701517156616851000710967569313223057243822134040364316297992103454709247564442755967938400590241197393268964871810466546098667245249908969148868582351267633456728075974893152452808190531182743932022389100943736610952487791782617054668276658891866870562751007865827814630728095264218101656592743056855114887134251151103187681837752198086947921692197952695590964566195660053542573393516734049653057326345738232605573414223171852974863793889419270612260262516946261170068260028624670541422419409725524826695366901328882664768807310096478468384890247766036429388269874387076275419201378969764203749049380066864930145720220451882132615612438427281714944922068332377368315136817768598597751954838277751151346782156322198435921030533794154637432750243107839288173888128650741862914668671101220944984832352839824740636916795271442314286372138114663679398329382371531325074513313352955916597331232019691735055964291191536853698525481774397810417943293409404727896416046837885394173476995367581372800336353935887327779394455525757925376682992441046573920193705667239432762202490443019100018620554598696316563680312739674917161767301844644395029292064562722106286330211791534762924529556931507506450867323293766812818670092311184386007560491866706813654256379709329852251158970636911458633647028043261308875659771234227006462624274714944077751490707398008914871905428260005826180802237919530273464993570253170363862719152680205404259040815636574457640971053725191353289311853934520157617391413046188217884744343101863986225108242850147983990134986142073832831140142198805095661163800410391272587932945037029277668701079422421844626252834104224555273643927236214785529128932322191754252232881660122950913868165462370034574689149035730065016931734103401015897715446842079210744713535691922896104764193403806753720481420104318046014682791152234224794935640869324915839420617524495191538436518163273995236971291156220722783334914927181305838241050956945872008107879584185370334545130390398311372687488160769326613580007417589595373504803654022240871877176422205932558834875795698140317421647247220962082985638675834173514058808641178834037887280915850300800692904698314274617224094792729237573573645434963059895471469401212180258707099832925648645423599475781235796140238870171920744322055572940104496964014263219520882324098216499962603648621924232099375004803909301891592795564038468332048024742533200525441959657721750593678645034485216901936610041322561394211069483013592078259100588102628056436002746283270913981825281265578740334758695526306699448270097313586879975175639459292954264293748683639246618962535137402716169579203100379519691770219521534667832333167896091603852198529095742668104192083576205980022529944080461775771947858123173006834867863334378569752714523186815069081866294329811976832038100100811351774675851656056094706264122208217949977602594681279321906535093663144461784649025206861852229057163021252095200288789333703752496630448585859540399142008388450206148862006392643987059939386023819970470830872333196583906321644786341017076451941916191580789701616002320361952069074447069279189262168423938527304025011378630535246288511919724781494383623566260136684264478651247685895516372731627079123476192869204600620440060069026720685950528937953344010897206921968148094919148228009402443487944331904667020901279235813832181050473337517116766138128004984388493032038132592976522088424734363474672582636921259371622606871551387509863061730823254145347588705839852493240872438777290084727644875048311794757620302756636099131431189700246746279301572683778391483525972593854348109017894236228294280691402833853583278665148829722279351734292840195590467109620474160820183435981705210351984578755939387574105028013184482727975829954022604082984804730782056573690121341496054684489660929560889216005555386495302296569745448331916807194543928422090956452448868468688430061700702956814763034833305942189804895326171521280590175796314207235781336639772652809739642938940253359270814010257916814133577052422819138713005124800854139545637474008261130105691779559360105973373629282872942462486823343528832033507681471033263537801146784908208948424910553081784541415096820814961689515335432813880776133550119991771626973684380341446342248186940642384995537785422375655330315891036282035567562776549367482184467314561602203323345236456378408285862432889047224385906248327100347892278404152175500293485835975747095747150992350410245783072630540977230973652575146511138993861718206059450217574099033894494607984990891616141365207931059806349385484029358835430762773821784802386124595336972892251013743831803647976712630866415880531100134035250062299002230386283926900608210160764824575597856531000357905479629347855497244871424673346123594213586558205383551804514418710259751723787039960120440012837068389060574198152419851708321184264517712530891018219021171842896922271180419433888565229288280088370463840037518753102951014838534934443891247220629763269269396939891024287960919950457498556937391690719181027150086524714104081482812561165661054866011843172425258375886200944344816108614244656345875974991947110041352315708669121305908116566884562256635206210004447387270491190326070725297048834211763205298595923461251047442155142963277949505540170626393123406703963811711513933378697110785645843114473973256340546678919814581155566137105449315522590623283170187364141142221556003083993776765856838319861653039635757735290843645815360931971588638171562388882907218763050646860400025573285189781510730459758578637671368399754392093406995848072426888734166158316619129903962395832347107136846500396453993735846323648069986238546592599022365034055504148064354028859468087678313688608803602981654785181653813947933160529255069505580201844751321774007266876333352598214891574011065676331530207845905816103680460421171430869471705043096368784786915623244729614158376036292144271561322780198455125935529844382061092779675816987098270278129088261530586906044552054944800601580952004278219979063906822034786753078296612789613796559845623534527424936661249484264630975103949287301001714926419307319578864139003871609220636484564894443935640039535697526458317930560656442441758414950086725875497958865613153100887766418110343123796914551289740615228959518557609496447653925234995755094643950544394258719161008002603849733807125119397468925687335769567281885145125533781277969400886882922577587177946693188522905869181539054509545375215597921455550631536134417822875338346617422891132426591617775549236358843145555677074328378021798856699284930984824411001678431989279761688171605991205748973824639422847852202027715692078790581649502286410056957096915487619617289611471596771130982466492555293358481808379093956003636170030792630698603341759192437148233535863120566661872863689736552958049241065599427826991913945067475676569739552965929078775696655951961206559713515153258116798085499364460256289910937261551110989321440574898516664675265569892474656541139299801325814554237551695630275429533365946287014965843866378771877098613863955342204224646117955821280760817506736628301773332143996424923292247226819937414619139790992762834469612157742158632563576703509499185708981217259336078229714017503069010087080944844012004535248009768877014430995411848956169917470975549383034832871156444218607064496359579635510090170634389594854927419900644796292711662378393569275888137544926834735317515924772769639876751635299986705279715970418843257406599656830380699261476516121863148620802768863601590126722597221714005313602725536598677074960567739816062774333134684983941727227871752110388847985928909874246950948807238374465356340467347497656921683819049568558039355086656157861398066225593188894207940917809722913778303415314105292061079913342465578251684790517335343642808199267383021008529453497059806382612407629934830211955405939990290208294875030757545064899051243663223311885090673270302475315758593904705708654998098293194953360224772633593553485524438520020787976618660692649753494549528101510770483958822093560398331532771945839976366050525704168998910709216103126496184951741884031639667529016984117505823980840492075859233223687969468592690529632018722947382286247632448025841110565566393340957259858060100645949778385922101036363516677719900892028003649114975989013755293898197659757985168181492545760460928410569396470060380172714835604078027295397721154021640678134904246896694889911522984959610683288722046530094856319760475880662287976028838005907496362079015531861316517423864081788083677677944881085315970330013308946391925033341248271235758542671631088115794506272325694818774666466053906454740977634984628504965872784697243582108582414477595284168146452729733199665132924092012388996983429852049012948518111300583029202671599499686189092560555763911152640892003937343957319602994016626704428689973477034695538100155540370381655207068208756858806012696508827889595326607344404895159391137713733774405780595901358189157663002982259659324881646483039153591393245304354314973495595168275957095434270223049237758378722731540889470585922564735350436274682375622174186802326868087411280382176868567464056799316888536528135992923345197641345397382813059649538169611411852967365725969075785989886819179729106888419035711646537856735217805854522628629808183715310786391333289179665400385696380156330597521354374823041920301300963800153774166977021738630369915603955011093120385922964459703315502814688249122529233471688476310625951556258652349625308424402527074659653858909113284485267554425656661114106820088797538026030690373928104648783609842155105668430378936053671664319206009011539856250288192802609232275400778429922272832091886514449513169828379279053682524666410724214598376755175376414234062693288837970056345296044533377801052240119661498946447367258455429743264362969360249080284025589088099943497930675344436202990360577349022436632394453328792936434948013895660201596440042832949753421313752357819932646375226664760647251904616930417132684109631624537463561500446454281511055561353579537699586216140281430893840505506172298003817612641591828870270155729901181392316504086707729536404234672588312780800248262998560297997036128102965741949759678334071071856844184080271520952084809954204172408104239779168832958893530549795376406921729295517899952999081284924866359436028918146902037679959325797649018024534839769931694573275881228002019848128397138287321285462201939230925886302911627777665496513389306315682363851932163128854159337108640417791337965772825024878774587433278012177460401268137523676038221009786809802693485876648093182368553672842441896110106035274738423876172552002154002371567451694869184835436882552544334024396300180991310470066880842236349082403419080572302495341682967389028352387090387714180137730624798888013409353459082556772023061423186582851964452950677085777505137705380386140489710094334170232259184565420858550590774229779750309922994189001740683936372390370300153636769768405491197724840132652034481620401395426450448564519817807862856513283940853401334530006549901161483865653823621505491456574993211433802453997143745164734366812724447576105973008516721515523819898588773559776257479769771642503514015524139561839452844735784505241973026201447603920731398000675604837918369396495474983327690317892970043144231428824678389304342538425293808157760386704147151969614208326612023212738294116836859318321324782888623864077355543687503726371889321960280516768288512980896832042751822725471365388694488469028252804542058540566062700636074442127875529512061239098432142785414078377674279886391478136188346321296892828903027830109498839355949567862243894980541968140073695060525464142823871219377008155677859833443560657384425821334135992847512420335224381865692549307496244402973978345542248317807127440592339156211637447113812351421612874943480607586358883761082653915458839332035004292543112384707275701208585804587268274607857461191635187317723744081128048884285158801472308047308364864239142166456244625308381978560839118177477994839210438198496016544133089774150068836962368111256279591013486043196911187624038535715552422518151718213535480615370135877410458429356502974865574966557959467725317107128382857397063431824248680366610128171249920707092880476465121463955976728306217627394948452859760867517934710539455946795830421663428224746182088727814624330937965248962235293989032250991043904532839470071439135556118462388368828440269740146488006043220798376578912842438332427479089157053591471930514639763528957693010306872677065726135426010837417934015922426115103747559506845086763551218590867902845205417292192303139715690911433124008420334475715223172364038630204735822526403032448698607739206029329465701271957335966999802776894659387537574184920178317671642215439149401136546133892133973151196637623561675181257922585502954623777457630732905873460134431802451767730469144464308491451190789559732447446740765730138280765306470020985445624955043319905638695462389540044502516418008997821238576722375368073507052055716748143883582156140132959849404529577222868164501252407319646963518362649819493498149324280851500803494861537686516507076864077479623589363567827251529461106858143634635815762260756112557870098771119986089852257193593735376085409264061870818026497242667745394361284193257543334827869911542653217700271064615356287612358493026660248452947923260998192199669648860527495832321744450297394737861535443653496303131120201269832584054760191530869060647823738344992898364049973489702870342712729930052288265845139344402303545366892964905827510060191058157362670902241002239993351090576635951317454235369389546715842154341862960534633094602181635343280444465232481840945951136169348077840692712912331684830478934127893325670340727708450842093703225774256581656960260852005928412107526688692908958790346008327261197734236288710812423387856109815463972544592676886114311711536365736156996616321464741168179399909628471721034114450376981506899826728732944561450264596027586031266383760604837395321624921467619614733911181727196181347248847281654034419589617000204518352628271853277638845017987646644232369131241224237972404735628940324467662364739478899283700394556721629258688385613392506158785587746436473359153502656146658260905492300694617586663543518639153508300216722771904641912261595336611826680919545867398377545980016095200296938315711776336772762444428037460341859386802791444630948154457425653517359309056628199398962078135326008103542709880910432919402020562180804834658645256798765793145806956647690555594030935466608077971788245970431926131199936250980642454620887629006458648661123780675935146870912490639029780596589437539606921451602742003155729559465230793966597825559123418372517706827993551556268801105446919095620570799779317243015563981505117783592477629060508445024856012824744580712461924516555475382610575773263727575162549506044838238052111594722758069457089654176616935636037358980482029298146206287902870860252827777058679240384428671954368188191110477033376472446198490544655478228425244150299946718812644274267377585963258682954111808690756061533912424847373454989423696132096298929703899137932497435253474853069831583290146445902984562938304567022484980321098426745825308017887044366332363570120667513849581005229126773536722855008269463706544598871867429846537550286969950837236179170328239776775646023017443470049537964624403111679686562922669369198096739609476418577850028145420576094690409562867653496350222802035482713834072846141011008367838000890868485231774495593011351601402871808039064026405445938184375907465588206651658247806746896198825707290435757518888996615037109217300942773376628020125829165959698294200584928967089401917331398455571882623032757343614699467368956363718225925975261502319941666172521311056456963675576257942748387290690223322234158913657336804689732753501732976127431139305983778768159621101549584221199972594194668173527479843429027039149736488143316823675403393694589429839221529473654904162889751851349375425995985941019412540005652383886871397962542631041515499022164170221212701410854901371801805457272756418878027711851982084719869807628800273272926467048557613270519617991075706945566929275574705202979027970389706874524131968232912811064923330523340673533906736777027402332838954510228669865467820801972938315659682622825452685755306522984915081669963627246438431053114816862544601671403822929592737267557387706747457795535727897787066448985101288488945141069000609223333876946105187768731164361952987919216380534346502570461059290602755338271069396752588771334681112923216602502266565370768142507373035693029249480379858712474971246712233664432724659927582891911413574593205399060513573933619004326561150474659363084270968590809137684749456114111330570624322429715838354143562390696932190717477756550428038850745865236095026110101254280537800428848444662049309367783955899673467403109116109180032941780925716481180347477660258282657749577686777532456040163149789436933598186942530462186507958485667388723137149302201691306808480248353997341505729531001221637627724972077902928780112177996831792035368689440971385863569900202667295849116813890096622716870637480782578135222286047302947154927320720719122907312817526314675911078413762176364818922083515304425517194600277103625722220783611212187287923569862406440239128216523312593459415990917787108983904322176055180098108938271980836322670915931105693231489041097718784405955625537886621259316630190368221130306494027555669582447601063908248718617633363469035523509918602401783556081990813790743577714730032118410586695085397694064412790599905527164789985826995313756117225185975173257305659245842120141728088236988369650699759586263479122968508133169729078574450757370264318410881141421546564252919891849675454776007025320215107993612651775845883806795035398899756484708567223370118368208138828456263080009233357432085250181741320680704085531704275188474263938658805465514378516741331137990266243030111557296025122381905891822715285751506560163999269497587958377492794121073105068286331828881708985624292530500463729685679348009366293964426694692960320308885818974456610690169324571700927138956576115367080756282472383518071119266590648178528212201646272010761850501202733532118371762194781221314352988942772123762721958125506190830066588790745987745561622272856048411880124059542444068711390868037576056896395942485678711651586124699505175139385672664617527674126481272498051737402350869908254773722408043954693831010376275639849827073832050682422375654974901389460280155117644574542180725378751915297549465548374851556920720173321983219952391143875010473300765017083254292186473690371386380656733408790168914567112488818030862222425854498815080036035267816422043946932938732737193324994904907318407457615981828038488390647527845046904834958332349244613027750280585832945349692633160219931273368348265628481056667291336326514094062450109105869920263498793387140308254330958415230877988306343733628885348356512159260314765850803224300705674846263157968970628817930469731617298723228418770524520434024433999434309644026860528087467229366448403264133095521578413486561878947377888861031915398072028729127672628171930299053461180627782119356981090543887300415183228202417488225413861476466310928470522807558094870217704322895595852626173432769134110622098361768880169693188738047195198656404941059019079687939287229470550818234322160125748902025594198996996776867526344795951886201587441325778947788200197631330196453852905210837216449670755656033090837491774799055594885116885870943280669224981850981074544150668846418309132104843448365748245746599989363259352052531992525623283538897698433873750084400547418663238483400271458840606391161550399288024534462805222196845146857842708273929860621025862149476957611803946457974375050644923101969224756973150805652671213166973669001138239479797711955755866900162987236732295089382887635750446062485762101099881395280881056509034905896348371761123813371111894166542644584877540261448412375758143974971771678445950725650674645059611760383379473657760886388238119746191233528410248025260297131545593549010257865677849799232624487132381167260064489021514021268563504889764381519039823069680589070928153298333522227992818779713480273690582451491635126912780427779887128180823623405833694866033262321709785419502373843379503485814131981768736489306069121589075490543129637561262556367898743217506904421505239030741292371643888015281420224110270666343207565812539816807980307671779903756433532224055714497321223803032751857109589885434617173559924712192548988523491250955108413103837603706288496719815498245197557394724613420696306295217723156191105787388534533244139402625059297198820929156046226647731810144647310355571634457010517535930029479340632264076520929335636313534354919374835573910309239261741492177250352542505731812807968170546081666573563707729484184345025476666932224594414985171271941103707834672136107901023855923500929156364721600493352364860970043549154571731198100704634383952648627874110975755867836385916273843390311130582407222081347784594656963625465461480568103905468854756814127815367976827171169427547931453210617700442620943938859994200294234651949845357909520268331766183759064745335229575940560614169322942984087385994638636461930438132937136091082251099794523346621974348269948660100592666259893805957009627361555619348721814122747024252739652597328779915349892890464181229995823948978759533611763963341379992390068655231466461291961019044387228730672414215247308979675130294066700179089904682465114241835887246357168874287256813071204394087568298784132116169403587341998199444982352131182894744938745055359648016006656578237611071199133063799252807050877225455237873053236661392022304454243485976562589665254771277859707036829172126070847532870601758864718050134477673213579065123692431625255622995224946032314221667169133898177059972699406887346147626053953583866743111014064978097261363749563232364377001873453960838369000619669976033957782689930300864598550479133106658715392449867393022361582485923945471543396412741921079237556454726960302105621786235767171680562037887511767573930613346136883259259393057294091941141632726582372587230401529311638575335232667782320051573877099879151784957085666626189025783928920079622690530739577545971838649462336870978620835186691985142935346025549699695224035766555046584198449704986220182096695028986556935654978549072102139051053097450789241446181668406072765762149073322705442350419995108186168321615462210229054938894495756630844202796037598267911466340095601202320961574403405256182596224362978127145658362544300159863332849040120601029025568951628501305124701803998290257835681836162939815601560771525104398518835415761063112867108124012930394217131095680624132024104061122691250668957550720790814032102027224492580399890438015721367706813760567478957823608344485947188122026271602387465529124303047885132561924790506151063376731422735663273479122008299965088912611047230923730769552549628502048686543153376529454923920390886714055773470234908099103927127369105512822956950264887507267042824398603798264227603949497512017121402556699636375254047591581009027094638430208176768576555892421858372174351116888647881944313745814153374024709641220434783732322586416018231777937941740760843959724323338043805445997002737329318500865528327704599036529454137113947990178465171128148211442813311511687639906330562172233914588190929666342534295774600700861355029068605203552717446645833794483978153267172829372488526786777056565034245461424878476725588470118302769639728317243050992366525360600540823727943908350818020385029917400510414741994684858685955719464368036459092266043537802560515067928790422407757445699363928760065313022375293148915125136012400303683192546112878584736397207851742577128162589864427495764563571403148802762136472630112373011282439287993815327971734060361831774577731828725705660253919457178930045901268335344095863941273057578561825749779016889770566710252776953950375121471058731061016968466461362617357081690734580386372867105750291751243724109894728877398753568199392377662493961564541960919778021592596157261436876799840881809561617516524726770774511996037663241489201883598507086562784961238620863575517911399639005434615611179166486706900951265853805592338520064660792017042443609908119757275810517595865682183229905233885274767490729534524217647975053461924095643577524111654364582554175562794192031553323109501109177202738705933256156398306446069450237010773163461359817124759436150894396375994891723602803452538306407137195209705889326000969987159402306380267471738616135509591178113579970942385432691251259040140373425512977592054490192446465305165760351619880291220228795881491207190979331071936220684872629256877928447081901555816813637957987013916767394530078955736815365741592372314803446577015272499934461271372891104218858717760839408317101851537901270497403957673095882029525831978051318947623785523825191780300989131668171592649048552160360857958561804930456457882297368526732725140140961271836905351134356999555145916959642802030588254966507911409549713731304560311449306915315430525090921082900042798707635855641628808162394414758803700968594054925012831529664294788670731951940727047593615642757485245418526270294268103744821306112991388563505149371642989700841714611246578701002356840448732913234019034065092458043837470678009927263144952471143622360856803022319140425236167965449144003539407196847839704427847091054811096272670331104125417953413378176347180397816473937848309743013671222456627709815812059850705458025314854920244596891298676891432252834933657144631849353973748316739512772036900511908869189890878885369705499488130916886441537547433134015802772637724160268722010417577945098542727206623321310387864458024419439556908183235414008699080688127212970468207957285978694419392535475993361837872905210345466481081182731733749595351929308649323513252046447742851223388376618037423187552489159183145003419498567952119785267279509705750539635612211197172986076503221359215040587037575794121454702995858728445354881276565361748035165503483902645191836837237223267309611176224102298656046363187032147240787541204618795141121912895320307582061975772603054105955858772663176857719006956502170377383355362898428225879605282300280887601712959175785526735935442327798844035073618621584259000059348817182646117747739897438772603375467341228644578780195565740215124750903003500140227854615933953131345680565228813591188639429729005300267303143244008965011789374383549632596905960561965765303312291749657832375939569642001635770220496856177977489019353394583414150751824473507257914117100841086195066648250427722748326980889284116399106336525173952693857736581625274798456172328965809920987003357471013958626624359426448650240256098973742469193678010079783328762964789075608701403204884622358348582898363498434711108527728032177186033906317719619807207875861426166266714972246533703654034448674539475438166442908974201594036968259139264388266127772434909161555818157626556718945035288461374581277997646505747961462661833657706296870899531452141800919654280976508565116767159840866224572128591545371743554187650642454977535133953469822739674386745430007747057578723461331351202496892622074526418382382349380145036652454711489257264169659840692429698196968193549046317112605823356575244754555994442560349088826465674490946152943013373539134309431239339125603437958385364243920208513839045543865401183348774995417697027205196353340917798849353549601640470608081798484715094015649689225394735651510941163338901289726276899336592220360623785248245389305589377774661134945918778633152990954191360381854806465868021532887324162207977673599856359769310082314873949403246710906649739769504035737493262589763150427442525968072352923689116593460864075572025628422295472155961476204690950079165971797534950130169992020354905860219199767728585664770731759337272112630686294827491007924238575835343995238430105552293077848048848913993852382862691581697195208135474120207321332561891971373065854575130932504497081367190306799441056211091267188699348693851987826960236149806293480639785447922353465370363340193822629052419612982083609086683296461715703132665598973415708864876222719380750462723522750138346652366578995227503518852175875254119899388380351194555264333831590933030573498609341834404654723285788375703814773178533291728961872000882655035129789377174801310735116192034015287174260639202028883234346168814612647928757003875728515027360347046446200344214991488020298544110678292373978993823061763791236443493616526998610280298647731494614953862854466485064602292369984658748211039344300938844371558554427932377713551918805724098422717480401413086424814314375402037919511594087891975153077210636577781984607580358801489576379909752383672719220235655273797512227369314100545831586879676247899328763724749113930716253911593541031382497249089290244692560731940421863138538598687891258559609259370489553318370096956258527316731751007650120038871098817048168456340160608337459286093785576932015509416236732394636811658711293343027646197206336249460824301980594550246111733245837609916382869912593485043519162226930622760219762246223922749409019463929368980275309107196859310458195707022508928495579244966938534161544988105565858111319782340361193804810383743266787283315644782184850557544498796758562018733019241619638457117762568447035164871525526825691191527118342239786154866941594834493235024831521374275941748586173616685608877238141844366681772330357759361654122630171832092948728156297864851483689975212480748931477909466971332694512809069139655324240516091263103821191595260871281529324654834758639422415974656197116017376163833836702073379135187612542753228387592000433257828724444945243929277952313359683941981421887444448382179946501058582081158472433509883244518473686295318621316963855774367058360849194047859312638445040698702433236319579266715732823627266234333618799245980634235512711026258171725847834302951935672592738815458974557559308363279937715983181058033888245623347968158874537354798333579910254302381387841449116082780747502191753971127777024132983833031948351584551615057312369708461743297940499864567983791790840927722134623844076378050133201290462558003450631036553537202010088355750420787963901591218759850212920629790865129419676183839931928891698675234271925258355498888163301305569748652046007497054547998730432526865868206184192787926278449641981631471741357949483536778951224330146142122402100038063105231341639111730551659876450179439920768104094220770229677347659770795068213422305858674800654668621659162922882792710977928268447782947201031033161613393464620392357398999603771494105563949192194019882287565352161758936953891032175967618547527191792377578431951235593722567566410775494793743062502932072784181313900365138459364414887022643069312339197299055301507992982061428877662200922771058294258923297604198680420192030981487583577685746240683734688712616378900540484905848112362975545311716031092768405191585918913454861640472233688126086013848425221622999164564777006959333266898151137989842870080575038469954965478257440766723831755807367475254409589616802779737702861747511794458638881076530615414455805136637474629874655187838796929458934686670145138855654432600296545348960458813330205429114274834693213847051125148927248798234201615190889995301640523262992136554638123595862268878265273571296498763367806132335758728439399037358468359078581455120378725463781755027679691807301256294828048770488421704327103533787126803143469224920902378628174395876294957166489140676992767010959329111940977696827280344924445452111160546219773799781042818929286260772014206656453555524058484354303682037026370070240805171248111367236687214092753426988108430081283781866411749254399374866212375330153932714019188095916620715671069421412421594251243176623992232555091027550772191965607801766325011116204217844028044568055622562591490182099651313838071039404555770911431759599969322581907353662406214210631927109658644879230682433462761577589616850582700213816421489666128395819332956785742442426387169929991736276911938306327844828130028039195608127860910066669406378758141539433136156922812928030648056444238881119356742152892875271914698676005812887706472114569825848310856924597901141665298664443017344603559612778300766358328527403422589087958780406639945401908817612159837842813089720998843632469921760588993552808537662202417840438471717974853402263829731731138930727315864418813870485585246974718052831184162071583791261780844991621303081916287505993861228632516180452604918379230039800689043735522640413687398623643255320248067110848148503603049094528777590534077472109015085230887874654865214711999656994875908927415164362601227187340423717472312754183624550210219826100932173413776774543354838765063946494611386836281792956548712511453935129461847406348818597560184036008968631355139647298024827996862860003535516667216178742977954756865550290111306221809013645120879710423546224243420899911267194794633545359757575839395380883134566967795075405582592959401536573773736253543659081049974169154769922311441638651197633259057865871940074901049662155608091370597542174850608743729914898180511019770325438656187855454970821133631930845468827122661464785800773399086142661300116163788401165019205504138511823585730803068744140970499583567010538135308020213056180998761409374080232962120488131129032927010930443261868409547532931000218987581997519239695065428835637788651267665579647926680103333340000732339224660359659549442808483199719541798651492618165148108261935954798665379176989607626218065721531990616899347818247481812587208257005484810381654435898832320916254877281510622848504083177224346874690364987932854610822715808735583807230026385493991820607290423953921463495235675788104070032476892722891822940453719246280574697949067063638491256562625564644744468791996601201975601938041494063353617485446363348051956938666660343054434057679616536681773657425828474204632793314886178679181154948998548139063831752472545763052640693456549899998324518550656043396168227858821374256415136570067759045897812534327655237225655064526199744367514337036832397164017266784426520702442452262298679670436779473509155472930607682935853044034820042825908201225466342789949798185422721061300767152082691855684915212904731010105488140128787485279810017071443121451234850524751539866429994512403357196048006011880268944230423398321536815440466101917653913266994000643794775836941837631190460784527924369722887725520717550209751487829041672444954854166046027447672308258156706477084778152648909914972634064742840147137093850608335382300472628094227009991848037587503109671973048774920129523605082261544499044225771500630894270999852924173661711024394592960704867904759074917100107720132264667281997362043530017072906761082293743896254034778478922056278440891442930859354194770605405216529280427951124107585073723034488187404687269669393807603057950370870695165620107019328092895054307414368224805239487155800054946901080430001594908362798992260374019286907804065244349673114759401886422318803574940332685642882139240104731717028092131352788714922061889982065266366154248043020863590686052108189531939026222778540946189986498390439712925936337678185561297968996587331869564090247836714153120972017008761926239690748039138567091350146605643469010775797350372951455646100137718486402734470864293824334247189707575480666291878219147741049372730546815906201216485946305944470817686924851180888338552537281931603457767953678298422275181917537632679639799431638661515622293975464994720947063827611055813437829745665914129210772744255058539087185990161574985026957397673095721647909885823962663081488452308721219622597578792329010475056402375002429320735198283079459186252238739013482532178961416958293273758168175044927705655879760383302980057384363309231204455444289499072804869459247364485693216082776027986204798339241848625900412856917118584368135469829765906906640237109149345636285283153400570109326445128254609517884088370477788917621825633931524181591672384727385619033694606920481666028553823162668009722796879179176987680828246122161816576853103227058187795448845634518621159310948562632870238014620362944974713428991173098758396770567345715715482398802439427666393159615992498011972985413256684116226339221500090184814884898865115591647023753964945786385373428644809570873799685410998333512230564821426803802237183448015070868420815003697152628775490492492415764559722012515816460730337081832981228865822188590270809384547193960497337035155885957553111124311115772411688979825260299789536720434965593037020540539213617573706785796215949813228384945592919888361666087681627660395114593354048221489942935068184750163345950852013049276496606479222562085297445891711766829357732016537393768518791384988429528978570092604639822163603169813204889347473047370630751179224904048574238356432707077087616153524683379924341022736719201573735622420390788414513172881563175055536147448116714609074435564101559044613273094902412155526311713281014911580717964517573682504487284755487774717126468798597006146337020539239316963751144763973135889744095150030511794862149007159765345488150940428651448363188712300553649957177382530576126113179523911293033743566376086531905664237663076508802702343685406143736370942430423860171995262651536305919107231036063819144329689165864717484659220089637616894138814832795637530028240360458765530572702215551788836211252432762363642849166354305815325337913526011895161707200410365708965161652971505596662011176112678804962097779668564671971765392528579623304616701472689598380876432427138044122627411066848370111908161211856735373968948587235595204527924798985451804808344950667192316967343372606846903797415414171489806239018572889508033113350394543911544325875533986473675182630930248765367768116921711775084576262478200394352665525455591002012427764261295584347569359968121435852821344559320301974849855626470850003965049308851244802178967297841613065824126027852776340539131548820200607643129961454258894822039879202278915862697832383252902086754683126258832744487220235003625108042712815821988247109693857250861739028172138902634774589602715464626473294821164225094528366133740946984241317090972082385176619695248025255088274425487228224599161604987575529590275784716955668761735235408572215995935368593390801419636226748689932240532761341992218436333641998469360336901772480546062224030272173290221365356822204883285734815368848412195068911905862300785554733400502481153545043382008953129753843368495423439245243477734225435109009523532092878713450406953682988179960290189200808294899563592075597862099058365196844952196847324694748116542309267486526198523989002954987112963671848652418015638830032155727507589438328491564446551498007302269377347630155097701964828734995243097323579794322501792531884755684005175278533794641067144410859050496644787948598047516915393351406828984548487654371606667119426212766746549740393102739553966532528273968991745070415888882587710444848917380999878723934475605575844584197415623731438005553499578131604521499801015690916816544226028552982689968611477672293101654432106480527360389370056369824310016097421467436756178480809281615013430934056466430672998336147494385019580541792925089597569586822749049939917669787326606227189493281622554138044835039372747052291593843374742766932629149990815820903318906071478739815523236171644265301299740064016108044452791022828470025034669082232567586058961246065066519049655656482649760937407681270713477731600657261685023894535380051982293805243483419187816666419140094659127270276253663631361999677093942492269246109134578768070870713912671728134765420505708020740126187953101781446110620711649920192014936836849430969733116780044995278404872463156945499436292276924919273553910094945123811550546694804950017803385367470632674262575446372218932044973624535388301794192596641568699795418982697929441955894439902516184744945718204407486195273843040021510158085692957320395537532296598463992697270187582213949249090278921172083664968903382038720903642558929903038601311862570356801063648902349150448830219452813673738225511160917476440558050857140359979985181974193474498992006285987551393295828330546316309936827556381249254760519961480940925504496267396148662817887923620869099649222707224349960186409220876832465523028860336100645657831627096161139034833459353003512544006697000771523299402309203111147015406180346475947940026815163478216931337975203502611377936710339947087352152019302988036917545177728415795371113489821574721622838384621141689096536349804100065242646243265374215919938498941872290343618079157298864733914483210001715380383430921319925273663932851743921163514788335594711844182120134176408114988243400820757372239340730486075110046999356650745514700724420920302297383270005342386265499163530152921058350062061867141511775715388977264899465970782188094660000692284095504029406015387125586492099065541814867028201170988176719382306090929955846518854781130980913990955723833517736601747013739779801939681959626869389479571673220994113119311772799319560605978741228516627548611627610249781296581128040935492850180693049403281130755017271284672283439416260765898869878718640670476306261528986580462989407214366205860898072118647340071853866330756096908039722917449363344638568582661944018833573628968048868149549539118069328306034089250510918456936363632129397052158777708324195857271662396260116778622389163034557451484120000065423038986773754439317944763861031380148713542515245071349402491431345465706572415732078701846327612525030985189742627623762237159454467836500362439274445835700549397718039201270143252772799542075442294834045793131081416654634548776981374951389007184451006867611844476261515825692746373306228626913295237748319018661696306058156535130900817074957398415783408773890785561293563651781196672936440507696507922613615073061714989809659822261061846171279132801744268046901777773401874902369303138999325711070828166101054888481248002794768763830954483528978934776225507704130328403361717094357654841278940799416112574820544046463770477210527927979686410596440524491298720358892720092673822733737346584114087637556529158762855518855855918312199692986818224291741912567990628183396361770275146057931480188221561686122370352845955183270950408229612767144780064195080287834147776860779958379880282165940332051192902541931467983289346260209529321480929150248892760055955734110416268942760463409771170706292261359661951895873324927877062189139899206874492858339400601143573089879666435671285532601178437049055487532755470296968377376850543862039133004366174483202587853330209630468585021864177130798360843491780985127797367116723049018120998139440324649772699215017675158389095799564011803810058761032431386871066003341045191595203018977677400879804785447100587721521185104077816786433253863706462669025729508567896850818493889684247494599953982250489707472039114746564784109112488421114686819463105854968864310754607876953430769659849922273285566999769166778839946496431328498229473425536482534689119660655477098766503604946071550887492452997992457764204613595998328905704232090572140394489603612209692227697766244932691981012329277152621493421382905766071865560135971214358935576135201266755568564563612893312010132141837273955721481173105631549520954886554092610507193344401301043829343242173161823268353932672459862998529930101578751355307926514732383004226489746203167940763706294425738870198715542474182946496230208827201967967240407517616695615574077895061821784421758150651235030649819289878092244757877781670425587743325833595527389385392596884451071674607869394772453826943220400125415593920187052324092108176761374033856450683333345127455813028753918266102984835535863807362659977953552139265170566400993184443150354453770710437433182285928543605892529579392791058748598265769349073919130588826700795414707085638264147274657254611941246468702007941800400431820371247100891692958659882531239358417288320777243518559635039075179086762933136467164957001549233308951211828963256658298792543423555364072364857610614227985917642958928923780787505089140990092781396531950402677015252192299152448839330283640845290540436702792535592127735063719207702753011150282235041627288790277079743316180754699792875427611583982708310456583810112231487889533273956095941111997446349562298927402617460094345707699464574196791779216270036304113479995514053138816815867488795715166272278421090395719524577262498879459098640464865181464265408762704973870783023491928384244692784909276938589207130138777540499963332887820791529204817514022169521400530249467006985228809663335260272625493794618761091893270978091127622646580782693497062708127952361652990158773240832826926594889578034178938405647225884455637222211121357395194193142711596278766502086350530162089993576185543300820877174191031293924254068340947794962352045441318488910364121064071280989276744967687751753360612002724882854043263470038191339417649600958711657143835160718148284670029802310760351835022913834473403225412675895946683407982662946016586095423788025091411943256890694432357432779459045501033078756717601888138354664980088906351916312002500250102021418968553147987294731953510848006184047497417960382507654170719113442323310534562380711734739471682901314939207764700527026249894273486523759122600106657016958020061593027805484199481791177275517326100581631283121516204456806758488996365280125890044025941716126967827864743395433313131618511861833592461452674528982795189067424795874778739442615900097533385325550512018386008480949179046808542031289930895421292583596022042045350265879736386651049625624703136381221797597475075658185817964468289430123729858663163859073758723119614005977018374665387999475173252096555928206169066905694317678637434511380753660859728612548424618906535720791731891211256579725376457007814919662632873404795521354570135257969451974298528826122524910881782767876738350742699601282263240069358089721913918857629905463623765936130245560839233971150100170706116008857083097937625918877627215125206738197036740645200469156979548532041744880100063563030372307297912260615871335938414998081142122776599853869463621029040940620235151916341020052760381167246442446002444032616842247748086117741772493234516730931551178754509178641996351865708279058811459248175169850914654564771724387123540249954699960838930999993133407325089283014394125978275624395635502842519868752696220913853832215634560114053511830386085421997361964877234003697617237890556270738358071587242718441990199698738351890684698888259593240339271782156015481162951185243787439511232899585810198594455459451322051317769760646818171044115776806083683135730766116620778601431452559775282719206855988770215967400112226876423682421514204814545413219649888296654940616419387773591129815033795312918362859353583271559567758200995586819652718859649658920569578634443816557525796533736587836422845902479464240524680519000562124420322767787776443452878220951580616907747769882630947441137961732657017131304830050347462280853517816926661778953317761318508708717902699813413802623048166437123857277418022732034141337597610471784594891670530863691371861700592517315912737834317554243478257347202552055351970964892960687927717651518441035101378067423017399016580089827570176454962607031730530769024668860965373988084330178110640928669731144869391176464429718369972881378269583849008013985160051878372433173493451951000358938191626603387959162009609508959026953473987824357565407605326368454478896773452620925382694236235089499699300151408022601458257706425695655352600990371924412984073525624991963032707218401252192195307904880941369698222707876416390004943507664785675707054980726211136101584435366916812882062354721223569875844746532319567497222452735604147441349359000828744220025645689041112492008811183482169340947502772395620765476113650503016959154286649943362207705244486621659295253544132199466411891402959673724186486804475906563445416677993232716158802837887476546530360551939848442008795549515409051884718757688416235658943767272942374849633270048874141188965756324946935495415679150259424420541296664863938621583948714380999659852522560096761279143761856318517191048052870503241364619609857759937220674061369422098021444039354324387496140617417816034946865193108607815032154443548534484388780434560338056051372175047253577703606891379014337389491504810479348031774553917127762809730935936046338139355047674007043471132047372904797292012141524308812029097659519392778063260317547428868311670036924367764636314846164701100621620175081234496213052741798316343292644604912150716013429708576760486535103178617540706463032353649283737604073020547805516983026688398616128919618696804093126371452468954728240983538260895135002821234781043285622008517429471704344312860065091538510125126418160849661120402927712324643502440095000802344787221988539016348517571890145888490206809981416068990371603861468370391362293556679846773778699288136323778134454274871677815300906243970613020551746652406523305852739873978728848806301503571365667102113755734790307032987288132332510604000522977805514346640692768623487443684756733761485123796630280817885681874173248063662170331631674569839467548827048734029117908666265238291044990334920297306320455994914702528056238925313489322152584639303925297808720468079452521167193509844469953967561155114525858032816178764768175875288448989438124755783967778946148882030656291121785556878015983108510434443708426561870384551817909056746622748821606179413716642927674932271370008506311123217342537271873386717494052489136891577003093258553306314870452068423120136252644545852775612256915794529868915203703052868981265196500084313819728312799870821155200429469633505629120538813935491262737875553825206123961140267850595493198624149257530107606745419795801241847958588233429929875143964209792150355078761528330752878527172332687341566070074672293247700740187054596389108655622582899997275943573535194933951139488277049628089171509667979245225566048046698290282604884004662160871239270047737652219113209623768673784945312606831192710689357567514886770133107996536408070060797798921955983147672569483293708532007821241088145401765962858516066502274856420902223469075848885506041370788278300325212496758098687906231742739964805827685899124964876473011470561321382879344485037174350679705187852309612764049024001595597570252812601292817167422384983088971671857472492204009550826360580784039681083886011769754116977206592749806838407085032871625572653659496619596625861250470842091742832623276633912730169178893582003657406358569502868800762662726119334571482107677028843499537565715371145226753862026478948955927850187004961081632997973625306411979209202319316391093448045836706139222227930015308973960213420199604215743931873625742668478257875949000318097692984750281936819635780395692828507295105827530720041696678683958539660134920547212814846435030501327421168019246471037405626100317098713835993491271354792997087461702309707812884999078627166495005066359929021698786949971237189063533390026897857160917188847339140310640344938562816906631525707449835478913434666837587966320914446141661324061617905703173446673834901259898674467179763255772200773347993927854981243646174721269736576149968590351218284619406870191516931818202721917400970064675834593629177969962973470601479625974093492879447704133744587000473390162497627759994841926439993536398246912493325495779924866414796321565857713831762540007434414824374495822167304600126451052804901128272141809243590272443562936009799557647568033220587521012777286387748312240412210052427674127114400298937573938148084558078342429634203655388736094945531515699849395049084728971775092729781218921693318045908766279836370113423464154667177614685701508812007251337700889643264948338302407207562898384309247146744952580347987508554258987812100981729821666080726672297672227742476556566872889173490223732484689881162850080210621132761910553662535665792197840000900002809584494363164201245859633715479512474581894776642615639394681053153052516816120949012436920446410871855946963654434941409342370306432867823231674783075354132546064039514733950171946535497103836137869338543098961007989090956765280259380571093886489498203380708614068893982371506848935027903950419633115135215574298853433013006708408131385910352840648088740477967993967173105488111332136436369977692062498965958046054801349304598683987921222667610829321707861546944339134799997180690668144001327791142883482542679230789495819651936786077746889936658056362960691177248906227335515658527190747311980662909656307974417725685151119533441205593153399285374157028301164955567380898686211973780028591977478790610643796543920280238553247801556887825296297734670285617372828187686907018626642882714124345040186716375397045475072957037016643862975104939991710908129609539450359022217557930038877283368720732504638040860483347426538060129437811834235579301878569877056379696318018368475879693760199367188145339051792647459864798947591816984135052422704941697010461876147097555524127172491210112407102395151874360709949325039296349742861600145022830569143729989365766626857639182303892064609923226682948569347467856868597141340970640576966624403115160388485257267609607484370166636671800397327403733605951400284707355921693907511950349873323954751868552671264980105901019554641349293195852532976457048975316461333878521347797424663487042716021495234146967360818071874643803585154980901953245441338907120975817183376754678630463342283160415179840042049364969099079650831066215115149547768830940816746282747491447645318115543279669027639527699158029329224635439706318117141471032088459494291320078886432369727517326467838037921276414736204590783848644514513826222222899768441608837731626214597129794482700900874500199400391432926458597177457218376576329221683956844587319229946966803847449562385514415560025593881295667058696076022749583724558699986797070059515260898419402285043018572609197783788611782283903381169144022408237522630981484543084478127249851607759684278634391857822074589651956381352565952720461757445415746189750043699821117190710255610898436192520032609447130857434848988735533075625493744150284868457813232641323161625262363262449404102048469352044890479794682619758261774855962563237543390166162768607970255095290534339442235849651344320243424774505607150788886823289153171260366043706628151649732809095401408670649963082593948397409760194258439354553828178191835052229182077549973768736821394592757752104194785268179911810563588707321742285429811284563316200957001301204969833386084167721747834221709851924155784851628110672717463993185149124505023485981845937553389062053509668302473128247167397745340978261994316740927391349171783450406580769476553079095435711065244296834246547479211435370126475910143683530445218490839832794175007527410016265525085126937825708749598069492835559114754839822154912668231722592268773894327167821578696492986863285973934286947386375528306334358381232381773190980843951879273258587842005322038229797087825729907542091671137561365600256419261995816032679353815952275273766703467898127796062889909981546404863569042648702379512682746833354384279484427238552188600976178729913605718339502507808129895093102223647336033733344062093328817518688370415790167705218680036999357645458229193006426216229331931709372189483380223858773240648262190164101962746217552214641718660785725389757395305917705044606376488860502746516846023228009956677186071188261002077732287870578721380055274581097032071504130602140060707446216807471156216100843128495411391084232123467722674838168853229432736752363554347251398548993149429617716089657776818242204230150866640467058613581446883697680152430613864577257421166662127480344834066527367337029032436060327974726923364464721818731840806601290607246859690890473431616546650211066988210809401461074079152550236329504202406561939529725191784171299245191163000229218470239608878435069693431548993190200164763598159857279957975065175057057940122601365841523418491551437187679361136565613668261879369460162852846522747953050141930638735412687933326243874849571841695754289088997684456160622925478030570943840083922669062194986815421861769601157811750354086561382598221002885569113882030742177509452549202835504434683460874006362908755097463923265656037903683638301343247921308481838833974720029947270699035975234248972817070614577972461208498512719853072800776562620333001249254272642403910866293344460803881384850855308470635205135314979074114233061871809173312829561221140468219849169539709785450413286325153154813099167608767202111963630552678447511851554895606291781120243248547707674600156830715152251235446042123590217542555329809343199004331412072578504905408971614622330661421637551831481612995543140073764932563390455759997898933179920822552005378850848062536902706936400610188083192026887303842102495481663674885868557786132446646380295858905466746782254349249771447893663182772398042866835487157028731686550408570016475633387351677287483626634993598609001549417053035437201817150851637346884386275141495863154786412292957927886156987891176095214474912874945860931059321367276949888506529254743677188654393289943975329365535173567206834393057047594795920700181268884450102414571817110417598183161758337762953642060156561414576628128606024353833695689188564772195452109663543599083500894704293958246187765921379995473702244590473126708416827378814960269499880095791381581477423424536089507750861796147604491714232371252678506795820132758138683547426648746856948939602421391529680032477125645403555160766764269657051019233727036375974951192262417626510128736399372295623715223572494289781506288965633145088661358230321087949865727058409512820548256974304939805116687632534089351732632725925857942122969975982260794120160465824544116201501024942138848579469091076862433506079409640097714189801438620877330045159785179273097158314125344408804592616502931536544968018971967636826238622283805843655464514548882300864380578817609921076232092778446338581492535214387053660577908908394216221698581697050915826382368893504043459221174427483288966312929991710767807907797672539119090756251770890088151078988475246756937907647153328067682713123620344590203002180582170931529563293138614854756634153474495539083732538070905948031381480741232833323770937889832301701560591190544772506008634940067989563075568526084736796225301460947710191150101159072318557245834692840158285956960625178220373351481839358252053562164627762877851234443427334248756057908531309839801386500610769381646278622223752263788111375528538751403106516212746164535301871282928938289368861273129108853133404842355779006298019309327626058473510282887277494575918499741151469498633625624716656159471488795715735652933006998481275591236375853103736736732047933121683799376906018989932283921294334087931399554321369310797694428413172416107220024310047267196885011824597158048811835368089198426363174497777111660939647226346635249969183471020586188117739396783513307617722362498223403009802820005038492919500632799479455727473853236338189428476300118147993028620480314925979088944372185305012926604154826107042926509534827554442990264017363717996837211453507847756805070514013328331713448177091228915460146359960427855135325816781768155108351878080255098177835722472719031952466973704699383304093635320878010482569498274518789745187365184392438515246474387309945042526430492661752598511183382947050102259244054124458369536309650088144144462420413545781362262606067635243985052684874167735878664907269100187880760324704344195109869296239773999887035884181471770959793862623547966856530730955938120096940838102501416183878452304182960910526764275282417395749323841649346757230064022279659150590308248158081912288883213974429726657676845597568013267486973370394014709171561881985032871465339671182582875356508468912042591202289833761681263069854618032142396974519507201033124347775298001659394573856493246988317047628236537048008145363504494321622963107294682210199830882948197840076559748988666323182394944962153078977387339645434884806607349599657909061109774587705282178296749048070664028615768456040121144137059750889545657652878790355680181027482759036629196524731999259609325470323830629090235129132073145184860511418351465536807794681343170144089595710523337579727344028135215102362074864444394746107552507290779131077874917991956833895105983538869745240723425328783414120103810563371184813173163414851539825883425800741788695065439061872443603174520517973927513800580856118448582306820949643485707710988497898238446757504694058430321262344075708432892288447060017341799461099692260006037268092682804112757819862193585540606493933573551289447285606484275014123954953301929117520867193973922585786967670808037769774183284685643507190411865143346919166454752108824648621673735149826011513091956483293336186157594946155839694805735108196881149059410839079136292462066174342739781284336908552770534182909225575531089443945092473391424902710417601559220100383492059679533538106737085426245954881799818839484990661293822743945194043156201824609352864414679347317590465258885892779012066434701916567809263550919353941215326918070003269487370801398807196101511100226345082904009861159095941462834828255784907313322619502290201482589627209153024807838154914347032042987925281773318855673553275004742359535435122086141285944605834592252153820882375622418036492429054755286146565738180757141027813559656472823683686446905751349117823608511632683294024393285520776681348655150213032247247367165642411762258751718698277341728050452822022235991761111512540796634820605081229988137328046650452091678756830037143979072573797842184706248392951329388878999768163385932987187291261257290943212331599658140622807902290659189732715982952517698604891422147548916895265801850476365025470989242109360672580776441646595681303508446401826640572569342501034930261788419909922738902290526505637305980754340562429529294489919173116631101110442944301290391759601921078603660053606742864405126212654217598269344667185759951661616876549755617363553266253774702141230271290492629557817167111663503507818783474479009732512782706089853426620544646092417264172350793783431104890586211619570817644084772882947850432683349293493099110074369035425171803487324481182880051424053477986469285930821321756398935536797628869101896964785117341714427207053480673725958661558073045297733073503318488213588024691938948873630033880312380888882712531105930957963923028307764966166446647317779525966448528749434976982062425653146391048043395505689648742956175112242245152125019453577194219098550995248887831206876781070641833437745294140362561666168094018077077300701872443266588320136999125155820884751976193902482445193466583562220997234857582002422196084070971936603446285708200424639038543204648322230752406752998269961084184523425615202479486301308533223111088823583131382744510513606438106567220318477650413638500620664491431846694493043320467599381241059750682764491293722599375866659377219623763719229556404672756645055419676940038990253217380555598653565460425614208116037156832417679102840266532827057492139954842389727780025807963290716428342604218140771206907159897482009280828882224230913245530752384959500711588666265885751654799485472955633120297101932710592494962141536649218543675856084084222274060288498367186882297813142033819711218771665744593446396668086440219404872636644790961055164140606142106557968976021642728913585087527129976321701693282055262096444648276357129901034415628494435900062791580439969970988855799721575934498185775526446067984925493490278540278697277062312186217336840643110653821829279788137770784565070486430743589774251618408566294609642940338408826375379879621928664474370355375682477919441335577352713053053676510995688986896449943436881539237599090558286043853488094027829276723514009763218666392501080115329470140129332191408458264880183282476099488200504139071633819322224497160346473168682562598969258205900077576977973207441884060552960262974811075492231022720324651645804807281296346081140262042092171932604762158157782516772328502542796399449316250306715705778161293400896209996857632499100414040103643699156816317717349772705498779171413901859323580904816647004228623715427716433011093332595398544910626023174921101268365196528810366984343212747529971449942315093621925433162813020132660244239492468719820214621864370109575095335933304021398794819660689802719574979575883505180130523802137369604943865636041034926645316567096282438565471065552224417030972670817700048887560303975421183834902477402528841750891165409450455397594988878705945812844042693453154713600674748554685693088756874621920530046138366053394596856414526760401262077479120740774449670453203197188998823209433477045382623687207822232254029445193481129918886768765582474016178726834579866576883323910629145102678831381560188629943289911981433581829182471193362469389086202754367850931104152491220303699221830244565379247731915271508531004931797094161535167729580704626434269160629974473573299977195476066395580962420881588717932017909329974817326866284822535507201170299929520143641948215513406566169772057002639719600013565669289253555361315586088048142456179983736212140228473686540048369042644773468398311595201181638889038112040950713984334767289754050361385560022449748261154381276962641058338608790333593113034021372477768442716820282074964095268038581443208808995821315278685117216869620588318760150263422507242339591919405202613270938760164350120288895648215051561233531086513134157837248478480641403309528990181272747073314399018440223644576340138082988419152326094163948785195783029012814196123220612701092050174081731221539397406639581407918344019969147653180589223467587586814680946353698026556238637582243534925084651653554261807117920939906516328412569656579451619625832966711601806890506183808998321158667847655317924270390992054083430419544836193009174385605252873200718475448896472655239991934557066123389525341260748535123236889214298097417594250316700840945470061902696422859521203938473558432617668971447533829474415057499783106003136565885629970348522246503526388745253818173980325103724167169327063930170068926286186825811340264401611620625547236894187363356972018164671262973289148366528508764143708282143423045504203397918757021892462670795549026315575582176274219973134111516086677323231625361373917450784567243859459311163587441245165731247224178995547115854797173242660453450983842709307759880706481668480262546424586631237853934705061520348422555435974259227479671977684103966110497529571570142737706094036431918041376334952499576339488741969244319819828399230984252861988959875445547824178815801041258839176413668365422145682014505581813580416849992594490132978276260570747610445998709846572425187029355357716947996556828728805893903971662889166812479860842675181831675080318538467397660981362090972882015489907741640105547941875659383242313102969736225844100037643204612320936426994677442622495543442613630441246945744787928423116113751053687075887104625682505660380042816949623502361504459494678342020969818125733472994163274876750963760187247688567005495759597062123933053221657758479562641003221742450851774377251584891685168189055062646366862225294285768725271347058410870961291247526646218256402281801865239252675604665305711943864713965378376285314088241385860038974384935062714537499854406691459077789872520204725302506190475068139536972839386472369016362670662412690521266424713473564495063118272591318835252545862634508545204445984850470226804984087944969686977164807306461864575592667399228133720868267217663537208973080866402887685571175420413675421455726706029390441957983481058306728652372803476985981375519528659972691385656198248583338713457776618083675062808526401210617580254001662237125244192724377099148818254387285654177678330204832797481730789759138766384614661011674681122389371660844992726483793445915374054177687573626704610494502197045993358824147479331814292120667973822945650202029372028616343522937856365023771685462793411352479677959441649565676014666155411108163909282813951727648632664011332738053345828805678533797205608405541321162901776586575511386226067833949230036264859692176460227957741803529188040824988819662651981155755765891059997625079407997803436165577708871666704005688199920419656403872999599775101785727562503402168557467064867394070943328582819708137809649436488221985636008813909604844330329227480550983355679888093601807464467588299989827465834384877976619649831341183028053300323153462329188712389848369708520981898713527978153786945341124262392084526830271911915387782077863583274261335570100389296582584488579312773190686242751444564324025292157706868909462849079685198960429387859577512418475134184711500435904409213618460942857614304381583194959286087895603401372295224256792228206271117813637480426390957130899428929547631504139375291207505039928859328454831477107994443090219709114815281372795799053764904142630130511764966896123151002039690661464734879165931360046479874086976185537302999639026474812092824581189736692592318226087776657403657590737966417218157640815247451371240857198803582037466129974634558021672187359742631671653765957448730591994820942437392641445828488648242461953125625621099581109613065071197581207556646227593953486422532974856501528289609443396985943112735463329807062905873796716859148480104295266363687366113639006185336276683854405407449371537002515842868158719692257842575957678048381447454670988657081114916468244341510983534488692660386093173482495648869481270515751511813942010956468269012690441649582623013810485522331264089543184851949258551449657912965729393657560535791385907205386251532621929807904720863554397219125549174810671173418881444393430240739369116318630989326950327465339058098827451786028654079228787127005455893702671879754166332042086282473614587403032712880977912904365789558272335976514582973402425398435919541911844748847241150992758023834378418943232684467279044807225962158803413536956609756867471352975430139775677483321364335669422800802346560450046565044245462633872745759173135546046683120519627345746772774685794992852476990451944946104894259164282088312534958799176354068233202367278182902538291005664533513954909746244421941236043738914202003934140185597006175584591958454940249731875245399485510150645716641238288287173160601933869208676778358064366437741633159356051246349784474054988996778251102100746509635222166621669216681770079959987354280038565877309170496280781997111690376619996340473824962696133032674613315140436092876962478076407678779996696817775405828424055218437253707504933436966158160119630317605706136853798683335260329676199165309134493431848069769348306033193691517160418686406130348736850374627489472993550223498717533309655085491656500894064648436690353493084179209074171235199537987110181408296269873085496262056926041226690420407230767199478890305861178579512954763268506210506631739826656081476297081002663722656115134089811824619545216918076179041118409541161647698367835259777758780833437692594723446462967094765646640510781943594714504869097805530256517687560297092804288346693992357455627789505034401388897631297877759611187164126345790093939168130615289592701855957905324618526507307453713850443424114616874365307484460839376646717408181841090514035856250269492341397383782475890405408259720698096761195706191049163919078512391828753335403337859474000885128053823271825297935105598653049707576362029363059982110614738968853252760353342074194441885973388419267847887473559413078588716550486056093024186483147211195244688671623134202355160373704620024733887704782827435743673686633391079266681289832152230261534367594453553574597173146004644203653415572796346552667871296581644300010995793579459468708117493655492894613188243293975052918426978677142452561880798935378937924642485494581871432847346786192429621847099685258277819015270844473650529983689465194906099118039030423979055334778250062659207333770004777519921048206430864201858810327284473621672747213914656013727594631199078541995345636947699444739925591695620141477514426445555971375388029657614553340045145505219852172532681424909693613785198914657285869843151845296844924660642491082689402258173968369166281551200823814741629173729658063391011702786400200376184687227602967903187920637865066421003964868724137510512945909529824914279697225166689559033469465785642150377804809007631102032512256608962850786691540390565660082365104643509848254042740488549495870152990579960938243793801797244956386434476210046210013282183978162319611969011156001795889021052644023931744168839478061659364681684584990282544665841243864366307719135462174621317720643738776589273161662592766742469148762310669233721000679371464258617582672177373082455464307203602449914131817681891665401239041084975559972180555498658018781756586065339936760590262940018353139757821327403865479713663087061974140396300039142751784184615019117316291676975757950257995399965854983991666787041144694176635156118709821065133217500345721277499934647134845122318137737289410252088708432985983099126933246519207639287417414209597946344686655197137663323277831384605158820488920260606550833857005316315572799095961165653479941040454197021832953521341243727791454289428246684161834003841753240513164741227873430927831105229777033691871606384892816898337526008727971611902579497121178928936639337363844565052578295418547076853051453593778691406963703573033089596709327254028576892680126648558896897681816496383855933724373776062217395598190299231654814200322470098662753817197805561440743231932025354767123705989320438888590542082230333208903291266614659415510304176147283455259251146406351942506595144743997105690803521847679353373095445889018888279155365851710381017093820657352257795369845359063356670937009843952267562978798551043336059345128378239061995055509462059241625663494261321974295466686873802866236080963111902960610050915125626039419631350058058964042418590800775364112182866774781559818090932075113275727624362764358883033970741383131096904010320708264654128326278577394304967938186410281310011639289931122666163662883070132435460012194217593775345620751730181412854760010157542190037691078632637134614585229343338519242164556137778776436772194945369755673410473592333149357335647173496772061617021531828731931957959272623370134620443777223193896801030369178515206364521356430034251723877452343063526017325017334410837993786646827244862620368481434931244657953085042159688295059894671507195201456426645239324814495390979668123293208367065504228649134185588151197482148259404147678524373021736553603085173912747215775108004693789836826540331856180527180884805059662120949807879801079697074094460762046889524464489470807443349333350946197964783862477603644727840161131564232774495265979408375303851433904700202161230346644357447218844688299447882278090651612442473511882959298703881049639396102633068379171875955601885047318976411464959913688056960589174320461272929315448620172090735490067515737465264909025533545915176634916046649459967966025084816284465057025786107777088306142575735243561418547178582834020773466313221664619401179786831945080930977805198617618726810632696105796348364531315400794261576504890542827313579025513515534446077565163792509892796338288119761915425603751893075698611491287178512891989332152258887192603433754049063009003348016356467277619292037050997913318625631564444070848844466877214083682990833694951353853953966543849708552351719439803272220206475329838167050710065163096929701207135820365901713525017137154593244755248247770127202895454033719080108398834020633456655202341415070302772035268281945813491556807638894721455058920011228682044469194119650003171749926971634000482091541463557782852990550602704913108790638742967269315479361793178069109213256778773214612022313957690635686691925862938147397839509889375113461387617235915147479583405168894425318734383370125241688588839794667903186776466647133906150682307578329937612236880935199118850950113408669710408179551079172414534417709921897627837658973298855730642648857586938634445293914286525296705768790205889436273033428416938485141742173133347451318768636176246470540737648188124484720695605040122582245049297378715934395273658915987033106423198567406633322007188788238186624331922201634913445740290229018960039457853764482459292963260808695446144790206305731409972816215350368408552307003864659671657594936949104820381770257325697789976586972464966622241644134764784990842338915365215308688947463701807228808198186446045246320659016252900815834151184769780319418368382407412315273093461943193018024585405273126022294184738530729412179658655227681417212782248217534561145273827978802767272298176948738717206669644699767844451427582313458988844744296525934422262137146979137340753697579273332206034982246955342006422805586828796192811931906362743495268087561279381229267889063651561230054723747021607482525354945039747736538440527981796432853859220224631182843832234238771214039663374171744062968967164369762554034943479917011086932113474059143417099680737937697980032981201949842036680189480962670746045685052188071721720461909037932509519761994006016238023599784276923429514013729920077563222309880582516083179200769371524223802841012983773090952820423488129248619338985825209035292157458211737494619310551438476451162868917181908189412523550259715199523933318946258500708855198293340605214368390151691632013117384345611094712668588335635777365017744434185207463866615371485316073904060325770767698665658054116202151678878561735484587328154372694646909849149332604610601400990705356502996142670430744457291706335057105904391245733586741497385613967651468436156393347660380355491687395271674207850743205160660336401175141677611907558124982831440261456724943646559379357292417547982977604173610693639188476953134152175988493459197842179559214204123986120844953630142881656415153932701750231208936301158305204867359953414460595010011372374679945576095374338855281185951780567833014953750876856006188498223693115296414544128452731567577545722887000855161272666876182772089792621380265320039339450271091863069019940186362294120730155866165541740521775882203874878168870164950685683419828713727151802436166325809111329594751790109782208030768165518144337369797918967074681147573597066502727680709154015747961917186617296582317350591205407082772868751073464339228067133401351287942003043465049659065081388775394114771406832364413462049632079135733426325706392116559919976845778030695271088914781248464551186456805572815245905961528213420961194770530044078783344960603597889483306748749391558434946574575940356423399164962912844209893978359644092443767984824928407045998863050760225853118642659513695977818387074245534200944740405850476911558311160938663848484830054688873262673277573402180191926915520248677113558132543087665655126965581821713066305173912049762133684245896641137201639305959892491067731506456645468652034301014248930677859384722898930240996980067525979297000274252820749992139946759804073055973883448304428430003490988216979865232627762941591253866370788678713929753481955247244808900741536486735599513550343262791651527188960390355082031478647279419038581228698408670927649315632631084993850601982607069619208782951612085501554304187412765337557690787361881295424619954864870307654823228648992967894234959238367072441817178303599227811844418286527032430813859880398562562498079426296115511917662521057234122004575640675079617456102440865387108581784591514346410687221859368723294099036091585806558790295295539381032662518942112197275322620338419863320423257404253827562942439923591156385095110289466192161166971993342371261256143646735722953699753280419332332116983240695257840400272053637927677829457016606436211712653479112634931202669403185442746548848342984272357465296884916435137523203119107653840965808272347966817278477652218156533744483151388899856016715354066437106334472786999021947809490492146024663261404828522716887090346833561870473754117364642043760963923117714678870493799748199211438665719442883312885178673741471519727646863826869312619712932897018908821907335988307197195471891124764585012128122821648524124812074619189046299512560132033594331517008824823916949161484410564527203239204656742339529745262565775045989265183595938147417964840968363818230597527194720701400651590136814447469187192152297166565650631003921167966553501055730872876395987317898488001731008484675233545454658557505731118358832111483582588045573919716540703362117478068967112302195098992618375904991839456796363104380514277158702732200498219908333099824283692969787992066533199182803104816372444956060577385590256871703301016839400383184626721134997155518455603082706287198868201621307505340483196107607850318707629192735190897969679209260915504146595292372335959720807840041128810656847612964154176088404739430177573394313471383096433142092540139741394839539725919757132556101987307976568124575490940950299099641780944660803991300322331023360620608918155954924492526478520470753845448889059233522117843852132384080397072731514042474131437205621469849372219224812378159729273638659967286689597391923629464103477609648799727764340172817659432076084463337752069043304484158674250924723474960239184417245977662025942542210653158955698105573602223706985530207319126311923030361335054266566175426751118938511850144800581112553027641434393021875202771825646978511779313740974782513114724513145838824057662973924411431371129432447582503283143742951425997644802086331845160385055468784366879439991581783517791007234307743684197672017373645153529292865155521393534057730920731618181534989450514431430712092821848952194520431089344861344544773804309347042618631166165706791838946178631866264098291855536779119546932096131805696224323676079387616851120130211094422728423969467503452182695453967939852820119313155952369716480449324712473682815851109583260935980987116658105406182991663470193468350931278720061657656917050943733388047921957225727143090244386242669294039973225196405763859304929509942580262978624480974774637206905124876105394189946730801778208464982226404986076204572281768191790926590194200787679921608949566942777845886577342370215974891976918947219982207542371958073179587591241335144862126348865608172105099045213971072313171605300372317414618495776723941060504270659755625908795417148139669957613518706234722685345695405949570568542533369123355996107955534388691440329997542484096230682851091697077514763971383621890606566755254750978262604446015545511439273561085917962001261709585334680873229856759556212570643338152554440271176490568426253918892132854879985993629089668637700130309848407808120172251276861035372403533823914560006199727041698344558580609033850322241391013083442400093766353162495980213277285716667136188021402575215322142937853057999739064749420823297870721055196523616058845592244835208428584134432726691471205079748351505543217628298513503379658967567905403587567144016730703714276944047064962447423878649050112294308606438263008524487839754417853491358798097529736100967262957925760596235470847781811322699505909480220177255004482711160925972281345700854372256799251198172174799963977847924965433726856328491141996359085488380655446674135091047840904291258958954400509046670981581715402765898774667684362682129172983517120071353155723507573515659019521377688398720321015776176067644255155038482223635936126820639639262398722330923388473831936640778167034952212375127502717895887008043753116508733201089485396171041035298152214869200807257061910540956986549702395382013462176079301818360912227548286721094257017593390156569010108401815304399087227266482708473093848789179845848483283447612557297391674640566855496318494290600278921341633011126677970044096858670531982569950854585693559597836838679537399875898026264930000885448977941832696520940986022111418980112557845264702503968854852842855503236602566987529533165096537846086854362520349309375372417589170039856477572744496260226200825439162377643655595908691278236964705820223846420892062639754280190951673615600300163097138812894357375885762420185829658829945478004338606865040559595898452309552215519875138198104854694592106004752158586731802343158748850261076087213152843312198751961822966839829523509663381126647188335623396191641296167442951470520151813564714965497680739539928880386118903460290773586484884964365788674078236506915098444697844380800074365150861581675907705893755811835989903834062134791611124264536790516431946316841523122345282462882730505398080083810697218775568798978180851953471300355401242396657474868470498722279434219281133087960158102111441003349204128108364037027942772803571216619745353173609972392679983890958461317899763603977631154656635095104077172586096171132243694209794838405179976293574210840161420316381189559503644377216184988520693546789090212797788364616232410070162369194618859513401220268441466759759438002535134503695742455439504698940109606899536033458647267274876744337602899373101387596662880380576902515044520822434715106068022872836985658699575262032976459886775698828456699034535328035209483923343927457339245179361101266465100494229076637562865831650720916492235890130396757189540448973224973365380413234425144547386117815539765925844565642598408419223608443234126587820280624850215653884027665824614769812654473462995669613578712437142381510045520435685263802482663966002606196446639036076134897855123775975958623429235911316164677653790591602883430991133178240200323501405084452570456962096968446871975255602164787422662308660363553625812519002321698102285389428695404090355311135429999092468307040482862678972285640536689888227638340304994150839784804916683489689233300378283640247729284283476908283904720049449235410255317939311063658781012047883128455413296601594933270236556177913163001634573793346461577866228463064120941450603835770302750226569995596291174539208597430590618205747267478834241996763496311905287494441962428292250482064273312556460583972441155160648331609458091046498061051456147800648030003063543788929005858586236559388777922367456943114927822409585684142311021715975499363135923393617356336440864359135037543789261236230604681855386716460717853838043980963473634783657067507443129807096696011193233410478281472404546942923133440096682186278557930483118812310980972500678282641341000378279081923707863696281670694818839058739958525653170988194704550656057035854423441101372400262056650045457591544281414521325900768913897270702827677696567659469565959729074705633210933172672411873060796884985991863673176061577387667633255480509449221637726130361914776665526583115245613869443985919826263454470756040080928533680618751869228540854940063793470006291659127041392402531081720067684473556609485113855953648801433170088070826877335238827869502518453169267923153908233297016592853812577189731906865977524347164956146251414189663452363473796380186294132869269918888545006412323620654093836592177149053060518243445837898668250391562312282808150611188791402027713425107419877626166081900714565096621970055209443699810932497879678685823602635601143937583722761096999970928993440444735132036737258581200551945122200337525792121051080076720951392540756924903843961493389987118133966422535692907639092544288676628162163307076647641512329812841240683415112924577375043545301883717921403388436563087246971795518040346329842302318043653216336613458870737041225391534403290499010209529735230100577770891294396743326008109363730232124712891464503290365818241732700178598151189961817910926070499227075811857818908938410584986409096806223770416526910860904096989658850542322256220304832232574347908941447094708328849987621705324653716260606125199051510907341518242945662778553268464587320735662743150619481375223540256352344824841738370496564549154051453270293985313170715094102484629510123876007969108605187847094513025317100830930988536553550876187377084431359772626551746126041315506425296102430956103901368312395996681307890610630811247417652071523688278248367943271427371551198389727262499827836966582836517550492217653330740030988692599374051300472766192158851134357834257041551472393408159319203702848443067341080840481467070702198908672162987248020653950076249086985648758031295271786618073454651231032738018439701224934142499305146180692250376606124324511159100100593312315491089106669108528309791549232253116170091364114823020241525570319429651464125653288850575705292837813304796806416268375214858285512170290920922314155821289403257004257919167149224008012952413833810498895991959032030350798959205694677381398289586788376075773029003995652170534647156651056983295100098700164433489021525390961359589970446590229680956245843467521927343148310679663039664869049327460000571996700793719429506555858047737907562920665505303683969359161054866744557031824820417443923778949709799303637970722072424355949862763013317548377528371122037358472684168800475836855038084369270400033154755514722625814200413233428252748161646882729404836132921829600579474165340174921629611662277764282831461745331109680265818761712361497207846572072282164909663750100251126619622083537599160221382761112222720907783010587707816017986307581600551088211709605922742728548987051407578921336361833223483896183714649455630204840859875609929266927225135316521488354478903240960767698531137400663978244059215572233536525394699524309935400945484297254928008683792057806162394667676576374083568531442117183433460676637011376269244849651087479512814688175742993816641009055567375948259307921962368350809588458074352520413860922547120386806221914220088554069519641808901771577217839341542413299762470832915265325520076619272837428992749602579913713750467457683394235253713344589332526468263119917416120621032970371204255199248190323248697761554277942466721213438144274539076303402498926250806152821095103038364178821876527410417816634589816045894528624581544224202459798160086401540363567109883832317691950139531668622332884397974552557199539678120158432625103385778864682546392349349826267093885200021848904360685623626657278180947369117734930463845962446992682693985125252681416636924608384492173184795025299981168282669683273870016854280951511263107413894743277328182041447083756384498021709254096579436078213555254431950078600555587581758359245047099052969916529773878617578501285994261260759908187868739241443303599978521076280195014755119607359176482752833578974557497616799694852016575639366654015694206851118193829830040886360000760105116349647896514261053878589126307655524956455472323038454563540818714550982806960905698870154090970413523638222481032426144521934065642626500816350958635472941944353103679035061417157804236142034074294779648424082244471116054581806801084654542839063976727487574154427696264965374047335882097751907361596467866406922227726150727770567649016055296272745328709423083430355145247440542793169043738963728270384302240693611247751069121944101484605964914870611090530561217894718764984667230087259531797997483630119686889598803145561239120495871988529113812431556682549266430945301738786691294705649170645687538618889829815642084593911378674854893279599376836181654774217460199773911332858102346572438652084565065792973145814191862422476377560836720080790751660613688660093490470761435104730137771270693852670848165390526632463224979839066385154897490957168971816194206490908246112430383347110034397810530373732192421146662486481795818208084775227579086302184512940988057989823666928679618147106897451781174623262789841957730860203299843256796928149532156560552968176631377686696004457432841936693506520520341538025880215951669380438573712647409889974924193651763712972502750667630116783809082156969443393820027769182463674646937319929719167226002459451374525873920377280465016882054161018324059851716778013890307804468953422409039947287713986503744410345916118856022391600051863924001512964682281353937283080190303383878724459161867619706954293686784233535437932829746319133236614747944445418565315950122477101334711317316488705474956146797582983022404294953074460332370784219300397927706479525575531542920897809356569692656331361431349829255238148401322211250471136757055413336779786388603664974115961120248603876585300965032336003875534966903124710951242256251077463602602163071934561115088578169358305421093774957043712788550318467485013097996065210365190584890472768781650429914272368374771637954632250204293425206708320153372655231559488487955276660337066591019106954640008601089264558548421448623902898148371316835444188608966732700321680758331780169393021441082448331429361873811399899809698817148099479025784739160090615765258095398127924767716465870952590125331646531730261451761096036145315700582498905694998018048400628550287532857299847016979906219282527716854902972954475735986044498268108392445408612111564726403490963678799637659124354192913243321741398354876946271678559125140822960983807064258868873392271599196064474606394471580815464358570915822658084751224988711418793669080002931059595004898349502023792410957595875014520165654485747242978203695163258274573724581768833953765400129467060265391009452123694634996600621419288854398150420038733781436310222628437292067128332757416790484936122519714843296641249044329233443282137475547964412105296201922422406924390267248918548526664203624951318923227597765647502000488019484458614342670736214809355618760569335535568508013524481388697045520066170588811610098134990594745534947345380381231364228891797371085286097968654369338166337415568175193864845449904786192738858091208422171901799199043236183728873138452455999869564833454918796680128183238244692303716754471302296319865692173987446823388374813774376238564462032125088519934929881113674376985053368730853816650987397540892663814760066662792220629002583798568824993092430805867062789441199442719127249485012693186925813110735350491678189075147013770258190203402710285307587364174711994800531864279494709189381139768677382272739158088397019663004485974322609189470536854299827216959058177826217334440936806398893842755539237269752133903768645149577255477924568603078927622981437888751821648536724375818163280661737057293530259520635109159848667402034005698700981178574370367620176998207222112004421152157577067700714339994835385864800352164934474270500104717925442124881788339280124930845288063888259561341444196337614945313595467979465200812453409930642009610685499177726247775160473299212189483819030514688606850136407453513524615828469938678177536319781389498985229308532244924831233420202417799290160361648714381861516507289155558085962249365995948614041480430737532103568984826574507626482814559760049281607809563409364851410791858965554360349891325093664772001631676856149479294626877720668423824049679256493542266007403595038388455821395902381089195957453797476178105660809437887698320229465587234932626166493792180168561122294862363336734722901299965066722947024262196024485934438234912792732722133949587808523838993808345698066649902144273935504568535831780269715002160298489945614395122539903497407030797888577850897200616144853942257317446699711212676321915725765740177175983033327343286973434594021758500426779111656689852757653518264772905318498157696129536673105970804057765753948413006981606145102037895376100021159999266135365837613577222415766907495239783692009117590050041244847881207005195862279106075681245828422500713116537248333573939938292963411265276049866551248333086531647642032535735531654456162088597927112218444504738030397444323633156062543851211700421591378483653506468429353646291966476779002114503225597595604801525445103982842744043284687454715588502970914976805601166033661895414888013235509642916042390124775168120981611068824103239224675306863764912758419253680421798401763809933880110163926265551028030693677072388858515055563446799251954419294234904105492483997066980275901128819852262708961242095376664537762564306745517013162015951643803304725753938842202236245483605374242490996185172108893067367849256230513195721715554053695409346269673605692931135242051972512271980443078077339526362622516676613204248475223677773085557986960104138699240537293474896235152888762584961179267566105833183582159430040821910017839357302298845907919626874356494423391507870610350506420329198958368107072287387101331373447861007454746519292254162364262634327124081922709806999065092513846948435863905223883431027087024950206978402381279059263332468451380615062366654712392668347471570242990857297759514770215996204130517503457282459082598173991346695723347890843402619104291543889615348332946196939516086782899270017230464479912967064383330718658312861530420927652162347961295184701507279603283647336593371749853460959077306307703839527236113046821468803710842824913388569246787196695140626767409316504206617704187487389032987956631918041839751447576793631715049857400542625124334653224424019454662694465377328626458404746006533705439536864869139946768902464863601385539394291850561254990210774541504233735917107877951018741851051161037399647001297825562161613204012374572083432735009952622088568467306426399016698787625352999329778214259408317836265788659421823917895415895607888567854552081162925121657054754091285666056217130220622332404104739592531904469295807899607226018420906738933082623322057217152695428273469002152346787660768340091661328021512915883509453345103890462967462961244732230902797430545701516600018246363659963391276933517850702385739082116252959983735613058222044458594430574199493543359843877868350915857761281843541883322365527430927005964066771405625395398222232939492692779905982642464804764270663398388080228058300164978158141581904106017848795178330093890431485154186429324660427540649238696707194292423378261153184796859809306266856150246406234296172270361679677696644495715838989061704309055308102965464709862185746598669506943049996245391630663253729012707823624003076802499227547724725851680747185600451999771210217373368748421874187805489817651313305140266194335799822296987571571284185170338783081180048327806910261514531754982895840144989695944067036196464676468993515092556099253815161154204934958834074133332511207708779480246026836351283072179635328221173867882441174838786903199559341056791934985071662210859422595993510454256437337599890527068979351785621673278361930137098099867957443529751559268531010728489930424500490949266486733537290640331899036765186536059773519768400721244626817983195338862667627528129535036152199233305773953396168371109241030345628104524369373478452826401631764634419629264922345951763303712289737804872319601297848887364238514241555707853630693695057724533261246478035944231540367871180444315433501917312257142645400994541107152113992168769420070238104122757205517249314699490502730548323317987654117883078387971263409544013154242619551665365557710782254544422969120318948960032373339603928576737348892068506749928759552794241664805337949034928266860655369443720392350711431291568653409150897508694571827924957660774497301791406521755590917103823721217670584675081120779329879375213028140836346833085845215489630641450579048733436359594318503367186921727043735767065953737867156511168684075401931097496881108788056856829895589562211458649929036889729133894434522152482088320742349539396681476668688132179012429425161008748088992641707338307057783745387636143431546813123474224196501782307740517207610050709760091185188708760981746734971286301276634745973622907525083367446837686416262970987681340551318414141108680010436332718050883627062328027222118365290107218082792986670135744414273465029951541777260102588122094510719581999833965803025915655241582740466838393652196245094356455985475312501719921447332488114755046335016534029106581318533578621466217234572259069088413341671048689175739570035185832906577925584287238520685438177915312969786768118025235697398435941661728840725454240388671168266977939432915941878384518233813477629330655755543840048629703695140581184653690799803266649290331756453209941629169002874472200778923363036841054585023743118357698936476318204343727298291167210402758696173479050724953539934164820526316926150337931456049445350764139811546013525186528841503993722662551827954956461565804886627897353456975196388689179748956636433982380862969443458059003349023866253147856855275687202828659145852610373615466599996184854632022299874260758455120165692250212100910312082664521068631493584195280500825281446616392898798358596208956093500733743596527821226124370778256326960360789980091760952967144923268614324109586447272992716625771317469629742917586167018927525606481499166791448108911765338402774224704674924464978743776008832407812876214603498363859735805166988204012317881567923676643563863213392166172911040009907253870650558638354889996204451988673731394417912925739942087463225976281115175205285351052038678931338179841347324418154850949147446315667494348827266335765567101801097638473332822972383315606964645826476658025234512720730926377771842445177304305917325151926621203532404112677137216974074519281065418179417191114190289267218863547045183595145069937425132805213152335477180388311041132853358285670948071148750376761042709655808416901653768210317830329802240868061172327121706913439012358682883793345648786720112907406865925324458045165968940039063896858207630387912716370733586902244436772875961623033897833891513885374036453774730438290455277866334458716432285681997391682352057593652233170551666687458485464713337520028112303105973303352633451493759474830307620954315060685357859829020249685223509747329233599477217810033978878718884782038340826747311562663717098670376496122547787618344833037413582265291148195867682867752153100468788177778421408514732759546979985621850818168856813849183717400532030607393967436097829104378920449739591049873770626080906153459058808153972053288960629930017040473794782694087757623048886911116729245150210992742222879360669258443897010467136440973694343396698924508401351026348442157039442705225969438486541109520598347984381151584853793414069549401039918548841131931724354379194001416312610919682211263743276134095630537488915099240095970490417226783038683680090894713120970966158455204329466600334923386719268749235707063033566630089046106038967736337014879704472496707672687919061499852962254295531040217065488720375575008769885008849814004811429522087069301833467782622300719947003409250288697367170883487915423099386215949924295260962583455888942871764886268316824998758587837849856126294410648190682915620565864992208014633106553051011092052033502070600011190816181462621041221220942368235576953302452036813076638912252826637211056582319999047405860493488700227709123306474471139552604677356028651339023942484412203741865720617178220826271134979457644495549609838386596711162232498331064954263446677287826327500916973523212338281395874635582253077938810418891945646103215110989285211980259547022666618738677216986387090996349353330914015141040079416813915498399897025606177235940465826577596207562437159239063091094473972836181810867690586820269545288341977774415650622458344737315423613059375006325761168789159559560163589750065431505819917700953633609444874813395528713794377384505696466416594934653983068319932325238058231751644307875578543097277262607705037931146721790270898741331920843251050374023014976445060104861177406867110002723668678089744094456050878807788509779767664148295344541025068226984011996968007911820649036397250996160724723616976703736184521217644706786613457884683310240957300743316522216759524982282225202235173307465280025998092894390874361704716972138617365482376911409465920477680289385090988055084584125112185040315051654140319893692443834260112997414846378053962178389797061032506368113186191969202362412318947284857883907280230402418784684934543752335882562264278780032922047965720247526884738922939223587705059030692582904695867742753197950860658977221620975833246605198107474241498401021440874481292056322942733920835196009944258216165739277011830665973590566464972123951771243827460116622904537519880067637558611506105342665691422994692152398270228121998244534103156682966866114760445552891214363816149911422725720644628433149535194401516158869864898630822214861874853027683939585754001434533137437983461677336392972210173850668548084367709884995145964845756774049897736553380813067021216804652153322394325670106210210103615990773540758750109915202809503269463112430714944095872218970624950781569729226642767923280301064051507825118378551048632842581384703045292361574731831415151199796915075388637516279730495452823150107278767595515437072980284164760172171330634668587474269778578967987486557048578039056958661692209673318261097416028016838225541684187746071485222100604984864607139786739740639226790409129235329301732631326872584956516232972749190532312445479273223074837712919226488023962918016649561844131440847031803821147520657951880202153279521795315699994926527641135226710153660282169568184486611362479878867123481748402951045312391530224431595712969358269147760740581660838948638619823641461492965296452481765065777819581350916127459275571573700347636476115582289084122491420063117497875802222559141293054542349705081639032676507091832420519175029705191812717254339003726479478396844100876350898384352432507659826792445494696391905012109695704479964646167036191905193366397764187727382497238296080113888221235396023329507650638920934604692192694120328157319337034342447470245570615549296429352746064887049333313953026113052305577505240923547932316318416918483408132202281715251906370703485340236645990579327019154199336451317947454500495086273940069101075883909683897459021300571896271424269158286739725907245522464377639523606299818299299039165656265267190934682064563169067484120115561933215823785463253864734982316674830426385291420983698588404031840157566669845917834760802995369835487790325219894754062924823467838835718091995371277505194119779513254292656632780768408932334304949831211732403858357400761821354285274862239558458938700954886160575707950014270861898584429704202004785456771189294555920539805482668826285898652883955626679015984396830872559134654277087187956953641272230941899623738557105396443022398720259797034933374213685662646723063756391602474518305189545897645882984522296995587593203844675441875718301165463948844626661946059223432015864716801704709135794444846358351045198138098326273162474533683950799223841999547073473219019980836155030608052937166449798466628072295894806713390559061012020858653464192481730638404220523481276259367973844663506309832258534283942434755953192424254833971077692349312872545255411624908957491270203402267771606669753848237996087513374484467937304232118320172964206730980903907844210065051387735002614259048325781884532674095969801745936327533800374559990267467641573259440841088992062406980835866157981688848061019271751859404634963172275342828243753838326892074022390186618228269413934111830825199671900461685676780450393721615234667135515823824478453459933511239607252116077934601946720433768686589581910125853026695065338960433916599883630423118491202744573794676820609043055158676868366996562395256842283749807469563725409656122176123513190771633656667023755168534870064216667494367734829497904073579171619123010212545799221000661343201548071487237867658708651592478326662094864652982110668696928458252015732056792860966434688622350671970017541379964301554382200819202158788439176896045521229605404308096056913606152205197960946759327294466547302316821545106964019413609077171162828853732220741652717269162289101290627844985423302976762824600255128330350449459749503604997847513269282792902760424835364105112179998803381107430155878602619715339415079929092158128255136065984175419149865413071529727437245606143193754417123043433049761278690255420352196964441458746969844683662814383665102124888136127444905381978097812707963906694196816100021663943837624066940920914106389425282350927374829379843458863672112427277560335632871754240092814848003020473309511948588253508735215131843119985989926892975701478490356778626444845490146013389985937260133039792851176340329634756340226629550125105848384302181688579575770218559143025857814754484571458183089942496884788418114124750443465615285503395549096006079638605384321298007798788694647094142355384490675315153117547258240967599537521747304162821415515246221339734237374584228705451136362568979335311672473808380903821001681158890840028326042080571781537952469125858246010927140812996050071015344530475004745795070642692410307298489186337953615815612487618691921880306833707551794761980309225268235017500129743770283095413135351061082555595362651668917078000885838092766753870719618103001680690082583161367561742884518311964480704856419668881427274652052146087057851159839850690565303160739204703719366108821641270512666098870054171935763399361831180440416860391971471615018972405207893040603392130520409360445472195074268632628490539137293163250153895102369279548304454893245742359792458103400750399389089148548974469687848060551997720189991683690796876292790247896828621356462694123040723456837296948586886013668130091353451518096929829218070891618897984610088092776081832031730128241795553215889002076425987270165642313425006651773974691632074397122784147117396422043485745206839193616253542722546636036813995233820645699597907192243992005529595140415013002345854937381124501238372071258883719829056571599558798173249859647501328145408014416216735341147575121730607122691289099287308314601835908126381582829080320396979644099606034545754496637206908936829274384309197387702409404133191091900022769234544458852159915418742026950311289228169480516552192346029931993723510386967077780956990204019362227352417002374736484318293969229717640635409897427513883414165263883173936921751174185120794734169023766117553330882241725554559593389857650223874759894054484005744686228220036311185590416490009886153054127651873459302363230275403569360998040169802902095197340880994832327367723514778486549845342315120268749642388821214304016457084824357786448762801560395473497660675966401967467678894189013049573332690305300578150127672063508722547923302889585789131707588041997512488744869301629111382253832120899458677232683300663932266717066411533488064863029039722162281804379736908319519882814719464320919064299426526665915852239419069011133343644726718532807108382949516738640236397400196822118018728661268621590958448217579274982939592673221170620018433396867414945865958405269734432020694114797533998375063823863052656540460520862589707917143189830329894009028230914078171622260971326712550785290470651801738039087183985722857243184833387005994381649345909596625162235139188785110771694637463137625422782090235565563524151621024300055405062774741815359693788992767675274650318856927548346093044661890444659978203059715963667434467910400817229597651121820165865669621362611113621626477964539222330006147917249351980770735808557766292299211228145576753854910708549110087777654398857381726191982273225208207100771397381660046552165115881267331115163534185778983167463373995140535375623780333583432409156461480937032414934929993701399582142215758059363101936494380457537514295724331341294366259118489796839366216030352282936136578076237028217352803072914070906409698524470724887392357115960017259048130913158886119004874267676669258456410112095417034946601192875324413027087675269125989296774535581207498811467730208586200699566386493855133756650240125239014407828185618053938289594720652045981204937424725200658179708632424449424270396671012552017185474685628508407781485411474819388058267922652806721241595981017057227368820138447629213054813184580283449576643532623321068865757910058901311033599492998156502086310194215180366565289103752498844077902037797275040765741209663975023440793327198753371912573887268245620634675531418557487756966650575292211889201323085391964505648778494533339812908008285424398872016142584056566179315702305077609613148510209161779701791178766791309865531739693648958814408347633448477543703604190259624268709335183791877801177114717940720143126883661568748393746704686390073594083180608231590118952593897184498248760696297443346326567325519557367796388571629684224087261354241361316585629216266688680319280597576556390814723952490459745015119433068487502825733219159750104578868492386518425143924117269786314039858041808989237931694903874381923537955992372711894530574992029460319880487178005501944435587637384419163360468587984141968507044116663009534138168831731449073322071541460869955133395462015503907495355833042279837785342855686466861990905837551195028514058899730473264606067050603330689700808548017799171351397168146166904619268494875727292060577550500498755319378782857685578027691596937394428292844481074945767055862026360386237600503675355959672926696086684617262085336559462137526552229260829945998285151599451748357031407333938505414094992827472653678630247030062919571308448923097716120922566593160296065345442128245774629901836296648858799020866681326253908889411746134815210525898002466099624168204725960212505143445943398010503526346637629301811418946102544867036531918039372168959057533368470652696406056707506262075271891739155769319829543700452790657479888627939372269390184709139360500660243443394517028561607087561730635952315227837912990497742082678152669713856107122349696012796405536680249211544703624100465189032709986701678655269143099958160453304258830650053910328485929628873346662296255988438589652609205971842129916996690064123298403865612321202640036151350177711047503696175204435367246035135452276508739617472513670222534239416602567277085048153383271890726892752120275236838063664509029048013784049881935421720954501609458670222209122420994781131066459958866071707136064452063902856922486134494976575970006154787524012047452482915368318318348911038487102116252969357098952962534116566338262532806906862146291140460933702957306303904630863820366981049559751800033865025047051638524459217852943232645907559394120132664678962863642326435354286438236714828003663722646084734220179345265432415360040951894598774023993678661350269612803039325377024969617416134532603660602240971701755076641647723766251429452265567954040746383817819003028355616301109858572214579025550928476132327810647953226881669553549098717338757533271503469791616756506206040253389277802071848673244391250114672529019266518120954334678460154094047321250809119477758459476458125365637839830065123351796358807251718168986925732744867654091657827974990471606418760876904476464389626271787920340835943761026473774500797286350431305312260972091892063198572535757809045399063801656058636662911622477443585682563623248976862690153285952823239790614220033537283751878719024464110790582220579721832273466500173019491479259617749681747211315665763933650442426498445125602201821729097030738742855607765153399558396013865665430568408728867633387369174605171725003989907235308067158517570902453005874051454175755253013762138237295373328859507592329747536033559617373739282367929852755303728499338057814070361873325924067598866348796256329330065661147468610332156562608340041636339699955438653317203780229175919053602355168453714372881151420598962555857761731036051648095448362664652478148816998478448442744287195675038783819830150075511871185832172649847650518259278518834523011023106003065015862582213871275196628807257989890005301953203509840931084475274221579579353396190292633232257198271709988669548060853087006318003176683823110132330757275584086089499812221565482467205127500812248257251153275229223779102898841875947044341720578453111812060698625838359894457809227470680125795231359329343787966956990291004869843731909369788725973565474602120060209723425146836785710066728749772195691013580264559322823858721693092120753637542618921522848438961634439052265613220241830054676757518600774498698746689937184911707877360871747847754229729591761167577709484986010933391867473891054142983500129350412253574098688107694734957316187193374730183477013263152804037088004726076287652078979289764028161439763793944986903216087716701743189754624085152629755235645799975789614656722206941504858805889974551133974549447102128839658281961267084684386291606920882967380704416056875091796963216973637955576421735751693784706846213089391026703165340165218317554227565896496036728788235862782164734082214066952193583067415351912854583684867024402003699915670704437397336516552432160133899817144915678209445714109341783558157431492161784186695608461382722430172525640397493600354163416612794339308771215973815403383551236725942095898516153270914325795451211362490154299417539727903805756422030195829463830714551162799779190350683734298815258826708544744729856705866445709360354608300698822128025693544452562919529980033875760787440937207039182365253027424251940831841907055138562294817015078669908298043046413242414768210533125295309579062732808822082761523692591751477109045844870951327653350936104601315563448656394883722067255312041316158191907090974831280114551411004507141916420667463836357983344995625544061791103887532984366747493307133468862414399784695350026980975983486401108430396840991034903833728188449064054365526120018143089457374408947797839309672964765044522128884631559644783113798199895528290021222796361353885989034772467941236285021087935920454925794114746306812615439796847930981535463271383659086415866176129084178654357378566251317756443129136397519102379612435576882657910254852038018338995395593112624867704665210262088065200889639979623742403967998080736518644342100964646647553436067001759829429593460454464285543617139527160126053828060985702106868961438501925086911689910473454063116561980881206064932744705402305965059411676633120340352102005184692098121697252355559404327664658566532089756286790069866247531511889226421650855875213426426096187477574222356111743219474791448592569637984753285388344465719790373858607017273368965116491284964379986514929034729614859133071261630346139115632032873313102976035026446650878114075809379130642153407393144144634756552407335211796058695092953780074713321740946437653469965287304284955234021183445984829796780757835659283951447329245609463056096103120614536157759043435400933775148386004071657360573491637190721344420987762350416361815668102442299078710075291337936377570634321157055140774407732076546465515811483210604813628161087369080639183800333330199170663924011543579788913239997198535899376102492991905883066691385484127292273023068883638733555420164726800868819496657798742720355541907342234445975242742366306722226165521663379148375151812714970794363385589487534086516101516819116219116854367188415112140664944178175548561279674320030770810413354311398377250467252449357800255632385705089556529588628786600365748315465935386591962394716995338973054779921029494233064539519489196286242936507553576059958870603915472204870757344295125214244961230780513558790999718343089011924243941046817456448622823898429362041777175673344995983757949812839203070903907494703566487120809351900393336850441687938077801355263344640535490474822692571155274370767945505002867674057053204205909646708750580375108071744604540329066232226347880472265727732196816435094254637228161041299328872261391199965930014306254471902775970596027530428155291083972320757707046472400591970845343384960396553906113584538830896625145017798514336087275206521200777691386678452097723350455187908036298719493198878407731710191960831758855911284971273822511089506071256447898152636630372502326300599248978345355544952732845577368405005595186506390642513852725933501385695303581343031975175475351637753018870346092942790906800231796221142665778870445340927182397869940500674623861747875600058495076317946543423683016094584431329677066300783014916576835931032437186286062073977632986171197696917149777786423999418773276001631377449171543287423691129511486127879370596267004165790712646228966649652397500962780828002778036060317092257387817685098031871937334249703955629026717864501741383866094035138304029359590367381279344048242183424309715181718122990856946497018206823812176394295633641223245476100608173626508252405933526213943813885695061229587987612611788070383325067234562071210748383438083507663193288485174719214464932997054226519097716265029266174457204745690200768908107941631901441564286212168494515398339069376480779092543229308448979494524545642652638704315392131600178347331940612041340150579760685954400300966566968949494340780752847310948829980890830040997185776252925816418485061485751543922606864184466696487495524535830227515018631895490084013976854650754642693216633372655275610167999984373498335267794631752890042518593984459353668254298652307057054104990307845242032465863555997694262774301740168369692829084924228401952592233558811327438644287054303955107222214743942624041183086268005782857279190896883790619244924673620198409109064571226054777308900236176788024199355458901138367564632015423509890678091751076793631916839078602189458786801052150249629183716969310011768764696390712605791105431773283727737086381798166539647172615182191380050417481527785260976624745468810574376577521983339101878161540486468814194161916656586100870920662935503265508460059833956015336397399321480636558257382759597649000785085416627326890509448364598731505691067403058178339862174221915395685924328637555797391815469497976683086975238869389670511844511971386522719708590264257529790833652707180024440926773312932130545298617796184247947570714178144676449423790187270808656227033233498531958129211991297534802457345260972911967400409032205283221997263081955191987136681222566986679198540477281012690512239063680486993639614335805660125982467966025247669316872270569540235857568911215150123963418534620441293353181697361685382809120365939790050635091070533901404548598192337110538231142145429157904963968550735648807501629379505254455966334490873597283836529535608823656060499626773452279343360380551281028998933194588950442676692212809079319549030768775232395976816686377168683294935192005394785741940418858489886314798413627984231887879761655839982979641829180831577418703963649930673216501176983560592631148942159714062596339540443139487431799897574990113745560499877470574668715099360769236756539614357578590987476137651126773916440912645065259772065301126737456815563142364492805156437323421759372265362211769563006162173097822147802349901625957358065380692690355951892151976589238785046379889266600568543272705741734649291265240077607997881436371510567916411904187756970229017255176848708456808930679591699435771540862838435259733022626240603695874714798794591070864804927199958999637412065351633018969287127604436268807641290490981780790995873984858413062195112522678833128104323599677433357996428464121068387221330374557246829281939098363034551986610867936845663062119184678384413976592294844633306664465071167756036500714519240238646371058207860077709834829047832604947916423265853053579677913766642425628640446098962676406862221612375633866187943515996630959089581698371034715037205672511556939255285066938643106435367305790594131573150630851599178214441046235027385811723955393577070335692145686745119314478196933954400480089515203066779929378941584613957060700483357827035284208124441101610957082182478363968863832682999644031777894133057278452854474110308774400962772044755456459393735599843782740517445800539380621512901244104071516955874161297042252122674649961693440678052639534809293504717964261080308573692985951355564108562489382724993963912904529712039692579743733176170189199549320767947997172417928617398849043075098319873583206544752948897275429353112548532907681724496360125836954541651787834919286674756592385348531624639620371275311613450383837636402731311441517276875423171295199679058103295871879503569676806837981712734294874133648767331605953677442783453811388200368753861832847400811536522949632903410341485598792620072022959295580869428077508835457013095878062519925907282089722155129029990231905654875707026198080919896119778578198034117524502430140429503004258486346103268998764631572411645905486961946865243566582182677036695136517945842029922146413121710444099853610038589491088422303376667515995443650252818550850175360263350200452543606756055155687339775925903765873919846257386406626851647382850025048471069843835763367703850279205526220156612528508474703517807600001598011054306482621365811232238993783907794988655850833817430166957198145241962092396463337314285219381233007837457044611628265373911824893199551702584826443754048801599346503843866800452044568911968491309261983526532488344218406802315507650200091889781762756314420690478712076370069031552251772062507386667011044298606201041006350820333372562615964176111119696935937588920822060610145529142374793883349640342670109112794777515090464736652294875744758426675879510312729921473720810358926394772612039998611546391907499189419646464573774296454221281107507948127187789307231971630218949793697102574585084388649650280554804027615286619849123187685784540012578786071919743647224981335222907806562031971290216850898889737194529028756976873130423721251819737339927691861858377648107034651510584319993649645211971152698216654903002599561952617121121261483004336734978203798068179709375285855330227567002474409540132497547007754815179985623700511540473096868367077118735457494715064630823550021096159695051847817402742754048620453768838083108260112260777783792305061405893729977037814671140964509991292736216609399443471705240436430477917867408958723698540571137599475475454659721273558595312298896758239059451325559236425615100716613794468609864582546484665085189411655441556015758309510958523727550406483728457549135691146471450807573325994976629829673445260058567922544812711461024479030834423336885225090060198252680218639297358219560464352510972316878082850395554133439313255540311581639709815152908299531401575193472352859342627677382375963661110101557683505019215227708913837567770460074227928797158085941454507171251629568638670793046267238344187032596704429777263833249804605847331631573820088365360237487134941544028171573491803893279977767344886082950074405314408025793117907156121495391844370846452669098090070519952627881053082297600888991755100324969977635519281410717242692348640335722701498239415835210504882769320169193698479620640081253735720940498331617045254850054258317883905826533479771384557727697400247440292084628503954899887686401627948351161145843783341703132716327188373646602280435042840450036068488157305159384315608259357757075440210591639517813814426006472558338221541481509158971403085363959775225394283286383847381555482281215020034287472040383209080771792431405088280612099562997184162204530123786005219248570233992121387331635416130168063024512716595857466043448377363639994053993279193084676667358840383579236768000427058473763386170916171962295082354152054382107013139159368307819372815960914562328684755831594783048194984890179019428113767062964275145927292710974106516739393499045356142049589510372809470243792516711250588345750346574430215757683439960773349572425379128673837554010125136614735695757851063722084955575340303437783270783554367942749568648131635472220005830012245631891118810875669504776634668077802314316019089291241447238948807468686417705367977320806328593636308614751722914904140235566037834863765320504651581438062836279930577123108159394504911553519727644141102034898115127772330483489335237469875376764490038050961732405945822376840464654529820098954546211997124507981365263496961964304425315559575747501578194511016869190349206979856945738747665554667923011015792862823332745717849017076003820866045750296338554108210099661915966670803444901338789111629509005079671064964776310025266587644566262335741036787411870991833005106455916723568126281238791884943220596805492058484644544168459752944020645973041133707443226514945958518395108018723168887914725436174304448086121607086940853741409833922422216039362181577279240066086022908603742768930677713577891240481703361237265979653443883438983208371078185774002679630754437827589885920707244672634925681663981373959652073389098627004102160457995389483192160322097283680050161011775280013105906903284439945489602611803834539660698087721945503906786238478193446863417385510797934850096673459195733768038371356854405004555831841562311090442465643659156313151198951518016593496971236157549186163950500749309456054304630190290026178172040391395166815501215304708303693170629180535933396583818711871387493424300177395621466489095807898654938267879670841133071626432332274179996202371352114546424133334568739604703603970781580866684873921134568577516778413904193641623520843967959386665401178075143069257402177474337654558781030883049013365032810101478579668204344963170229035644390873011991663157082967462132718749132026998859528612868862030768431378264711216515248106129474178661060023690104786298397667291916246903315119529712239929986132332674257329893584756563973775434534642623676840891667834098050430074480842279000957497248850498696205477567510379294352074874123513799186879248651977282239533773994224437189689423538653426456222986991492235754319029883048059813766339713913083652544747764566708630376823983727791388037008445635760505566596648532834475779013450247196981774763288140159779891598504449521359105965132058129828383156374922960300652324438500687921340835715780653776484371987307672463580429453499542637208272335478388486961182147276396513663512370755824767566952422946148080654029146194774736941210933305299110077890770721550442525157977393915837851583425900399118308399458421970191921787249433748044640160317130599533886571144671819951253061264055178267100958382664461622006130939461492933623480895522168676644979063804829251402315120339604542276670389626326521652806864168107477586925873377446504855080985313778887129213509669311494584383573189848983174058890625497794037516302433241662578298397533915608853288211064168974484549863358930456889838777129789530348763638847051097396233961918016459866395093748421710061870548498625115155928512804830222676471082064373086031752496141752820741217551227005190630369364994387255352334243028850494133047364645925733475082720090246776671824003024842873512187094279196549336311529008254458504213770506010041148492998562291717314885968409434138039850626305615020626844554571684979268708719285010224381416176757706246563758251632406412827829280041666750009281851955335177918608679058528694295377997539280925022444907913619185977867248894471357028520308457659702814836479017766456774926520909506965977124967106491648541058401320726614107342272148954483795358516031765390608501179510561718880663996174493494422611528519034605144390668613399901861972041441389527165272827103002831410919129089406427614080623649649895366493664893700977629930300515263131051556780477188134688387235419696914525080261578392813591286838131739915668532428379831711673782914064155352018218376939109487180032220123767218990102672273143084089517504935755824189891477993824929555152075656943644537408988468252422718416840907700959154632202220557371539480350712577331846930171623395876425303151468439079149216907626395068093693313262748958741583808749349536735179010752315946634791980176871634016638836846047789063310555029904344832251613948233912393504217134363533383040217899444295323778602250187904531785866740671362263732090349329942088933102281795681607999115155608229824815033652798243661813310415222388495321042990488226138475584356358254379193177052096178433287173118455136964629513067471112399939366442792623761462180714471646816018997229208548591902342561353035565111042811942069084874535824128584386860827950994379172919490989503726647720130785963214237817374359540746608769641114151011810334432788147633725080825093094642472802182074787208112261626935762382444586960080093184456193098242932243443033318541585722990533089498556395829519478264871982700351791422557620002074806747170419970354465164128418532827660334132532746134579413144434568570609786814523753229850545842119249640300013007286437731092660523261353326844005886886866469411474837369253972103839910884923601221249663938896764668791868922767904997754974071081633367962555862121201773547777785731763107721926270510036344032785339859990154545149739017044374277184171310053658183026233964713826935052572373901144868552036858368014312327784033124237824305126078520192442736257950546053519293643477642083475515684114564352358564631676098268496832981419174442711335459777314733286097569969761232663048611535570737098889393348644105353775563066962366512153238265890949180778268631542230444850604478278972565284234146892001488390524499435635430847041909622952619426737428659956218043706332761845260663382918478791780959408137400213970192825592777702855879463188245891967190415534691804037201804411800685164218499988180664939212947163944082737499164525752665936780786006782826255434201464403435726577327727097786735998384118469642546709428799006969740349379790319509561698954112621698833103575440887990616674985211921699053917075007886537949454186777527743609303267818578515365940749889458148169628002583547027511070635068243950882262118536747173412380394357999115137654209338845280145370085862164675620954534247948538265669950319135940027835534568354006022180199975064003452693221182726187165497441566449821105995287978173906063994751857178026390984833909713657032988132602235161069714903672932435164716475101037129473364578665681801858233429796499725072299842563657859380110690151452110710050472718116556774945194385057634571986259447982554676760369561452508714568850735195858059328507042467968841812985458919947976421778871995863488835800426208474907668813787221622402999942329306513291681938010856417501285415753888825568079921009879269639510636610499781101912593200347818462096064984299695674589877653652181813049847196862881767380123665892600664000963645767728596795218025553515058277229748859248039566567291967081547835054356585369927008427796800808103931966584456586842243053465604173089917121928560988500289572782289596261178158129946785993505947229139929554694518277627298777453919143905164826956812940139067469988899717025289235882394782843799947345829735725012091565362743141489573444539249621842508218818911842755985406869012892079840207310460959197976570492265341279229722029308000708937894749686750825103849670227582993944567831095008658017882005029574031319382861062023151449959875946994473622628252282445628356474799363476494224357993775479674005419114630880310865423981104423675001107216627224511226037879166469323032692015936191606884651954732101243716200512756280160741060778800427993980977888515812618350050048950410415550878782188622196495939421517175092360471379983168574905110159414111424728829523363549213079932444222446997588153714828374673897649491252201275078996105258972313532404113437848886284862634660168799172286707738126854845584558227066674635135378309587651113171536133297441918798086618834660813288205068174023494772740715881490886319436841012762803231248096140997028542993610804158597094475888540880872917193529784449933301049060559985358440776666212689630013129285800889063304995463401819746185476702176869213620823995505095365508470186740844591010245495552602045943985361900177095505097050398749147279697569162198623028122499511967473378637584162029872842211430800644486742944283461968846899443373946985341416978385051675437918299601136533059830184889103050820576403413935430879284508373973143034500726012528423910214954207821544110588401559330374955998881116984000770476774345955016965861331105413859367699019705008032332654025388446560442137684096262419578177175966248527839725636088329211763829535555244845706046856139937745958252839997849604270043309131643024521624261461125757674135019093807122170902952593409901848725500026932124766265767084628171468805183857060914180592015306970213251253380534617235300125268076746804213364142739794389151715125756167986828296802163981624013508891804190767529577245507430807776872615684589219427090298918215048206253917822025254342874491321637521409087754303209753304189229792140544847404250487590885717019760320260271152879548697303763189534562313236547736016736241814571873020766238261349593344247438323211675342962025985488820741123832486494451168196675480760645589956908326513004896036729114252964827573165986339832446800174094224644677940935693747197813567281854150409135114523537179376522386330405322003145401653478717541008710284006446477091733194863864212838415065306037656113006345651979178218454314708011908821879089240279854422231342410621448836927999366236604999021657039456878066435409200987444868068854110454488807491225303145498592593654719197846112714241922018332981609901176961831538099024535793022962037754746959765998866990267754006760152017396301041560985053456165277942395913041336416764479404392253031982324683788937434582932475205149469561997728693284785453394501131352777008185609826122518124152113078492342958925135840979883136904615674008331150091924707710625524265590468123080678327649914416525058257904234611793789238463690740708315801674280614138527187838464526700182521659681845594873482011197312271347701854368812420758663625130078872030621173136650985953438943659990427097124475129262833950631054975374866053717247075750828582536571528202532607575868693183578527930829756114838858735494794954174646302362728419360848900130870691291136206153417346747317445820591952706762502573386964417932621217577886983511760019353743171417870075213475878822510462583193668603882313532169296486754402741393423127188079276841775341253246034153942944297470966470698724967203605058274059331568206619206095467887445365528247284767115115177521976802327064872258141598321299590963379782623989764376962377615241247044111089759457083263409528870054487269027156179277686617515166800981331936637495758151583393398813176454148102718229379731278937839520498704595961110403647861975135036332219626167665538217833344835535232884686017851899149338593842964486704549842908762826689411657165116084253004870261674002513545551404433675819346864427373416233188021713229176384762179582400138939333459578516077277867724266265668739655603487021409090516751215338308447926982941319460854953777892062472524804123249263010331331741114010756755719060291034513564151887343134877815361891352486793645982564784422348848230099570541604235429048996331927952885368299815694803374812020654014887962837347396914316325420331182923920214533044274680981145540062289669294245415688594764609733166440545180246662843202717316611259228323958580302897872648000773865764878057327426345924992501061916092165524514044810226911358773716410727736664060737744972473518752001007907545064223014108472942865976193583881328083460325753782258791941015382918635794749501855916432985719276739943976343447541265795770224650258380385282087808904047087124463683470172565020200469516124801947248845474850796092482890588606046550766248761308563278245640584148975137675925091864641113618320550581334713491781230247694700877744132182085733835491240709481947161190481535618834439401928370148385182291815094831054605034124999680959924291249502604176233728408216758387342004150760843983636849827081659293912839513737668889746710735079543480566933602689862745817501971899818960217291892401961645379412675302568698417497496835373732290803198594060594936358129083945534133984008046843658312649157896128668522361015525574253982578329124860729996578327987763083572057121051595730025333391215634629549183238476715263210714801080088761828541318112266899682665345907042597468522109106532299304499144076800303231865092006797731051301213689719176178198030380972350471133751796214447660063882938869769226344134318754607042894590365050458497143900071352138609928136277521395438713969405956686832464511094498762659200110679597852318208517585523275119311034119413778574050522482462605688191515617402966558472381024289577760834332506073266457819010071153537247823034169210281324053858619452666771348544501580101936847236976980074801646162127918889312231540807727008595331768433502034351499461344620634878350859239308613262693899573804170963237450503281176065774167188696181486125696062984597081092884838230456640440012100419593675681513800928636378980764398892883618239401964306208144280988332260971715323801112915542190624531330336669140851194402680350408513697996855620147822812675135263966316320412574742919052465494160860714708733030047981431977696935055666800913312541626619733380341876755999021367090676819657126740607417499286949135347099140814786256883185870587374688015254151917839063622889590340923761891981676406062702642549324109258303582601029468760547263282789585517045439873295683087680181221978872677704340111190318603280282079166396292362701640342878478716567020710479915852577150369793038741367312702113748224164315481374525754900231518355475925532930438451268770776433822406230245364322390225624534559899094007960431605983809857600156313524599041706254907196754171218313181099084302209694294122411826498665021349712494661967886895068847341631559506881018672439098688849528748598759532280939907910648430756966007955046801867392907105482792614267681527798799682576048131037387770767520008964394507964439750818459551126482934880587426416377890573515565973436115962735234805530359936420482450744717798375542678575008507518651524306084038629263347384285525787042937957795320273860336967767237154565002195601506614095481060078089432510942410709071936917778774184647376340527386491903344907597261131579344685321766302641961971328658615727203264773781995721280349729370523688813852570603448013478476352497687543481621711547474596294116708700815925091877197591839706546899991252242731581106532709497017002841874688486615856424251282980933390639415812304418202107688881737156445742070018963430142977891425032767861840927982141756287847865424981912563373877564209114491074875277880278405462804975607674783172638146008062767652913164954864993615481978469701366760699615914936102675819427245505682086808967942566549572213084854267925011393564183333082480727672784650064111614050210458845780116895570349060344047786581955627556243643190079424829858704124530852647036615216653711242644814050947604306432709424110776154485018460400741092481438857746487196439095460309553095546983304159325668557438523547060321763705463011568149255749009279736780256137293030336380990416636154526812113319265706720263438671869430693005660341309011927333793691099639517638831078250688009706509292814048548426447152552180362892177230117916473432411206784214901089722590211852347811829175297621073403831286070407959850860570473131136381056020206227831373015687174759556399987878919191666859493042707643004223214644684888227044296418890919982433869020643924124949863579981823754918059661514678686973814285498492792368331994358414505641073496162867573788403034547753460559303147534431413571690990125789500828956309391180669033398962042275635418861559332478913929038653279076006959541891201491555178625845399907056620175302738284090596858749218014224366672616837633055036745657890381318239214952928690830463421761734161045039814206237826150706935396887601928237369355695059884307866350408526120074430588654318983610901848796307774832405801715660197302992485869577968001972934723342384124295399172777299407167518049341691430407346001736206817476283561977463255482981994854474341903752358788936907749658393063832215930097302252960265887501860417256969465710801891830658180296959408238983314199735223899317485215847828955235369274383870598041224397713022829065597113810681509523637858972611002436052505154318508306584925281048524853550699713738707641091276262741815950053181486380022936871956720475636669193247825146924209465050656664758810602456968128482631820210825390750909752833409825090763692431593537397323726687033286705564542929383576762022964199660749163610912630970513126228890342114326547298228945871639731749192561479647445827607073338817159248944867529184592973612080295114511345471113715755797361097036628260755315010883466311846476062861521956271089096255173603322004493577619318336477052722322600441461329729250435776388250956208490272919573041457771197971211780312598656109891577386350467527140844409262460652446206103050126949853435053710050388007875264003936526658059740440604188799108060387069148343842234514118419436652837651294396613341037687351036902224783815644288208544590554202636348200837227091425679068473910817146168127013876706235899321313446367651506093881121779331352999625525790952501869807732128391796295500156549021585045157930683204844214539963641884415516685306380508787058392860415306027997506952770673657677481812219026087988553830276116798419303059425196607418308546983497140680550703747293496300218660925797040372304208883087469648776613138543142974053485873761054414221852362247137897654232894488518683032210733188028634122263847632464042593178798206052956078674648766692229081597246545717439514683698719697820083519093676325851949828527199238894414362994581311775893119701111837159257304522831161106864483857081055662497377460805466093148714779428191108496228640924025994095931025754011021210071452295770774580816717193653600619924616822329661391440064576832708970343863317415372366397684039162413927656220091819864692114905641227687749840135711411453488262490211395894597106572656812883186495062630157435982909026533894072852885491313988294182426446297865579941148541670535676845510990930431864695136926333390213235137387218233583944552299197762425969253330406125319629906748510476055458529182020961194055302925074980930068829980684147215528801225533404785664979551248352969978465429409871913652869002072838851952790954542280472267934436231423053780592952485605106138679708577835701829921002124229716333876349600428505546984412698045921501724557971788230011243404661027753672037755540703084166943820420385700253000608316686716586361958233103882730616102370803593994514050381274109783123803665132960167427004215494224909042527141312758126238269921227742893345345062165959208846293778111880118559264263778035467470690860172810953486138117067103555130097630332901393394635692627513946845893246467314545615644810926335812875447128657387670964311363195321053040425251005947150658753278334531309683242955899477688487804938558857175267154407649113225990137656465860183367813551434318521166944443955944137932534269360120338412794278093651943199377305874531891762720592365724374571355902243310639120309960811975323787983332200596765307252771203828999397009162365068147534399141061535708029866092385147500253739606813117057980064200164276940390144745690013989508152085263818191290487624906926358242935533601694532308868470927078595555806732731355349313309971045414289285644821977165079812011323584925779931335854232214730943691323630936341755175871312849245903331080142158180039117096274712322728365910903683113361292572089557494825643904897079639871375899504721080200469226209708040708937800584186181004067148676130948626380203207203458767092150142657663487846176788207200295838748671491643986525638400470088489522540375526292813191471314401545681422372939450944865027868414943099056661536817006731045925318897097218711559305591766132342640034702386683802188815826522676592340516634081316192799770611940281980837426534718839878202570443670957388483076910010211700849389454470038625120213443970266465930576573789553778838309285879793329285768734754969216746329335071407190536713953475003149425169271428357309733707572153191106116614009157429817285383711778540480749081259005859237528664872830001485433175701521337809361506635481116457320082657536853602746664117690123785031213654790825488570992028604654280313550570439439362554905223245672370413409150314031072474838173174883345759010694543354987561050297939637202523032158160112181838509141652740886762423508471874394075388479422543782327083815497469374568947508824317228650345025038759237238001853493409255748532243566627052893338336200278523928858465117992131784377627862854032774530965268846860651778437873721648454720283057589093103167562164556294837625651329713912163380751797981882333826774633798858228268989938954115404061664852046775923305697236620345399568285956418984511359318249416500815120119553540434711778650329436373247872136300577749812785329474655735321415248612593966430625459570860214395987773083003509500871894885921710778460689453435390956190432328231469098387272947292579337634705999853633465012325668233905519003737893200338418661417437139142596983604589499427241501533404569499648691370105349732233558189543280735494228468819127384751942463983804551799791529180252335128439726273212434764150737124423653520945412486962141784339658026350472767715214859455527851649592877187407392398321245345311938285643068822555692748707181971086137472338972079187796410361909489116281546638850322274855139432797270817789073553751867541695630533763350510928804229781742268968908500627702082277976137591606860252187410529789505182225872486630106396631644426201227691360077677001369376907825121660832748843765481626030742003653355627979138644595844611699236837388554567569746282981029531999094655875114576205890518455307846691364534080603469239196943013125621927630978286475003030690214640182630517431746880440427871108752008626492315131878701599779220986955902614497800056731918513337300060261999470544759077625258110639431676318375090239219689005157602887941871295417189348554029756062000742978381747166941725362205115077600445335560222806291166226338720770703903323550990624113927126549343788705426381690617475399689479894541013067664852799981287311830035014537010889979000248014175600953743012814813680302627561111945689975573524999484172929478779871078132458261550362042733382907110435733211725951168549656123587857257068007673287562218235342068499324948056487753062485932863695660218112819946072634647349177528301017327579490874540185837486386523798464643569162465697415485154017637286341611143305480901263273416140197994970943097917209516796913998698415623402776445875903720715447641037359577229255381183463982925572501770506680742980499320762860457681026385380731909173190932238627722619659080320411817132953980537373459136779506984673174876038841604621259318641865416858507528181497070994581169513717649656688191567524920305607220445261924373729214800723529445762305949512217027506699772002433328648642144441222623622486514975042484652400360313652647308218404077906356289359762286106437104006702920434373865367926130791789292973215634154743864838158716848866787125135771069918838658889509698139419779766203039352644322755052228065589907370118306324258582625358633682238666549844264383025315497875360391171267697935680386437561385729259976124503764453474531780157004698924792877925939543989017204325848619525694114372449124252694784965395452212698976492571872668377802946763517373003224277331382148530554402543365856270100635928468251230503560641585707288045764259896357807701040831081042165930209478149228833193560908850781842834616789224048956123102477983222916034377891944923607139655865384944167620709284087758126051550314460546184868723081145747369312124575241048261317527408638029150814967006493357596903698407200201247787616236250229517230240179120676150232736286460956850838335074900046196414493699832959702653877030501893890836634525640545617662417190916010054204998116415622311121753239714134644721800967494111746336650809388072740938668733116821156317523666742556897403804691724147130055491549221323168177217884832973736779942866358157988524467796395391783069794399602206290853058221385793467440852367852516538618883836316613351678823668639559312495183436431535124570502827881846980173337299343706352336391517060477556529248195295268264288863665726265670254852234150656337842141576325972131585613742715608900776719920680336177489534269919832996097126633422247252308561176065127944196243960762279493413039552351135200309960523453608762458204908489132542043949182410172539096219277543956146864278875994637014187995778195689838518580505758663270549513245170898872484013088690547650399021458552634695803698759064549729886137562372079335144067555316179025620319575773581848381547358140692334708086287798668702935285962029111595013705983063423224334149701904952732362089689837276254746939445858082735055249965990924025248715376194253227798636767675014590483296659231888076835689511130038252914379351697786718512815755345850354538618853906182267352232221187251873259352965454105287556052402434647849709483102857101040735448303927440168059732892251962942493391361398432814224254410516531023642883152390448497115626728905437907541626736957591625468999927424978940305180350127438786144878330308233702957064037801330171709970064434722451577845893453074220831425819194930666926760046877408777341085186715406456479556648810175735602409184095630743734625635660233879088143080256764837214805248531674322291756754404100668595279350507341153015438623666545136995588639376904818515668447613965515964078629496698463620922681446331766204327079756504047502574632305590280678899834370738909611036568293170166389802238602549207549178315820394393516906661959221300124983818909161253363523274796255432601894591012511922287529809857126459100835829296538334898512804470004106260015667136172074666145158391073805782287028434342335406277083297445608388466558545430139170022120317566945178302713636565061847470616098774429299232313217638508742773524825026377960567027129044379766209697516831727785315484319734774392099290520285470092178040247369011614912557577725239365457925062012483591415680628169165938680331283830962372116319380100721085162174069015523470584556712862810336923742353439203963584743681780820414549151163406216069357145361056271217208878669575247798541948286006974196834994951770355478477923604505117186014782564741553302131608893711008995617568797106568284541698173139908878890938037586349527430593886594008934900829397248045001232266448702474704716761658053456657059886526124500742465022524583871520025610052379456918872019314366846046390922868640401868378755253038221727516002521698626482417414030321320473343805612674166804935754720122182588592652783560509410341393622875154988315565481801202634811501397921033318652514498657966769829776530489264813223504572559768771717281835946861096967838988837402210502313106619014860235275264941707199406297918348681159888441028622061444950655188196521381972070065103739304669116734508406199899875582615451973467709662779646821353246157682280938297635114051411140462044364294262422603616597252768499712667197104838189377845971842411267719258777009650723608741033090726968976806887143205610281567885811503822430480781153008377539471981586206213611833854256777305081240316667235809037524406181959039207079747597697980704837695262447657249743107539766627731291087683626161136890253894319936633773957024213066953796469634185193060362070287945499683658527663878137975444447960035851197955601143332759619456502277863712625423960993018876220966914373017463881900659950209437059764535022456863293234127995640614653740059198431064535230027310305829891107638904317469502025390093863660527421652216779576071101102133157270935084710882318958278947318134913107612476967792905706083510228507485481370051839735992145864213577574814519440602445110306526186801128354445855326694028751503944259481254731674518322755539050623965496777297560308118434688648617361468143236043818957113066957071192844785958435414301965317184398811197461330385362499361078788380629118582187345407818978510800369812055298598662320858482153524882462099594899201581759410982763534017210338299996869273459827259760387686275582995223866669144249927631861981335792398396263770270333942661344770316130391237677095234755926927400610835750038503763395233542661402333651391466532303690005833781562848138736067041968383539620933300307782714890054479208674878291351506964076885596903793677536636094024031369001149191315769379835795064356183125698267866018882752553734285671293057581874532123580209317828129404662737078735799621041062045752573250878335590941106600718086982273456133195675633068082790206014769784362821128708931553609954482350433887333831425969078317611629814467015207910517731336754588255977070337959244056377821180486556078756264740059899942368551767353482930454931431024059887926791908947425468858988714864163484288572542380472979169053642714262792599246088079769433497541564626293427660495486997396869593545544299536913428811626583519713565377525848923320278653519802249794100677631604771084154164804271038971074698922484709765209876932005950599692102817542167460077511638208339573519237229552509793174760694058322530196369974926210670665431011337186727766653546643221626588269334555252022295402436357198013841788323170249782569059502627958643456994199775623886320887004917218524480061873455544954869920675993808544364334865327098162570194301012703574900916773088336592854663177347176208115380696123820370767134893731128142601381615338534077206444512655636136666292636380805235083560438203186083925559781281204377079481359352904112742695567009039099115121207723525388069066571709471436581162199665863625008135148202007493504061468669184673801587772627173689398688772831025376584225892301405558744972086800172695578826019953559307132263499914479831219254543890619906828944764705171060099008203005453206931601020829508488203616965560986314477631873777374453084886937793703303176834973202772586513583665484677508020957838695522157939418798110550141641786927778310586846480703375516424731866338848655836653229935573624670507239756863196567726461403219623376989748621482720301284541130169776342402310197838449126963841055170763445941588786020716393134751642243039485786774628665091361622953849106324624460441051511642134832926083557550378922888536877110744536905797616591421435957978620184032437881371326975319244473209329872479887044225311456816585901819947732595636764585250400967907274297595929939982197918675284098469272466581757858719485619590214905744667465144940752737242184136269926117740772303717172887748893346799596470709468432565764826834601757966452795850778134575127617979935482002147710054925113577416110768291307233410953126217525263101231961083502191401943160860693948950669162474564716997416776862256971853426681564047296264891116682465215378603634277621797342858146799515926099636006206251503870846427631134900116724516424689844667907451697860594704260405414717972243335188557954937950440139685793578526593573964452965357792563602089182275200019056082425332488441846310927219063463121994845989441074365305192177721647351221547251220236644583608198062128753495194747445370237087374101740119417643732625491053749409282846282219718248495040286596779737547234533546838490848703039564369440843351289777652099468608138988580728680859586347374218004792550438711859350139007069935719455193859583377251080700568131694799555963391476813897609815291904712128208930208807239010834907001334293694430669728622751098671450484958692691173868460489530251685673913059157600765091769462902899779701632942579683718831270846944569034864327965823144275582794872946896352723559150898650404241327581322367464930600946028412235636904491420597185432132108101155537967785527909048664638944538768135064204353743327618002329688574064552332826339795935290394807113323104571453615274780145610939266870859063191377899552083478512706775513331070890129891213503710233419026802809465522896103573048154701144506282721454478115956036534827434071104316175944637069714394320131458730234687188622108022799859081780272520216837155459616118088110905308313264357755198941346303517308021312384444243784574897478902952075509078408707091223152209371977089487853263106755115345865216903744719331816677951712049402683428430250231616354435884530253330945543229321402991388854663617213051399134275712057233440797798314461580880530395914904634506520478173174784588484435359778595596287409638944503514545177126520921298176498110042322545380107983560024729257691824748917840869679388177101598667528100704815619570908970729977552470871812101477555602288859957877385941904363378464218375388028353568064684187305619115819757662677408089220822761091654346132663489301240587566725421248390161313433909820736984276284280861146697877223485539304722265655725496268137528704145232491301758062792794554637709024189336518314111775519371716724842429249654873533604742708476263147710867997484831542682652309832758526407941035607763912141171860055134672745487682039062367839964157243562899408990972086136592671388765780787703099193259329565361336841805265447259104036674846806433397905557392274942940613567456765716323587241542020325267466469320152024094299482977540034463777794311840179246195387392697794996153804173501686418679083299650742541212168241703466576978223163108892206880638867677571423865246486852883536346319001508180957020402848687305708885333334170850400161339678103719576594945958960619638266895433653898791673574578220229346845060988262263355116244176712702470344231818792784894837220184644266490413353001590434798995266061028685503586481658999634561940478618586750239547517590404432825580360699465362974239104365342575015818118178247890750501800555655995391510006434744431438953079912573829251503178728291097265966030161859695478698215267096001338199009724935439634671435562414900133520070646644128667540393212908596295991665164972888210889990979070086896260609511999247055139751125615516723481301304948490273615610024371792798206598284709389867588369613260068597646121257935256177303798503641720289107745704655889825992544361229550843039314684998680042379574539214566893081135083157065901425501230945194064343301181533482328166537399288201774376654382980837263996406451819612398338248579933620033181175007195799752147969621175537693970046472680732214860939959500877906108820863755684406580617850349659252304183809576637553975734920527424766315113516572858645348067409084038451089579254283701736320851967497972877118541649034751862391694577654980100800263101436778788454280887182018079267441421501559333434437514411310955099676888882967800817629979370890303739388510424400016645858206324938101602842284609092416051791880367801723047469167447931820279265365881084090103717890572337454997118720018627925368268610151498599520257491885408555111540668628805506842210698468059527290411590865248940652181145191456317162169323152056522289327429311826342350912949938758906146261133814414901503377522684541895358875526793248742394624094399467896435016489645433332745906192296401152810266206096136228140837183871644085053472422015033266879634986404111826775113736717682363601992813247657654543867541556054228464242739002865114276090310910908388285842874597574955184409381763812995988393867501134789015178583921146427797459352456843434851248244713889280493887779348433059214293809458085528108024231058455404260748944710827973632370543775223221024474496207647152828821501672503627960132205785672698380830270440875126303960237545146113931470683364710419809647593371897851739994889996192248355476938498558637098249031455540156558805767317203503225740482451201812731947808943636846319803757651516682551725139674312661075843679801229466359601792808080872933955962438776690533942063482204471162648418827703101339271407847555277934650138688755895182353191932211491824760316424529251622850472668768601163458295315923990087529883098729814249558532712167445966535649203459206964950467451159110351139572071624716686395446073403671404445078209392531555105708313487622936945112772738449025500365537942469791473711281907996105447580455999314015816376551123602082094731040598562540821986288194938120861551639689278645162288606038000887799107899050498227047256857055208071190424332222672842148085914710565802600046470682365803226696430589657355590235285870262538134511112375013161169415438537419291366516556253495392865423342515623388273621904751141846975819340136926799711518041537078473942602084996170992028332522036788408630646530389575830931314495037942144754131235586159129183003816408492889448842832310708095823164541709650245762100530888427849465904097677336009059205000778589410242183861978500114552133401049971149994097475938822945547625042558393673430504136987522872877417993539859314928547667376728814544547618564860940709682216413529313237537727613941371447881579075498453637058312047919732749502337739431285793477230269095410720612635994451252558394215632914802902822289465475832204328718590905158809566701180907484959823410770454084122703325786201892743825404008565503288825632587664598759406056999810006220178088348038361227250487100129615766742573141430628173484552546196793555317412498411662222517834307899404776094707624984921099033713259273581492684338050500845705391991261815418397147209444621882067143161626439513611911072218195908889950426223586134970530948386306629496149954550752113615364177958694673141260992616768169560027944538136056146421149645782081202520483960144524047856998488899064390876845534488639930514189858270316994202125121645314660035811294662860125126177147177647976534402062222318518000771418734332431800610137842374864654086286278749176581088288756503853424969488959537147288834415012765580585036513154229228941918913937060865457554977824345001997092447134582210432545483356880013367874954552448562573658495104147462437684610544837669981928579126940640608782391330886338287039224999223024018710721016447830058551948082130466434839513388543439292206942816672779245751682498799444348654299551814139407586131811121275530023527722399227339671694315189925143842381336430934333949568798324871444974223925337032998944001350304218473404174500801257887327582919291358701298133036151417071430481029312370830027374603835892250754911221005631602340882157775614394931397942890299344126979562183824888513503288382383691756592088177178721844922646051756295914134418067517416640184117844772414397093598954587976929924307419334726778771009149564047890626389851562943998476709561928646354473202968268556803304687261512050824302189904026052590014733315185068190507356662777604159648570707814703213058293066024883717973094335955114467638779648817258015738508842313942981906910938929889429409088009442722239946614347795028901510492885426615106880660210712716416463336359865422007842033589484293781455689614339869604360005852119555417506174729189683637675413030033490472501759479976194100692563405281514526891458424709393313698106652295357490744659192687907687525718418782411604569618125392829044187340205162307642338346138529242319059546575103549600396103580438711483101295165566724084681195536577845417335821769449271112348531584969519024334068350310256860986454820119905395582715644234762212265371625351987621864588418453349865522573269904340792870269048648560312295933614119997322825676264419982940077103011417208957699618416085868335196349676167928166817376015908632636798652030576774129638521019241809351915244462947370625796201979694454498651232294324795799896251479328041254420366852985025992415759881986214923721830556044237988883020415076029078374847191067506730124729030600396758662377044633192800654866634529382650561388269772901303272391129846775814215057460878840205617075098078289960916581747312014133359312232482176060518956199270158524199180767403596391878004593068440681440152004643818461706431151100330598527839968582842027752732378387155452018214840522285118409026358262023304778079634688516308916814537016243975129481883023627993729420990818163951769814416516350320748061741101548371821776622823513300286886273140753885282400965591818053664309388960961708638838992966895802732111580445116607816980270734160307396509799516887710783863392958361310575680355054786410472193430933810618351736516733726372055501777007132352202152388456693509498104779118541735739140126827346081493395883555262002551196294975382848151860150832959934147051040036157011008618302709346198373061303940356566013531114133787583078441706572788588134830837967637526106996229853433198724893240966060850295563030234489003304018868271655653355529817961450915316282675159638889365157634151895316080212838248373098688629110486345622785449018059303320613158053329667387444395018429987609870959724125869980725125128584855494311734130194731192832965219780869786464766422956780921460141546835096727270797383210267797040462238030172379967253441600781593242390950600476717580328814751604670387437468683671273342633576364583661563471489404924952450563357634058815067734203965809736793925925565427644262287728952253283162002006617852653122186904076550260145598153387768665211585283844249110831441617154257283997886670993711329101439260944349737066504275843217650152179768235429643143985125783122520903146729543384210603998105418529194781245109842160581528137298139614349037841747675521502357181592033928231434448170654326304012335701728392371589988277724459438684191687989739436607028737314156894118775055828197856868555360530203442452228201411943738021140756988656241375418839374424230295696355218899549012140979550234651096224928290138839442921324702018482049418692541217698860874457936680851292770369651695317273367218334046499829275640313757459702676610454641111479667801091109363826026216138021286735557695973504584289187207996025405395109205741513408528376034368227888387358211409116153830310844627987897475288593226366269435338170295533075273301677809421286381129665144523262362644287655619063839221876054000151402726217084738350873553897308147149680627530987216716242251389911926186670025045171299716260843276401560909475781727624785667980310962019255089340958160650074675603963631560068784368677482967536735758815054895513932372267858060430350789064265375583679860561231368401052742644461722792878740762239789429436441525378071025399320786161639806478582115153098104910326222194154003659991830444707285200456145791128542041348233776953156313807038345884092845608890348020007166781611475199693984396190471740722698576084866273081324396405775321830637091325021830398216192786031333480083616459920822042607006775857470884982856887664280501292736056587517133789187865270053820894747589730515036581679285738030181774977295323553370887134454072288888127341978915667449175483257966255919464376412813911418419621774028634861755060218764387854814218776562820807720737545617066983153695787876018987161623653877395421202215974881482700761745556803274662859851191288532190120912474463265296385266051623159484130149273246539857483715954228594303003462757743720845690302667242971805589429439291946246802726243272592654812792531926595138464796827022553297325841668669617978952818873616315392518833004207594587391940580084895334471960192202093148919302998168148123243271978348709657285035626293144213231558645439024827575020319082340117525737705320441887535353343616460890547069076631627666749635354911851361000388036033873566676076663719521161712202821870743117467819565495036277143512784526712143104272311074584889696186985769411363327905786972666180299858260431324214666299392476450094509140857288439238962842324538633160589422668837297408486123536283041436479795588562576992542628060713977412289366127742381841182935680740186738613404109142752201828175142056167321824581086377744250872854022886309321892134234371596860766044379181526998086371472472856836337416267143661982854585151089758721696747620849478439901502081098489233508703169929571343761144574942493552868285436304666027250240362660955328322782717579728469920336047328101895391435207174169525789560351633450731560374380007968363037772198578310627567973446813907619247749995503455618902681236986504792463266306448668439866110122532730597463325002478203885807454664892894163219325907940030759577047868043529056070918403673795264360142147998158390006149226111363382108941718249943430655663116728920608769487718581085861754219693797428716538997161312277861760025663152463478589454123218115522379623348184906958909317774278730462275051316670982103496859943766620106557863109287750561636891617520415832097726938876619860757765018752495845784003220174401088424855141268653618563389937761755747759627276848338110195718648155346091103175847488782711267924661018524331233138027699668040003098078687044022075464376971425955988251673410555757328659506069929995376730462813725411635187376568339596149167699886716702698394006181287104030021236278231409892009760927169849392604726306911466144230467238513529440692639589645788440909023630316084129126828968679437677309677626259423062013082742851893591158673631575808141533130772025351485119326540540351807237446607523103181395686957389271059248689945223129567665388929744200903498085590524019201532168523024707943693606421144164935751176011780059285495748350947893800763437783690424288112102652044013269442476345430514517399244466138283278297676660146845791134540093544567180144932319180093347108374728361615370306011690408817469562222881732233164404613320164915979394843108987142733218322617156503372758651828352934111785855406301287587341356846226364836872705523934847034071465175294267316654483834038822468923529943275050658048147083607179608685648243701161286399026736172610159138566600791304462822655271234405685948801980951206406425168933145600110283870981238025098494875399128157179545122801273597273281363347691293522220032930485314050620750701310589885160863328564049775506616614590134506219158997923433618301539087350940761182023137723542514535545311663937240649455351517787796107965020017124421907320685212044780964844052268922066700037496327532786864828549741643946061525402310165732516916237885920624420441261212006642693745520552189510114941262072581637976699633009642650899082738175419432156245236464838522472219174411222614330721170917315749774499220372525097358244694012226235669631392987842818674579010969853978653851550170989258064057451108463961499052710361444162533217932027018925957845294219953118756075147317312358642639948536482849166384734398549028273636736528455673450705454135261503671203778751437204698705511421907815259715173491051682949280528957693466433311176665862693674976696553634821925279045709784541136091543795764837051532941977023120866353237414682453429528334306774359263979981219942096657045186652782396668204577411495329816020094091108831497262485613684452396457411935634188332776623914150367246219284592794303147369777698783949291400144924335978856538973400671970040900197084562143142178961006336973884781533630465437321472068194132997397504560833103328336400342795114789220850163614547514656630440850530696759748459477818195909314171583783583418080698203832209125994220269825775512902038697731022104732725074936395348079346957723061684735719987048569273709739042584019873073843781594902397939100533059795509253917352958571796820532584794917761089057733803302535226513257879360938921374869416531156478898262080815582907991459089388492907575448639146970195774516227664495330179193064834946395252110817482346332899183193269677202049086264457838497080111387980967945696776010317939904089248197840035946464481109548728034146144522062147167228094867275327174014881777009736288272727314435468978984256663761496592406563384588726694695066765908989862969276004288543764125027429368702993912795203220864170737743516748974568022238536399341493864178978259034272274180167171787162588489848966662759679680151307219216045181600985986216358096831536172285335148399223736136484637870106997990366206266161694334740811811202300009824443655957757082605186427105447149881494496146649245565679803538586658293309948213394068713597787458354367950727045452437031793106856593220300476700678088778866566304289424353127731281754465854602708572187556176074484195178248930179451276285227783964105052288798652532738887111886659489260380924046026938896696205372808600587537837289428809617328257847838857293877158593359761251362064830239892175646791044860104052025350663605360837599006400442117827108938121458986263530363364292546433789742653752148876499068151145905862222779421579611343805450104890466609728122105455266025353013432164503112881706207009557915913609184196470623397814041101372085295184396791051962794994050645080297815495632228688684715604520443672131767896253572703712293869406183458142586852006958363676667996593020198774594799942940067969263915552558368302992962874352035671851067365698350533943221125287114093366439457970390421915411204561333546644073118528534994232373993813633748722104660334557696123024594913250892848987359777169548727438639638061563531171614686705103349917331395848951291238458835027750009229886493184821622657952860264793990515147355795596314718455120582741351876411467931835885451313619811717657395863098731717410500441106830465718840841653709310671808408491839908561421273220336793603292964174662611511152520165395763162369749392812971248133135686227299433768784623428145292061979220023542357070418327694697869414679223273253228632592246763363097487050171728870836116345781488136591611924841587656492032817160017825853871295969805638852427041051129732525336920669962962686153447531315893439722677494917858680671048951942545280512887734412813153407246791527002259769978076135546609974229863433529373566494748611262921598997674110553841164569681398833480239918900903450132386594935827038134247107499225490593936440057644728302700168632643953174721920764881320975507449018827978025814554282928721891544683252164243876544083606616383285049769680333651719496906832406366933532494488458913255142512154800359496048210447750107821583850942358650412120086211954434409708037018951379974674171117430585906324716509175833697627953900660820430507040160412786240427682956818951438138776669474848924939258389691841232233451477849761046631048982265592337192411130847048924978034509150030347368449208593291372331745574738914754898072536545261057342566481450292223645311088314151369407910794033925718901883303726355235171504386152078555977812589947845657260530535948450593038208800877201249605655766512173420046546042755312370806671240814541164840302265069469099939562188804818929816317558995387619373850860403355645091587709235660229042745327516204652435523779975099926615264298798125808478210203451105480071044349584455201913049225674389461043349320707543766349295549932247798568079485026261227993616164449972444177534319115441076800855652207084956685586485437402384745938680597731320712449797814862740644405942016488561249620197017641186328867595577752950961015514284748609354504080349579699045237386353896702673981104593791187372570662330410180857314456196835402210792824106040587408187038395339770909747378053040541670981008181510174023603254690717184281125814689446911981316815592743643556296638901494976377193535534672050162143325169075143964124451426588672997901282157125210669320313471379250236476102887811989214691784180734949560645189123197859503950027686077789349390912486864139000630198883109034938643074410811830021251198456262226440414207040605537442760970665704772410503346771916997747313941953261615260359724329903791848786530359693039847861768429461933767882797490680170005926607576508463127674535689485075270742909268274186842359633759849519017818258907838263029387361272513850714902035917762028239318069144958326336248157897392457414252947897352968602570419486970410336727662104595270911084512070733671265422126217883092236156371256916266964194631191881348671035697026884000307550655323636909250054252567424278223587240113691169068955143704920590141036542210817156744758499483443603830311749732146982649567836023364091875081918760602043641295216184639348140289532861426013313764926136295206857915784437228540506302746035929566185317775835669658989280423176325289625811257487450694687755140874357789629864501482008156812486580658611604987184695607386712311250845272113816706967930608137515459824657394824062360350346901442999984275219449982869339748297521126161980926723717238466688441715362078560813515408969416839986022553317301260307303670228513858563431867817676842091688182736845618476439813563103842169626031242916632804253921058996238593774838841850586051893603012520483841406683130738645418292038554425331015105554127844225512702120048249832888531867538978676687864345886387063277649815609569478578440658977857346899640694535206678993168786579409931665941434195245321930970359485525373372516031074689751462713656188287235899667775023363595683147618442579334992423978183542749784811665499014435147626113610794429771546341643405263603981321853366721737023558791217319783364972256350083864937843949248180218683237450245106839848831343385683001641556356886946211166110403555234227613775731475530984885372157435131220811507814967111700352959246718394749221713679321382499323145393046528768754520541348407487337289562199830801288545599445026043699477318442880871189551175520238593009718061802281902823684592067919469632299178671548035072832882937555657935721503210200647051580304077542595919147192026086737620390433586691705022071211984764041816650434517408120249544146102240667861447539255819262035822553689429698484902052061354228027711613222528009682113073808639449887211601463547055371700442421596913713062391893154265332335332558210618569501315905067775205884211498737794616924549883652643946115705375223010545213769112319816517146550312012608859059191744169965171153802493804764721475297815781848590632033836193239396834838562353795682505614452409129755154814281501307450022158646431310145672372089551553988261674843397013447719332735256800977771873343157168358791944268178975135913968486074387853435034037642003752565894408887483527672211150982741235946260616367392194149039161841005867963192855573865022831481252323930498997781744244610109401280528944291990052247072811077240687952247951987699993702617498848702670407056570829820876005682149594246774042997273224645319304915247938679939334068564078582342055731925889045068480424513034139241903115204863283840471205437764550227898167815071730880019099573365867715835011596446470333225339409605079224835097676775529080959217405418388589306658516171293356520183378580889820682075907840909640112355897536477570332222634242200522074866191646401914964876881574902945575142276330271024163214858528333373193041150422346086537799889079689578809847363493455576852323917884603196052211034551427113876039231792746201671112309386067132128021445214126798582353965473149667228040402635988388865690694097790367320740590157058612045696059662779729793444501600601473679807395226405552787837968179522562311850164288785404494867100178435505978825766824145234309236173552302672943127329807473411826555402218496926085150622619569281467769655291793432393572914585727021067154785016579422331416411687792624627594786859995369409431120227305379273455656308837538816669529265918036376190989939913262089603642396644485074754110472234247568847506528450993548443273635126800319259182097291271231522269986829778699498385913582281291102698351675491584738660549989829489529976350130187589965909264895754009567839407458270260998113652235243649412067758364706111921055450872539221572532734996664810452139197583060100765236786894783351400994680470579711620969687155798579019482106876401203663486182100481918830268122388207636228254270353874571885585074120333126393644331695882857530595848186120749764900542441786380929168405639758166408647488490122888434534554308752124224948405921115208483962790483547964349683741050859714483183228989936868213089301663968130047139374759938303349845570574834907267931680419617093970916151905318058290687416870967088202348691085261611997567474197290245006997929195305453902630569907282946124203011209880995994411506044380595443397398713663741915752374255176938173367376452578546320645796701923346118123662635936604571689795823085102132195850453915685184738623922342081950689771023615903219912053619732730885247362119571261179946444221651209003112610242586033901547424102413215696082253230090187343206211737521937775145109260709517384809922478233808813119544180777998850769133082232941908046566780974959973080330332705807440536789524320609845548587361739621392390663971377885106971268070726956434064291842194087752271284035594437126523349144698527859775991534337996286294400604278395326577756423847366819717175368587549411545862260305533890595685168498519278536572678305216065384567563701446482540212803605592236720707322261182193266499045791521100765264554922281143867737921649890830839154668658779405287050661734711927775152014254753392030520546742569693404125435798145834211885790009343657732755308025687677307156255028812899927610129899881387212852803986616567106977279610002716064947251027591648947635012067803348461267572009792548244714565995688332014054818253783196718076300269552156270426221215691747016330714009564204323284533919700614134614566256858064911453661044434374460518702958746695542500506009245415328270805781288893496423393907900324070117134427749054630516542363050295778846179223441016757055673624991047463552172673313834484004207354755630302405887278230226990750509789893963699097419178307583271717154117107465541965719201638406080409642482330413191870358363851544380778236812447624061162521827418054735759123175143625723503191739700921881508785391971936736479196664042224102395458547487473010752441144241000389685310077891938200949388063315353740500184560458444671754631053374810730335844487717227848011111540145210932836018535705664919328534967679938571088906876621263911270132182790321247555263261445464613256752630856326174364040701765839982722383684226024358811255422838442235188610324916533155544507708600947680971471823652436277185664026497163969837909065500333933595714092462318388805538608116276444575424750043896351031793484189046476049585799401440022954729911525754772341776190187701124089147430702699009369896771583810525332139992985154120685950971377086101356511489881804080460091286533640565267503113900789138099007558086190390523130657712510604055523280888052827534662396530928843886503059969101000447183005910449022305255101355204624895386269667422730266345924625552757495097506057733219511838031387408344422378294999384365611215841839036309001779802053655153639677864459919331402806426193364931407873943221071608825106215573798314133696386344606763013514375477611087736536422769650721334294627482130705334839128857584357352204693047237142704430797185629193446271240191124643993069490692127558274145298912785246324609551295072306419228957172193481593243150257745652405617522953564020271162665422058364117544985253864631934336600298899411059694571060294154260387321793770214855369510525935330159561705829480635387962993611003880838699463036646687832256940484781020153845741701069830953272612815626631966423595427716419838682266394015540566070732739975414477782312816615575785610490940480500556462397693075600230210523429158934243993019309313634744200573312065557154138022424774069195943905559283300340715465265440845518751826956139254948612292904001618800007039035091841776355076881201857847607116969771177641632381067125990809312205783388695542673841409194638217983389310564706402280328617658931730413028807392826044789313180238222278394460274158527514840172252122062764927540630863030560149903444323774218603995314294708385704031288712009333701976503321792475466354350625706822434936716340053518563227207680399049869467780474063007843629286851009319074859259805506094610110808148499615925606240880721281617973899324224751735943212031787093991191775541798584577308384322233856753274133517933193759145378592293628035508726884265948784993961651373672607802000212179118242297881019889196774866630852811099583774500250281089660543898764477662035101661728912483718651690222807697366641216574054280189786896822275945306899704220559345137748143708309400529462926556624295138749219055167747662737067580126832617863422234293085094261085937480096031355055114433971721527568318248431955089263511790171507878631853808636956251405395633264109003234323213613037846141549896229898165045625899247799257330178765634588493272471451856332384680548046934418570849712190269031532495453975805447274783361645963339318351595245470863931220235983574741451446315657282468609274247885318362178828479162871462717654668692255120006763414477683570494332740970015595256856985170996849445772940678434871697977056293373098223221523878520785077009713147361070685794679266633354270998527674165819809571244922160795071923061107154134485967234025977207813975140829669334052176326964676605600927006982767306169597480746776183567239720648481329513534556873998408647978832059250136155404549584484598668726836636323592577191617763661660735464266807807023053554593573587295581384306832841503980536057662317513808941139781405974622316214434853849047564757899253547258791645545250930738740742960704517905972055310113285564824970009291322285159679974404689694775555623454863793099847068114296558246365704980763714146556033873846904741038726457569145561629803979624113319936949665077187694186278831278133955995084490418584371677536863455474672527003422130220138471567648799817032854257170613822184435794893503083356856371183469255373512457624847909516150251977586083719134743577976981072077470174177841352637316309819798637995297303833981195111760675864927957215636478129808494530931346180156368861723706613519311947858157451761459805277639777590038349318583868743062335209447021423587220574072111090039016247425269384661835381413285486347717640016143207153969154040733599365565975441728151696685607384092980431127626119867713398473196609141104624667794004222343497843054871894691477051607952673546527290906099000574849359032958114056505948601461008754268864048045327591393746916684421778297252038354190311531347284688930599403082863256796608108438621820691313934829796958174581479586155946462556809116592001983846265707789980959399276993738590533716951698286142231777965522076297938994682457592842616036002888474107125107605845775650531670243938485344481131735825439304112380725559628557483921992396545751755157886837709329762011689398297438533378857176728384240823454700868643424982615820230717662774210199076217673529171960417635591682877686779620811208903285645827432087521933542228571724853877947269174404933738191388277855647875063245641719205281240472149876152061380442973905860420992244391951966341739826964677512948708028461303879672346818868844720148627198440494902599144754782895592075873929384902462655514407221958398505900905997990195524707006493669067362978032067225232124489405030908042516592156981902460393040295539464941698594407400595361099957561075600447942517605943633219150444244209617489011262869894727217679241800662138081448947783654436833904039140306670754928184732174043267555857171110273632288645451802204302703359684583596493870893747617467709554143420665568016099543628489287663197380473755557284250077673406387345815653870832625989768918672271009800828415884060729271516384095289261781179577964323561205972243536511509990332060054361287551737242206900580956935089274458941154353359296099899006725819273266600303281573908603565898819112613257274031521289197760261220562768790752434667848407707268129624249617302049063348218344039912734054590749096760929671403420936039011655188669272025767908095219730098053052275345801863997223867464104633720107122459399287320682122381099027722077998413297305923870065798529247034163729924038471103163609975544843539682860346973784937504581802839156365354214394955479275259323686392163930506549746146977773844693368209108206291645443829411548426549438663775493048771864993356817230848006916135880976411982981207955785263612359376564609256657318057724550899541587386088146722101312409738804425674949566269161963058181842027919990791179040162147317093562576996334515160877095530232824191573948226212691614194375672446946394974308949750974258197377557480291787682194577688816633040899058060643614076038976454730002528536477022360352006495573092602543936316730319936396445867985170790802176922393653389898270021297375136130343741744994070994014443634932461152655869570922872052221607137248567574807365050128176261056650869505145494452676809284651410009316944889034816538880558589983220953817005308396181175545422494963200436564074055036797078377153032540703850822193182439143142519973453511387157900642538169762191625278003554694133065911661505982273896163464110374075893287867351455805314993911654566610333523874345627936517484585020726350553465133662149650272765147763998309228565661762911514828779645884629704752821628193858316714970323741699090989591013347403676150438383346718618674250377265645999993236095877361581778285417213303657397137424266786764593124212927728244302068113378434662071797261295864331925870847810854670420650346025197312571843863634047095685227463484069915601577984692179267218598246543492372795413793891316042049223818847425395666692537277910874657779823812898987634808411730395570920678374820207771517086804623964709762013912992691330964887210574407377917705444648736536162790974355293564694970391517157809728003502754067648798670531131724868572082884552400774789376385106455366852642895425384558768813604395001886598589294515372734199351082805383172910490506412289470935977700710483607655633695390520466281786118248517700442965516860332855795720686067192120315359038197674555332913317240102696783116240701485359809610164765641502481377039859085200699971922839286382010133049028149993480050380322976769402974749624075720628179842087762450127810167055244643784774048286913543340304390883440333612378937082882607436360600253604672127710728102666572600819117517342598890528333264745101638466428664175409444243126353545204471343984092065201614774677841061091604212713283088056493253716088840161612202209475190630561132335176040402554625525093604887272435663467801541889752470317632593800907800639140571630821399949747293281065791259350366804681907265891392495646002104563140162353968666993485002245030907876687806708682024928161314208437872458635967153495592390078078249957658604954303204438170306064188626645987762957597744682582406399677047778460564972365294679982020581660095565536423989901774198965720656910461885580390462552503020387759400760440433035895702676298328728351452704096974458488534821292115723422730778803622161347873622532042091675967101152674098069618034754667488908363862633247399777593530023166885866813049580657549931003094352969015267718170919410662912951795114862238782120828045015448312038381141339005269923934471400020822062890593992679611087949825665107695962215285212586825395534066599233237486209357875467706050974820753202575485228051066242825913200069772011334968528715342275322112834638000651557932738007242552791922574144823446593056882668207971679102915280948437379921993092693190396020189293173039675582752236309030529981922683978437162563644029507160461029786381696960077094078572788113718392018471568825570648217221122750902843415278725717094300227679140888894212461919665644137009805159770620437823937817995575868069216221361503308671295339596587777372256668189599157977341066522537492277421267160172374959455669602467043273095286416341357847407274609102628726095932275547979073366893594400039764629695966133349708724614876920339183504953499995099018641552498890895590178539060051139299978930817850989749417639101940649801985323527729586303589277395256215495107214504247823958282151624447294008776987063642181612104680649976798260447179735765923096195982101446926270412092302454036765833770198471366710206447631753345372448901240406333428505179418888723541923387356931389321684455018676241458139388395400318409252156974533056427570876538332809390378600559907534806237222318856455415716700010334530639926203847440337641292968141486488156173444352191860795214791961675165821086145447995659187259650999943963380249315425334404369585808167580381273631927982922282301255125909577313500398981853757494451156765919245364412081194147174711900929599546776504319143219652718405177770966969009890839711459676887803754107480939586277248806871901706164132580253838116568588422780505499671933124209504572866102470397929309977896111342586811339842258283075520281321107499981269085946490629870815087858016151536510287717814433895450113003160225157823454518792804993788982551442446896014174543479823088766219721999641531828180434419020469951041610539003334631109300811874112057885847877992188351426536303897513369632625514677575523987162086584124082171940623260180858326407124753572473373389980059057861347276026339207059902730111888510502317640389487166106986321779846688646778377950628252014740583206208580068709048968702773057427114566128893334675385200755126620705865639327408602717183261653475366515551439750144575543403384936929938825497911888466602319779417838823356427165691943818498781955310189708299532739519814367038822403072761930650754152242786628544335695591544007036253230631755018332017599283301239388053369539596371833570583281210752192692628579188309088587356040365539720397640875675471095085864074857468997451389350665953811196507899696242659317675618608924640768110176725888533575537868450135120858950220155862758167462497912693727596184419238971545983902905030908937046055724367816356482367473520300948422991267358512784484141229084007254733447780776342501786713344664691760987791382108220231738364736042174764762182354175828804645155930716109468261834554111270105682677931889070251146199034493127350139146802863338020785690902245665208293161464691773457148230625454281716860642490757607372445251362744979266388319257114429800447283379233711488516680314644120097370907170700038128105754594069091097483551842073839813550218729780420637039373872807036503427015799708268110544839322714233802007011345678649123796679337309308302831542187443635767770138869069693853458847223587597463387956585747974344127243013985585996661235303862498432958514880236217226098113708802938945138925813263355294268930362944455888093370436451995812737191770557903225250623845639327671581777592959064343929792423775800559799020515751170232955173738838999408482887695922429993300727715544816033712994339233061981343234227219418983009429303910881229094245994240831757868810778816428965013809026317494641849744342990178340832167036148119794572721898984377390448105722215234625213240099710340559035769145653825238618032039157451336804618226806282142449891967671918497839052214307751556770526051508900488992679098456449175447103330202760917580170818311496158399110271665466282518802078335073217052789031093164736512807674483276910336848288279086239079899115232286134184251355266849582921746167574199942424908871949366118553513299242291186677610176166728203513368864830118871947026644314477353659864659094811324645093226735200642367299265333300269200275868204430501019671045409306845800502368109933477082645528500691478473252806234180335193195177390240219438483901141724276476048707493072203916462023673728599814005138935544830411766425089432622730971724254451644595322826798841148562429725538622405781803174652933578754049645691647914404626361633832426131224695972534252451186566545738962430067635903805124763453995178246570947413730805384990192517626275756526546535547065115226364197605846201454692774673455606814528158955203384274914473847935834660612738265872744902512447473024889076948758316786693029779307714014625876329525069518046906518207503330317525457140752069302892352704947725778301624482379464348259071797815368341937591619543875210049432309639182290542595410306482731488113906289043133830039353043707272150896020237938327196430143381643321196878995633136396224895844859755581579502536974989898705536444062633516706520123013249516482746721744380545591801804653363040469024520529547565813359570908627298962927514930825436488643422648849613219812403907231859252270007418141048136247693411112350114067830726275211986282618542186713555782587370978840112543708289139920985184103670390384674768476674640716895405901922210229237954377392562684422777781793413284509044177475789816544592340946125518892430006105603768939681029863020948541363420994762139528994949728756923603084314100484016308241186481470795937437740848621793876684255632300753675711328831620044634760180688787389138856704554336764773818617222434740245978459109439227613721243671097990971782864230352830580526512056747629126862388455218176169535564424119925551622530666082169374174606602577413703781676654978151195566655789061332019719247515816776673821683572805866522408874137479984080028345505261049012400040652505657728388672750231666808490782412933932604974138709963331486360817655188069045914321870742154350073262368808434664563342887392121873879479243531188350951502848629854261814585296065255734650869336783350015835377675055924677110403296024201217954946591581556330457451420422507050613033329711187708149221406361929665429317532909649160204002907327932731932677320809761316565994009518718265613647695823498059657978527558432410623311846813418479022529242697283325642563476498159288145959534103890128896581248184778691889166201259564214518506335940862105571489759159875694979569869761940513527218941198483685476018884494129806604203652035550952740103858601924253368221782700152008142479349797069804837042159291473551598953893042844986100395277320378440772486778341114547698263000962569299926154118021929900967628026375701707223724912675620375063219062219037540569007384177093413583586125035205191985862931168622842319691985104071935401802600993395164624790825501854161258561552939534786528060297565183127600197128831403423676921398852165822773484559749561869748836147728010562673295395322067406142793390549815967292224599622703899124529008135898391619369723146869997842559367503467629221960051730190550567839247270446283347146975677632328302024608694539389985373534421718927274651718501876937441440971249144197732988575598958106667966204864697185481999933875794980299308392319811467330699191700826293111719804311418780320174071826358929985387199813242222054459458725374500846362577113598808800810329150368662973127984430578473522294555299564622532027817081176498989040347821768131749975535007991865172629258463178275622389736669969461239487021627553685742049107592851739641942834336374381542932475416048235224723826418827526545920426320688939312636579435857036518468583808678719840112756980729610051203079290194052722846475453143007435617929216292262116994606828036208605064193098039034971980937067325458844986913452792790937682141183803022944682965826132250714342450339047426584258130447223249563033280372785510411740749693493464268247112836239973005017116469273768647057114986279075350348920999151034262774444869704249895924799143397756772517946590393014933247335033029533116785093400172477501924527199289101702748258861904822176049215256571258009707358477627856952628212515505635302849072934988063816487501159823194117529648113278974638212478846528272209472094687397178219307796850628351831846437320664295972880346208355374567005981240276407791228467409414749569283764124154650185788349173212323718918803510815567638923590292226189141879493134479655996541706157662119696237403751957224345875973684710935976618530958636669403380399842533518685782888862859325994204387948664520736379439924468712594353788201348659433868117514946431550000779773950979796690199920231092600038290276163896127206101822363788669980618338400241557978962767699509211845699806188215621657710753675142245813792490183557535382649404206114224672507277919520138396240850352647030110644753727321840735720588583938412075995424411230997997952424015184777231650001274032184479246082556139561374841623583233429164049338914697094547696048292372920783033852741357287223050554660561687448200955280081835524881379515617035436111492208641641620679833626944720318568694553375228942127353969963111246072759980856638384998433235243402125827356899831873148417234425407595384886523728775158321866316500946673442867201582225677133608672961054539360845314397506465834126415332033256175488567734132785129817582253561795329318605472059816973123815665961108085352466858136279454448154260379155773729522110806824061424798025354922070069182294894171540111677827716812809734833724151180938495983601032612149021518069896974029444797905122172093836491620485534883183555836293066801852422916875405965195492341525035093725523915080500809660762752820344393543990726247559307846602847709495741141903584767906022975226810841778503836764245634141114687600627228343109834431565650884267258382380873626600586770764723971441868164890575926845743898208113611162430595571134168815655164770941635904843103742934554743230494158682838325451715394083036672183226385680965188595945365301238244515141017695535880518009925812097873555467979948332826818283587050458610686035995114446692341539799984243627308631028112755389347441506476483142571165353585090658846890193137244745609001621363703444950239457397272064008886366869852981352107062008719326609489664058076455862086380579476330502802820036837313739650255617703845464448147375116030335892355313609572689407086046873475898837396833100305430153176735913599234793662140620935028477535581413542697470630975506588649075036222131768049309836479709393267046258430629488478970315472406184404077451964677693404229378597021885295781441633608090310274878176463839003964034042696172654002662520747117954460143553833756080386463694163779381486132177967863760803504644502577947171793935198144245861189762180238593802045438349384363185787636112789666837175256737215846563880477321028081016084975443610321738277567478747989357416872609489849851395095287140914054405429530749116375321319634913046994766742013451613143605752683100656083302709136207894523412638932617270837328992676848250599674939647593309275049466588158629758627892722093087609197540048448255258161101840304038270400295628310992341762803076719205882862537204235499089572409754982763527216816722694088922761536546627331873277717858554714822750120172051452708977391590083416448006521827664000730978225544400385140927379225417678853289398558912429520673707941012559969831246464786792741631923914072333478837683312850181629848342899746413395913964130955949547509080680519153207846651305651146961734284692832000949601066182224101261287636653734110091644206653321682246493409669590073418310746097073112378347082070690056677980514995803120780533027799936263704886102231060833680340260929798030842849206168764505520686009111949040389976798618024375654713236435784699430307687977919263902593983304334962560171458171268543429296548462419847030762967956893398093219061509263925175160674425164247060600519471065888832837020142570578521802615569505259612182434293702124702095140076198913548483904055959443032538334942312367620448385481538886584861004551213678684425459181117975411717299717692978467825896519908808844718888421366892574853600729120794699761070046831010014077209917192337536276032143195868568509699366982048202594390171769519749373183116030251424407306240190119768393685677976792179533172143904691709138348759535542148640245744234229614384158406318473349594690111200415046115032945947820526697135430198891366308330231852517610705675178372253127939059243113437296434373512552671076681649229699820075774469670523877912626205619456972825080463517040389489886890211390226305255346429819473565888410184764263956745364487792349798796180950878394123165692845287932547375134119967650745728361487806663892182829592195135655576309005492354972030288185588186646208227883921606490911947607243435020999744253756973640455110595321265514747801464454369431816843883710057936317267195117373265819226100078615287839642314004385508466776312412673513586601736598540024463857527286173195744307496930586826412981388380760163492530184114645598335465055077790740868013269976893095657697659912289420915596986854078140460810872699516045776093844151441411725466292623308177676326007250952597078223930345091575908316499700551744705560755448290981907006545285983050219099552971919531594595744947532226076972110928758125345794528946870528705095628231185360402363635640946875706553808401020755948868229587317222093157188852052877580847102462483140193124595678724935570915291470779841780024995540504344964654857086499515105100501418898996261798077550636047755807525014114617241995674055641077429556193306758308125142572371265279332836588171992039740647889845152165521986009350692123848971866398117727668698525876933922815802177775897720180633863740924497598604133060911616682456001809949293519992812982411918158589839033259628417522090363529080885655068929395594662404470119615673628779819246228968324495242582675977881341429971620734033037413040884173935800380097256358514526535989429038984734005863358119137303670782575595931025845227434109938308044446989789371486194095753319938190757566810830741110497160865405941646701271254424221485439079356431682302311603038308144215897235936215961229959011803511342827344802274418271514074512341015906249882121678642939222725277878189938574459679272393288273096189677373046270249234003258394589332922903067517132110320779172032765272957910266918469215203297847997414612081609944373885256249138026864508605059864189016344197374421771140910380621233962292728328387121595436192670898066866995919020574359385919306608032771196187161572226769612903686118046548336940786313309810201468444485610120829145526332167610615316374409545696719799313156959222983235491900959556672102169455774405021103369207198554799067681710736396739287436933303546629608995143210858309645005087031638429455266961528306210484480929504992287464205564775536528112687862373764526146234367421493342437159801396056746687153086539013746179129061846994048026882280006811326801930640762910752336969634436661346677199496836455728125198480856963031658806681304216873302141924212554112850924351003394860521738406021134666398729675502906612370234321087447839475748918050827055657371035771796632944235973912860748816513185438590164714793088489489600210121944963261776036388077434041632592035432048236798695245360146610029085514870678596294477210726300511288413735210716110993750124105829793391960429945673515630747103630900874947789876368844703055895530559372168697737932562541353028277233508935384598251008388391664988606492661579789549791999534813798754676397960510658772176139948572801974388053473222256890903157804009370050853970909910219585809351776612078229045655159122861240353707075216710943562315606663004712358510283534682240681398521142445354376533690223393688712772816947719909937694453490920110773002018934124807817759336433740493251003300279582516149748891338483802056601520377848976500251751252026239408310257312438897970989089751017564575395675603235755066207757488116663425880263801984573726911822467358625536598130086035160588915203383961604709196493188895633236745866257026224595935598039955805900274932361962097516456960816880965501122346579629270857983608305816099722383011964694169549039413914071273129922181601125024807091506893365460964375249659960801991290740959323954202937532292502541635338924347607304412199594036840593598546022365989828625426747940550998149006638559307026795179957877422534838902226094682745764578912568256567245599620935469682215829442345522960780481181461911941036674959652270603365446085737815335547332079960873111712474595562114743207067298591476334906537943940239924750320560994046204214305874430403882325542294220043222459484845802153751569224214486504050637334227032828078747995504797744645351726109712865371828546489679050360474545448425731932505194950700696743573875049263602114920846406970831710645813185782433211200385162637151918234396320264067211157065635709632653261519541100620233708710188890256432082349725455344189336931520631927320893008965133515148023827639686535028084369009610684061535269591139791990452181538754149670327949206155924193020351701876911313853854610722721463133150128375128186676569427911422101617905625366199415866393773875948783126887621599082821925930957049804510605599953958263708953121255599434108153040491083880423285317087165539103466207308780652949675483043013406475067026963207768483796202421933991627636848980917209160522184150605366932414778749113778598709174958115645673069498121616437504844708303940547096718019656862436737001682538044586299243406846940267222698515539382944273140814388077947072963754203445990139139659190218859913320001151292540667553169305946193293220884314621686918842919707618035849083692322858400138058569115866822119099693711417309490338003289273014546863433619326629336794796228481378139712629487096799010913502635445034048206195109378443478035387151909001464839553332365874373570731444236039287575408237909722574969817510119517623391000951359206696054704047782312252928472078496920219588150924737900452645520831712787807949543656455214093995168028892223897620801549815128671632009178423279787546617193892039853281740824453393942576722877302958890696598288667081039475280427605085847484199534076462262306761477938162869603912431196824189747224122869594545349614190252220371068733902232443019739457819020734511501259104451923821567909571515547360268980465096541341209714669946310989995418509586738067186193464210380318479660682177141159549728430936838927544499879649040351193204315935632805214399004584181217710509765568551644213289636260443463196556193480684961142565995566355486016167352824466443029045270094264901493570350669165572863291983052531459150621886879387771848417447138528424515437227996820857233757351902251482574720583376137253828612705608015418829319510168099543787362766092954499694440099291116467940523452722957852342404702837562146472599018869770512814282926625030016770120109788397346301712266324628972017822503215467358168201097658243221754643149359012968506726336865197800319115428251262670110958869014688821811477908382166459076187038678754559903510226455870512327658767047769696626345334800748986299611445196967040160546070227032729566941323195017739899502986084306648284944620769583860047167308836533410537010330824481677163626475426943431012170711003395428777709666995326021519405901944581292902280370456295697422134619576349000823179682750271366377609952171244093406729758662864594822988267163543253980595891986071315671183038942752019253678692996722491788684774716910166066419078514987996888247654048070849168737074411836510744375513028354418972001537987334941237776020253015970883443338188741158131645121760114589323015836934335942628561804144884204368797716297835005633200091814312215462254750174574642333459533646961021417275882518333570173239113061909027149972271485505981545859989964740671753741171935117775024360808794299525669518023099328213588829539449667033488340353582254583494928835762588750028597547124535352177683559810776645655022252708086736038920636832633207663944385293212178257292162780755249057866832005938878436002480750788184014050884898579169406858767011821408311764155782460501391468269739530846707159209888974402048402226032588190552529340063348213783043098259855205132574349555272534655145493264278781174544055659206961723780682308781365342090758296914183121848722051020711553035027722727913192513278722174680337455805640144843615452529676931750997259394495082159581284314500282049674501170659022573799096027939154033430118724510430060308343310949205832972986506681404430459301141875072163573148510973226809287893358151090533751317781383204210751483069633848716568782612374117503822307239919797524652219258010274784179083231759036929886996499386839681436948509222291252917833686769724379667203074882101722149025049987317326383040556180463459936283018076971887835833369478330010878049657338456745580796563177121328392864294011477797004887656168646258363941399840639626324796884263953307555789860803948289677240929140707204144313104684013266015977913046813523064110741436990567144594228549377107319223537026998777236201786449640033238828390185640483181714950665542503460363212575658936717441111132316095104121515853209125595242026415219455996909387057643816094124878161202226078469022551902485219415996772118856034062923915271116718132623913472362517976803640624384997241080278219787043029063193734588904522606475515382264192722790772137344569102706223444913105054798874518825603256587749190502735153197727836595703782030821845977499430100130979430556877468535476738737313538079832786360187159802629783026379195049487958428643798859534936948674070307656477836098653376185605788048083379538161295660881990397245077413901796995802547862526922715768048489893632925159903165553612125739049121835476404981787217172837230194591369309907091446781029926125287670349225773879739207627357430384152651725738617544992612144607523445827970241026589005582994958131361887531590968933792359381225273213706512551979410277054429436507342943033486403615617929151149978599986252048774944818995830539318289972641054271851145731676347117995322282511340209274802387174352007149816003574905276381354199429641675286473613394244466479014888855967541693952462351187849845106724808594127945107032716947506421973487312879901035863759345663094294182615424068114174258865372867563956610240406774577912085810851792234341222783371687434205720673276450541331691111219497301123575352662394672649028501446705563430885444562358784433400075114641500950734270855761858602074593045614172783351237367435934662953343716794795680812933352440358126946487883332872505647193642688446264341908579969593330974029778052913743894893665398310335934419809197466624190875199220282717133615574229713561274980007317941926364022339090271783562655130105603785901762766337868871429609754805564479018917256503859017518052279604745617026053015684213167046272300828208025073889144773522375954993707642868227357690413050577120166374072778965125773259387225004922138366591708289923440017908555916860767644158166581140400011978144035814365516928822817382149327225819111902645329052836456281657783884104717981182789821074341277648398191714570742824162582938751011913313035817666693426982392897101540556405832967493722387207439610858210264857834540287248103906905751757657715740473227343386802984965099863394596239731265837284881454951119921774523732665427870969834100500287526251226082555387174327115961134640411589797602243868391885718585687824144221256633838936342327321478199643609243983883097876675262151394780833508010385796567304149384306040410597774881469487162123401066623387184650707822338656373033659578133230557026638258296374374807649124402230923970050022479175974230700471781966527347562336800518760044534099695161245251963434020636209712656106372235132126540033345434493612005885844125906187547731987123191203582948409199591474931088679351564464117976415123397026983808358879403801285137210000189179082431935849897243459158000954720710325096016292218146411256300284511547982524723366127423847139992499528454597399390558712299022145964550765190911502281035366330568771748658636778065394332735376811590871865424591880968414737951165226912392004252770165223250868609748373214206738651475389116167585909622933788632466500609628741997406889159626698750054285698127537683605146472442287534887081018309406721198439662253245213288237657316836181379419581567885235604975505072402311367879376129388370643424347854602728649452381530024657983305862711920030794286949547372412837890163432900177014954817620966238189772218883721436853951970743649902105378441310896417836929181913121330509255995991674037592572782319199115188176015159510955822181271403754417196879837805616914153495062415561087255670567222743650152453987230800926376717372161255339068501822581172261720028371125410799010833622384767640339330914343317039162182284896562538546386865037105697621148403089313933228886299013615012334570594430776888386378343611472261973276068890571957617363541100855689224945962457695218796442683467352413547828884178961926023456265094256642535997430270093840705602796565817851185825280086924006777529967244614731594878966033150181485680200483521345158076015762971205038481773879493217508752822889768926627223304564344220715472757388114926477000273628506753856875660558547592034419974623695622235766213082687656621324415838366893890589444984064829436198022813749973106052376864550784229945570493717546849525223693477111937240834798234457690039979664936591428514179258516115795192870043375240893159884619639715030188222861287300494601108970350319228400719878071293001220326595473872728930355845995910081048887936045762225063216337755504788334117142634904223292986365310409727552174008564395008821075334762129988788865772139996237861370081627835088938777274334896527521122625395862565821076888276288720677008277317504918369195980156697854750836597095224065614294316855795568684622184556988437763210631278656100379796431210792433534775095093368758622356458275588500274843341640086654353383779572585401206052471618319367089406000959927113946206847476353498132767979238246756650964806750653663416740601711273113346885862739847290344223330918650087555723977268276270358810056563528572858467965179150351114064463021617659686019976154097420092032504956662360384990448611508141568405010566699776637770175792399572439800544168579666948575174385565919502513867013824745645408511212131426877508347308732581944005766893786022128185553037286994133213653099907970297938953220148640158067452471911725953613695390021906325264386168444382898369193664404848460886463710680388704276704556565930391696522123007498440997956115764319534262970580374462222118591880739867217640820446583729187687362026547050958850217293171979197867551224662410431944969207866259326588002075371227082505913824853506899940303470330526428747738148473352631506348580525524248407489440232573900897717287901690175019223962623464622268810570458632420284425927636748612141884081267049805125091471402864501110512199431686691027741526226869757730402645170709701714292252049764647279851616149915363505127113018170763655765477996851821505697887123775836353699011919462704800202679475009389089405973277535014118712212965384379050527676406235872513968742651269869500951233367554863300249659900403507771219320252324121508954536731236587690846832039090839216788707434844531274651981352903294129689685193261039465023658294605439474639839059018893052975717809832743096658697042921769071668918838271063501903553538237560800331324783039328679667976228190393688217153710431030021820606281663395606264901737425702789725383726456243439832223237631871709774620417080000333442356500554621513471339489786909730344701769400542664610575640633437690303584157892260328055807093394355165934819115894886379088936842576434327596814237934026781878836376873022475550658804969070993896321561374487732357950282093947437945768336614956878746705945231688651838661776150056581956814254346401366281559387595034985035411202883900097628542221442033192955875464826411209006882232492997497614448804226112767040101572828822966255676797561818441641679705521850450026190055863089445880690501055419116667197950592661423389402072811275125548430058213029291508692754667752914455289523597164981763205770772785247465524926368305136315735169338192701162048399625653578044181760160250915708227280178644132876880330463206529893639125838824962339546309997667518744974252829605823903568690811103993421591675845334519397587884418822848549131963438895829809038204168059501023683824573894997485997655452179005590860115861074381621979820478737286274906763363045014535201106082127860214472830250945413538119251686931624233783335273466229167853601207847568701578671517512874286099979000224466876347918793477303254600305662096887073147734782595170133644872728981675426113576095272380640957812993884857210249495362412570436709616148172030899723705547914527108530111431125703398239572383287628351230778215098384314124502993856066208670132883024890080356600021462015346604278261948675640696295475030179283623555266313595190420128083201103853802173444913930768367994045940170825037547241601827614712090610166078917513391616074904790785547205396385190289113772105617893026717123503873970880311593920921424221514598659436186453687246773067589755482306805405443850207046932224635701762823014874128956261824497462233347160689514966267379798878200213989596468956604577581805900608615724372924364911921711588955910836255980700035708000351016075138250435850097158565260437256861949127300510301142723379792478768885257934877660212617907326407669087126626078995870291885238124344958348541791048675913070433891013354128763766850324300638221201083055428363972659137397645292558463513004714657297935733152647743941150132662563044050543437098835196791492181608630721392487649535047051641601449588386222375607973066416788962021872759491188082785088617659025364600307598133576929175377326830377914921816956487197031079329090457730661761340232082300509112294063552244600163679829226578618273559988045042641176090469924591503969621885776940537486036390764205770780999090249055118365231902926105550917213979010595689369773156668111221188856927868096584533130761330585835040999461633317291922820656759662442162309466704989184767209912196061286776387852635583582058299878110541795793400633993598379761561313505051853786448008210694306423556354928749581103424732606150390045337760972131004076699945743124227553390153144710521190223141213170117461358735737878492718175614288710035633949127245003089143355968625405613099050775549719662102977946699000999637804627009345954771507780898884032574479144530046108233369892024610443955136761949472481922194059253878414202428130427692075320432120853697782067757362458764778899015954087302810786329781554296151537586323609964463608866358071331687754698850580281785267731078403150326086461215113477936028177128019552319099991677019096927565906617012570957568440758308328638891472937733250373933315838817742944841630894743150567023034379503034336239344816110626746018674546345156791916873282022674126285428509335850892257358183308357688879261305556708201981418725985212692942344164430800526623644608829881970133078375020068894791300728269946765347801394818165304972782093500500147181822471073923665524323066205511308128779611294451756886789331063011574742821282585102011465483462941267020278298471472106244859716314462213439193377542058819207479406246720396857278789229429255628636708109277407052880201248606694755432156774113687264501900287042417842384832149574782523654382683053665120863376570627053883695043371952177011958127288680083234722160485463337216798321396456918567015483285249452573258511131524044756722470458958532923894535659336841423117549479133792377709437669782605722273837910319831243145194675654391849739500745200134406144096594930546825005291717053592459317085388164246884411718399337016822317055701778819306667723828739608052167514847536390696221368358042695392902435113960369036481840922113155492718233548272631843197995611006733849688032506448566052421345592796014098094701362657163485308988318567584542998206478261637216389791423785791372906702072413269845504727941814976850381827974218504095827969897127753502459998385292360057894970001550588702988677235961272795695633039217307619291959939397067660175684597930991539972776355608027303446525601390455564275534685896176160948266777759249264889586231355832429115769713992216095749571121645018692278221767976274247581545996985067016380404174095151073465111002239426615012789508882250778846484881056916463480070282600589644223192261093028664618998748031367266633179247291428157127577795085111025086343628079957726196096838806550280645936487872996479487358493178588344160514610991292324387615335069147518244441809921242956328221998474128463021251866498320191164021456439818898201354527993036378386394582220379166306262408547149349402317635568454020292361978820013610688605427813220137769108387889675947519047389301877837721611513833088974292954128684130531606060525700162550699047591440875599087066132590331276094189983591936094216556151727486227884762611730941118753345472583920603315689601892859364022366583199425556999262312661577198601630989865607494716251795285810601031818523396836638784129468661048373600415461776413147715411009229232386410668089327293341952865494190428800061333721273664765594285433292391600817415279530019838147037155941658787643035250721111175693634358200804069209368879916984908820868255720302249943480836384387707559122939427006534721129703945046556622694502002456259761958250724718062053708733764655823633335972405959053241626844178970316787226409931643362560163635139638118906332692396152139738588808348285067539197752167443187966614652375713166641674213215261071841560569010386328559580176863597750862577053251582486383140820786447651759495898351363322043541929871498186641161210702891562283231272218514097100732789894798415569931139049042512464336790202301276832832591466368780501574809770075729472128346940522313053539766624047592535006852407648687266885360419094433307264409431626041192158375877040552372770167326034327410464977649612330776073831266411603071723842239984157030749617785460967565383330661406845305250264983849917575818391555333832824481380811389707828575947788377198953926798089338607945663951732055573990769943587973365629628603162862723480022225659270087423791062900477480700224857488601599876814139843085058499074755842228107227241373422069228963023278652269780753869114916424728901067957650414326757850375520606622618881315614157549844128887736476646742786419272342450525240086760724317451604416751053201981923606355357657891925414665484235157076606055490332849784946291034507439068863313371460526497895473497476810952318125538906614699107469295292675999474868238951305676636429630444154316111931801084262316233596408618056059106876658289061199471268820137946451975510926648088847160614864416983615420486255231001257225360549039047027336879503736746276461219888886133002811008169955180225594638476488765682651358696737166822895257646992976439585917419494919814336546751399946092969598630838728882023142959786266082810656620542183319583039814063208252240754551642980155978661208628600753061318726164540861540993950250438829980838899101338921261646952537966060463787177109562923601703562448078279887855255789144367514459964382330043203806279813636092072666331219735702695992178845075144752940425669030252197782042603273216509484619237920620194372478672918396149594484870271706134781442259539981253190621332259613965529428001965016347654554311189822642204252632881519110625863328643183516537074771436841391479902092193274495867669274396673983793267154824797717079340876266570637238989373151365405483491334395926931811391076303665547794756112454750664758923707801076182057756006815452682935867730861539685331684955215337502294623630972310736639912507040740408072808008933359087055821369874613204244236345647089364194812760528117317735926141386846072175225050491005481315797341233532847751309471685818663138301750994908486509287934812525775874807335135032668139673232566557654174416174728391524045837717635770220306595778530845405436862230917220556187285385713316328721834531744399014769568451672456231164376209302735984862442883690028705708370818269640423866569813808457593128043214666464298195109265052496406992292800649693182926803384273228531858021904650774068118870739811311290495641201940816035521360235798033111462333885672187777177912832695672669666535224194165978242091964363507632226058445752818284068722794311096728972437242345707616727717667803905614747367114848414376427668825223998336284748200436990503081522836195520003749565548653425692982444927004268021445319966783384526446916615718603709820414446799638073254582260559948862953622719302641495434155112026569589062117048632048053589395053856559555621564316825796253558419840119578979642537130551504582766119266302275070766484576936298051011011281032828296866962510348015636057217801524396677939897071852514480875611104181903476346908848075244869491796819485927951896726305889332049313538531933740511764279247832569437978173396366755326270075209590820290157965341761461992047658047680476471796685710888849663539441048509314744254908477765698790952778816348373874591569364486618468573498582592785718695289211354866371462250396565091592596660071925212216444877720466613082081602437734333494842392410862994880428180178476141334032199334915075097145997858790556319306861915336952527887600533927873304681825840732806876871157716734851063947133917947338098921290063174423164171392427081144183369402120862937897964493901208841176472722745706025493309596674379094420476275453149221953712872336875490338274005034674528152312899006699918098668466843465631922793994942504435736948434166663301060468075787309057903201240536115037761944242273937095380056905190347961563299539882331530552459063303791157857065430109583126079086042641819173346210360237475400288618428159917166332671782716803090188151882416170918588921268261395901990362333571160981998817740177630654011567460352805159385343774778433612961226630776519580393961161346215462391446102339167221364021887971130645197247179363921700658831086622775802102003696363383927383707136828323878112668915342310607662456383413031434769474949929412100454945888544968257662354771467313095125323469196280010224442079079199724011745354483144299133460544298773985963676283396045914681573187817788705542491648085971518848454359209113096069007089401818213114821808844682306966373371452824994032692434389815799761818567856239855709124876789444161437117478850093277729664242355214702730965276323960612598784004897331738128317156206967183201704726633541481852565028946303660756233437692769821993285162107083581033087049959526445364937210341562367314617062022528095932453778837491824661033625358487777977345476791547226035082750592410498105258620982870635806034000379067508091252412943970539990512101011782150719898603211670625756478928586442868553991364990049022814020775937785965994890061840122678918207588453748176468754415125343909258522738434815735101447757055964208485785229171205091550004254461213797995737648054767977473597272756924256813322155065952120992713068693825942560780522409087134335565877621916943983759135688080453415385546373745967221193394235923522417861549013382479736263355727236978994797569099250077009966100451473535991516475953048214951691140480879116268527206026305463101470490265821633665084979186116922294425957455887951093693188430761366007010740617224355640529567885855572862091690800316812838168060636320192396152462972639558711029920758046384750409924690296265571357499036216162374165032846825173848711673079020953514927917321483093270104740539949662820726977462252596821411152598681001801651482572045201076744341968633358012189137632791537022138743147514955704448713896305940478074212882516721298443823404985473287009088604628636255228193665479676425773742619108332011575715187050942953733401540072444569866057723761505385661610805819706671944108078125604217107800989993383825311006672501543672254442894409642955168106519016027578321205368185090933438419050311685022865663993505480954302340756260668563990725106583808837742928207575201808622766104848797247725497198214342334310862928299661611135802337176333265963076676673026743376525836693084089201300408608313866375774390801558279297592586411292677860449640422556021661016035495804313578517172433039637489832627347447428193576055926813708263976686528772173485540425529721675834364195550392939732362802685744861612041949363043750432852227388233793645811403940505261317796935775359084463204047388928118419782538948326865789058510354757520030466478956779469202970858279623926755465419376685938159635423963107457765778793337156177848900604986630496897495679425753891743009745524563198362483321392594591663367521137993587628043004057433371152779270511690616471015858053638829881566343645751237126507910867019513850453080250239045180693629901101489551962229156563329250891309477233159471748445773993804748692273496699464175736627893372867449414380327644269116716083633655400683203227773082242143026385645194531585455763290203487844623498425338704965350107603276577366159881740686558007195771261661099999576044018492292476162841822216850497923046384608728361534955467872429772435464277803109481283239945185673840879931690959237065677614617325140391746983667072371754413116859970240412925437675807440395531954647321879057243153972141107736820613582499916477193000327882853555536424083794991663949542575203268467017069531331576602844219603147100370555366134377118441629556445937642458085653280476713658016729111956863993540828506632026356876691823863623062648748676934375492886167201097401477878906068779251475185725749449161946400402230714133750472129909843688953282589345975964774994261824192010524819879434914993537232840008430575574822758451766421978510118346250904301291554431944068063053591967984603154193021229382997748656980992065802795656693195892405046705515532402810674122042213994307121936304977549248401754271188062639008702228223047777820660660827933249351279457332330858560068838535824112666274151708136065492841612348975344431439874138770324399171341411713698981062917753299613564728053954161835511849243157801250598557117827282163338079836674280916121675161988668664756928094936782901308001786447298709843375945075795193835390391183342944397556196021163956669910090047080700390692105022892335439038674145919156374431188203513037630212949843409341601237414765845267807649644286142529575524187459700075054873073709841398861056296095960188871351592627453033293583841840186963716646960566713896622967638035903417682011329856474320021551656982023943472703474768499879447010778707750857421834751777492782590710620194254668604114522012098565829830919960407775131228433723233586698428414564042642179379054252750063328656482128723793470189565894620700255551829835903374199981117326889593423416908970974558371130654844543408342745356155551233709285825402877822436007356225597830258465329164522953443941127054208786532457472405711615754825765920388288073631928587674214715738546226738985254464643443234048892764601418086600835927949663710119963790667104831397597931353780713211634844498866575614209393681618812502463232478900101898059645998678259401449145960393939188176137967024307742873717535379701921540175604405203846439989404246236889241116819193852611457569285804889287309104592981210442871374012077678334628465225178827820642983366945615744082571043970168444497158631326437872550837136856043259027483701683256009603500934927510865662564695099556507527243775406171860952996356725285447001950664495576149798587101537270799164190123328943913581896192516124838811026634982793850380872554741102022441603797293715066282640697805289058826377182964503771783431070383898638193583440939096988381976381157285317496813199631985888515311224975235936288040311610480330335407952558381581666427514000732710082728224161512397824730118863915711666510813031366624795455882196128516675423431417196025117061276363539963111588724988657537082112589889558559203805863751694173227417639627542714831549100900345652671705226219894953620960267716461028784932152550905922163043164391680776306689225260878018444688127491919682927599778532597027144403482466599226986829342996308215546776562671060524228239702025623132657888167533025428228174246278951473170464161698542173697461456454393113992426503859856642396908650820475345718241570149420828458648746813042096407155381564660807769538884052685191936967479252940166396180738676143465649499042958641471858201802416582466415351789766777506580932782654923827223401758331530286681984046903727832175957967658040257798110027510516981068378811781783903053817912839294898914579005473690023539312063156500509714397098727672781566117846628608289647673137693130380760765963533020445177600812371142051048756860466612298963503211995487319944042606929837980448844056841847559307750848180882239827020001892259762322275471385567493852949665481292027093131970302296208908286710705707222302251259828276892298491049000032809186463826647644598520441749237347954018395948750048120471915042914729794064298819381568858439106919252345719240026785810509452068159195172461326436432476512649883427042019897400304755853863739134778611663262468889692624432385712557522428990910536746181156374376619660812569381765754590783766688106527493741873085441200523489539859823863927052461722053315858903647846899170365540266059589387843017152677854526505323624396809991818131577624606373381985337466302763912550939130871936109237049125215951533670677848125371953383505650284039308174706145909223563279852225888571813706835285179066548713183466433625811436647591622640735673003584376305342619583812028987141867626757344246104539918811495640083549655491726916093631508811828545645573847699923362190747709528410498302287480463787953891675688867062072383655698987681517283206173495493510030081800319715061303949889315663211028958943179287981800818047789628543926032441538179555453847370743527065478403300551118406201257132330983875658048111684227066920550201716899101295665832490593070531150411418140531448843393021051064102509318750557882324069591065914037265479733545630208158901062610152204217106189203176390537075680383676310058458792380549494605153513792050119005234844326689538049927041834645847857204215476139897676680358100603002573959492784397220327365186441826614468635029523938536626400207748088179223521569104541916933861470962282744582277735044384260051496275699898350849382472111650468629841670843293868870582000174016662954204738546032579539863898529271509151141689582461340355435380792640571419783040989150016265730214287713600295994656012628172191354992436428164876296477519648132203986958403922811949159345806913103835502566982331138030698914637153882890278065828414315790496596342201817062252480093694901495021553141219052262349746221690735075560485432083920421573525434842750892444245615329597005668109920709780923665352580803162154962927737801217837474382230135736841099779016376083829128234538720969994627626737397063447499759049587176074402238600250932722441699392373206974650933071018461994230718160320055928687038201074892919932428885653073185868656919127624588729660050115137573068761374144546999942057551652775524259885825451386106726457873738824670970673800856917586160268443134790015061351616119501087355345839241516216828963373753705765291719576796719476581835205304026024242546218726714798094309080596552683729911055684407557737064439389945880611339470772268638938075487865978262247965754136775298632481176907472513450302421338118597253910531560035672390824273408789075208517080191495876432437092935171476832394756724817166121582341492187705083564971811958842916970278915334384705213009911280338253024768770872055491438220003380525629985908364621600971265381691994673079745087639402522228043543042580267609591686769720609478849757670000964586329556301407318960499203410886589374087122809855469441530490716541360246208474587155156679511426603834724141598769366111983116383077921875008772838229716186680008897358663433235218561110929524550919082795222059769232554006641607273614618008306479518988900724756792093955508811930643201676842230133941204633698462415841120525614916025908686780363862590633724039320172556383046672455586561665983312731753033206694357684611980939027262754147718741026407251364162754371656139800054709839439921417650234257802281837978515649894777654573682436705036059369883810620748295409527351239191123449668665395875682525363669897300335419132870712046454188656337311885399517338580729343736615535205002091460291737229792305109637710396376697448531830251097565797256891862911294046049209794504225934749160637349849683662995945030129358931937868631567722949053380190185097751907219415639410598080007150098646181331658109902959633535360297667121601338743852840050520464444718764220072665619795446945232232716475977073932601961170560257309415023765880117972800870598739464293510681260145843404499286020043622090764414487639873562337194649964445444450654330060734038360872617562601312568078797024969125308082327053427594936661370630663845526902760006135351372605199792186915607205826140488255956491933625790776461864443461893302729642234814223041070829120215959651182654578105387778329207360811196759266781222054316184655642574280562898883953865422067847732030007533487613385053423832486011177103069337312005041970478921891803152236756252037896642224173843031932531767093335256240093573406184024627892835181781234863325495805313376349737134466448091220421719112783099756773278231953731779707299664182052905063088390019629679364978661644824611665350263735180163005643240597110957913539614599769570693853198766141078193182869481534947794888214649302111556778964067981417763156717618505263408850529842950244677600414143313958776160464245821240259544397638903032788425367792014784694825434286587100608781253494421044692608250066736541226718867235762123802809911426885687171433926136668892775273593818955102254357240757699701735960485353871167460828341459094759474776710025400163406836016208695923772216845959752249186491253224477364522320179733747921075188058749397461108652590478852739755545931400572490700866024427198459007429961325101624341426585146107868905752327586443471294086095390298834923822644048244772138765185855039522217146479441919682599931240857432528684844352869338098395073345447124666228502124891997765826936331664385803213014853420630077031568679957225971804459404864260613344056353180694421083642360014757020874838650924894761943496801211393566741178917941337179733857241664630190614837985213926657083731332855989232631448845842530004431934886167813908243497654674848440902226224753478018695613973092608056102108371015147751138411316402989843990991233965646918471423425756664762883805619034608387405159038798221249602422793056687694480882568448891196629989550329789276196627736291435350205535724473046149270924565297830973321998060408762136665301901899643439223975821626124579103828341019100232840023196837571593561833206781841719025286608089608700158252096664296114120058767834271700602681585493786153653962758354674879162933014120420087996639273817104767210367403741314446472865423323145669100819369990997847367503611565860861393498791790882620708931191745821485425269427573998460382362813292552373685761785119353260412085908603790476317772160430991107270864973164738005118548253238759596228229713989730307721707124400891159090272137699985136869789655297683544341705574113627817036829813199434593789096856611717856835365790705071577671391470310000867852918270753491005698695726519863248429798334949879916897423786940061669489141250952081425553049459244789869557857960212098929941836959123757255666733539860288662914586879771035096446594289108505840459065773247085210261711782600087419915254435249066005629186351266110806383361900252828755026940060580938209316103933107262086212415661178456166733960389917110150685796885030954915542478705710267182414641041215215969166138732132099679491825153333556258728394017981777813951864016049246770412734102569309290355722772529059040157878271667201958613982313412155298099589517376518020075853473066887025673700300478727765270872308122774711700371592355558104398331797121352630346433528841283930524401274117931557424513770640168116885109678569274705462694238210115404548879373828721444638158579881121431497624007229105995185411455885830589683060875448002117139625004008083622639143071960121493960237628604901952631716555332719121489045591492942784819860802793557009045748470025303432786412268943434830021457615548309969937776758258839366859062743114384614808307105066949129891029038651310473041481250059182307610142401594490592355214297199014394899221993260518687929399063461383592662352396877193034727610971307344345347689788100257718664286173085093395915443991903664925970391726128473142016888371231292366959729708109362851335242270352769050708808412271128449282361176082852189941131453289334259720598684263509269949995268947548958403318368971261170537429079857232518574743238094589537867680393030576890392112461678644439449347653559280899270374814083867341301682276254906585386788312224208175923744740103151587672983058757510332322725192123762213690057168350339815486954838044285151584677383135612521586479641784000837757848818200290066024869925430575208511116832257822313669434411693770682630258380818896619700546272268344262871826914517756618629287589159306698574033864479911961223401959706374583651675852012447812646406528586951378394048582430516675765479140704614245664359498541384329954580780678665400546244331403131029864676243133526510765202677134769303223772120478079015861879312861880901641713672797863913876599968747223245060961728939601913427648389482037427982641791112682417634636500365109405664068207290539116522763409672187953578129457178966242828426330594985897766065475972072077645098737125587766010463494325850814341360887175118215260118104687199829303883247207904449344609761536893672460665449032311090893388211461745170226668856876084678958738506745252855821490412190314381588139158814489007982773281271402859455865792858259044433172137318703361737093699449015248737034046200663983737386903992364832846122824385082670441864369900973606426126373833939142220857002597370049666165949953029874767540130282655550224342064720644370091380155252362796523926711657699604795643124238761372918886989527885197549187557666233783073034542652246362946096395592697787946507803464624655052475359158249181800155168766425198230896118495904060110319524438009636101166058378036224036977793656588604548136910406865026345367934218822708047085362119744200549054767673157870912003781616335456758117383722713384360493616940637667004667993600575883464136212353636204311536427606150725029693053341445451017664117055644882894195379395067364858392699994188138805100195240522381500828352662184674939423266152809196494207527926802134109788513615406625224302466543826693573304873941737910114672709503903873090066532771896411957617689846619183167846882471417922578468414364597959695088193421207350060459947872445086362305040359360260956722312035176873837145607793959147991936820434844067741769570184829654909186020872825051798712414439058822896244163588067953906867211844939323507899662606932253363231611149494739016190028706673871936546062363828746055555637215357526785019828716308690765044420724535970089655951973195600488907607117128212219162781819143537716260917346675663668691094773968988396803979663039919351368402997889571474987001941865580911546404015742369621585876379804493658621957612706096662698521262911587448728168428233952144154029831840355477033913977098042680550557608499667786718006078770546762204350458082325785013499143916092588776385058305660192773915334587458879189535306104043038655138999413647206041034993371789528971072583950131799031136807252085950009585137064469997753519241247353044595744319943087662690831004118854300526927017944719467033053774428165223956744062432966759551234496041192378807774223232234238932624299680039641718402371471203057403040652006706694509186092813976855620445477102059731330698506967577706660794443713478815259895014670406410664569758284345359206750526250533645153961654533662747487025553104164476281780511681799929162405047513145282513156075473769992406939561888099421963885224801086225734558471238940221863998409001385353087710710979686126540050778310447269977095561664029315506548574141402494000978690378477908458626713286652667353760719277761971716182957021591261106799339758919123187874599097104268518437862005241337877802861231329719322087442054496228794019840413242456035385307301886430684490738818255964493598165513534389963596588944119265653138671387270829675545600637445960415922744543396014457975896390987250778710678870517025939975612670887462043921912949187438665402009074636735778970497915245719646607147858594929883328583008310153178081716307735082375340705566913877556473119829560519448831997342975816571917432328109318095274312319446554753139621848821427209373752082168528913892390440019784213132893707061447666440892296684631711235616327880181851146250931466396315674145055977938208333755968320153632879043628097658375755675761526634335140687054288585632509389933840065681935300474687108363153341377968691248270204306178103233668643121782745386888076414058314559636219922404462815053935031654441261238417898276729858601060784206472238445391509975565994502319772386474442984960465994559584196232649825310160623876688275583964678796140352438102591802556640721087557989989063521649145546632425449161118478026947554876415525697619126560678090387308103854904288375591949921104819263082920219262622307246320581000996509968909365647768952476281128740588511848729553484982709428035390601109575864482316734930409071967974754302541492276303547322154392643520383212783848084260256620665271872495989385839616721754915848157779619251869922849313005112895921507369215395018419294007150078128149893268795159320826806795385545050126470872609853155898965385918144604251466620142311890634547826256740789314551100560439148727250475146541196120238877216437968067013926148463730950481018308246639422576908338890535879028701282970311348224931408480587867569956324768253016331918637699213260295325045423519860093904472354084322136240856423101238493718748131730647614943688842780292631432870395046717312001992026555983226857751949415876406642772075038315271568909118258991668308148316636735630506245635236252034455162058770050110884020855740298022336468006302522884854732330385218935499455187306959500828965023794561425665512832501422631215175815027947580475716838540649893075954383073253884716352135795992076742761763860467801113166997707143587092495703769650772707278439451313227753622089746063167260118799189101499764512388903527207341192315451255753571871019306116127291584502241531445907366190280237884311886917975155844676409688993074506784397484294340314303909156440043785068951609832674671075781661034628692408511729236951083601622909800312818317591031867455286457498034737273532402098513288100772331747507087415783405302653233338445445280566151941979750336951606387610029539093125144159094742811666345160110879743447549119236498526610139234327036636898849609851740240551366108217839896352193843240224860817297937488603096800100126882688124613219384501325312654146525933318494331640815207793490546634160114170675963329586684030860974726891660293351417137861841721364525728688239657754856193704770492484825713393540099864744849469675733473857352524926910462854044861557209526822875040412299245435283443479006828194147250709271168438681203623732723703705005262718709500273453087787214007172997056744412259405419702121361804519675771463553976565266451264337868131758154674603432350994975672378244851263372582368035051460986976293226146788404880923354787884911617920829523352887753647352952818136452576106790664546297403814254551277939486675562570749419238249626578923719364564896733353074361364205189482102788728065292227728842046800502791749151575450043352131739848929815946503788466216345665935139752699903343457635961164182310739334175620805498000974684674185904530267629450217805402108132799345936872550642901583327897711128190569540066890500065854817910634053535780327168491782418609793870662601830006725514910173623537804446667119792330357487111308991808655905057512260419599290279747993453801970519678797063355838559231134471764549495932951949417119635450123672784417712478141130225139110922701065980329525767975307508527797192448926649575369212273641641238431858425120640899994903375479847334101835555163875096397237494219251396435615442640281825730560905929940391742516094618114555336984639856136176204103962152331500496109276246007625299595274545318210326305449420148551946501493505358120898576947645688270860559753758521921487849205868045935940161631608682839225894308068669346028752227736880988367387106910601181838137798197326160395696717866473791698263767843583263146383187006014073982537821606388483173089648718611499176689753298293438751282951657276236299331765288168893343826560743772871302749649231985824261159268165795582171010870572384177897004941244903489717138983665463027453336121422433868472984805083418546166519961040713067788761334705244844387459427778188954249140755351069173596218544369282579141528170947182747579528503425056565297619650994349950365558402887454054731248412609307077773059986819846970474753314591496707588992014884417087963047980546636655570794139442055018248328335066452988007149958012861486317910261976046657748263462168387550422159504598294363823486350251311980562032089508465127591820844222042579536949501733728250027197051786284838324417096759609921232774156631529019230485194365210793854216431028430988921506876850865140616485299586787615147571630515921542836464203131245677762860583220355190085708047839371038781058709438209307878386628013275658309529630685742136901916836510138814051774059894777740695244027902213818868837948533360583709001090339780050113348592684917544000372924561935309618360695349455465456441794548340065067811551676694738678167532731696934977763831978777052107166674322779964838995812715701370399596961613100366462339387051820866507366495381184775893577531684719648536001427357334073560505966848307872585653803454903045704424944653378949064622503323188903125998473567817042616165178891391680512814400893578668900972766152758549609011512522697618842095240797274182191360075280043158027383807849572252809077707529642038520373605264646053658751410820316771930757515948375560942670236931341827023932354892663839043818902021171169791347016603680266954155579653155862931134621295021900478414014264027897393243778472864294032927382927850934635946572519945986341348475880962986918099913769747713667380000880978158342882273980123154364451416087953880220616556974322338550058150883837390609687214122471671212422099611121349454326215025235015348537188183281558489465363008586979014226694908751624091631998716884269872714465686799079850219797680301891882330573335512239567908605694993458249565949783475526705737706027442509334472074009852089757503669180038858194794071780463677943994907816846068021197742036347754795940172210467718087248947504525467477661879534508636831759254508277079732924443005903532315587383892912855438215159039790729458055263021924858691530544292106867232320432487975304311322620023816380527638228509581147427483972658257671631002978574680204699396713743186532687790096676416758625369405810233927092316514336029017600227073396333667853450283614450807978131607904615479275295866363559822444250692174826711670545681406379300672695655447224991647829170825270028091393591490027638214910206231114766411184262196795090626689022577748127519550933401661064491232973962437585061680165447665474807072247829701682464173277882731644723356941590464829889045868414116910110964077352570654029259904401433375619012590456157472751949412197022004116222948909619725677123383912559911952431481073999583255022603662394335147942799908240751521202966063362763116981659426363343866443723102952731324771171529685205560251005570885182153610859535045428553915458646481800561136268882746214022270679654838820239112314643799301920147236040004803418244238521637937459095482310589634941041768009730613970445487583186241305684576978677617500939123069654602393298055182441248600202090685761586129884577644894957701502063239895188857051049984692461798197146923150211699011340894141156522939303931031295900741969879715914191088557749920316654329264665400842368350931946662826700428104592137687534574526466514994085694233713827595773538391618008618172092672713332487615553938514447539583102801413981528614279000836880469526451548222336468710639432051403988966992107631340722874746763513052360351362631465837153850412733868788342737499549990276397079219712819106807365924682168616929505517348462784294796498276227567821502892221994453957899818842493970935500479747080359727131757885177787726810498879630716647383273423659548544050313406300667736671175614410660469902257413813380734860306877658551264252753633745034875805640277375648425656239563639418872217458238309358548443441341063786847475060997851232851261983065812182966711706610872952186796304663834337900515080094038812040007633585778495532134611463064395699484334416729102047921427766786015493550359643692572935313162392094922956346096190512938820395623449800199373163878951036438445908405323429042969994156195146310819588635783916787410287117647566535251488203842938089311851280748886833718505270222109721914612985207579486609941730586137384981468837085023533645444079420462925943158066006261218288647500347655145638882224401566396920691630863599986378279585687222163984905993722713116907146613928629292000735688107355389896377628514164446202686117953535678274510821371663607043964045018947418233540484085380075995078627821451300242648104554923613808253371588425935056497210115082613862178305038097853816005313011921840283393245410221927553301231602264196250282808014417723789690601349698454581178898667317345776093702785000979340305977662058328530032993417757262424011142661361534651845626519005991876423123872110939174256490888898716236953058437712198810300392718477031443210482428458719908369837676065475639541220907969184816682139135459678048673157669387088260412443005355286537172230820982865311555170627833057706434735582879821179380260807983198943453937892265335983535339853061869322466941039146745384719377878376620558877339905771347692175372518520685443754996744249934873092071780468121951364185575151640073082551418098617268028556630726133357200590906637946896395971377559505332285774958293153714237546752033238935955942325986945474691397381592012509244788910363698106702439203882276327648879252218482410659934094706391533566002581090983822828001936304288798714527254547702381853486787450961414562377807988451877756790790771284688575885331496993732681200392674599802059216078388014246647154058200063927718013110825615551088455256921273950568388797562568975251082896229420434941712323940993290175323900991976827674089633937922577299397846836929655988102000369005520800591953115725073027622467309848952194470038099617569867698320035348579866074198734879869575125311501795241419933736359549845717107890659455186940841443160750850860197286681523596176173176600417146443074428133625380765529609467176859344249568771036518351347048110168039681764918603927265289968538974013973307237020042397217866764504151212544033567204189228661449087922521094275202893661676111129392501292505872168583187731660821413835038613642939927970748647155481446537571975116238992337632404298555097846279995898325567397264558914765662414710330010557839143324053262116368765917657928129097893623803752505634455868387918303613080678913871183160046105892030088069125808166853205124633176133529175049603532853849004199193036459656824331479105669542482747333872367628133698210972564228288367700225092368186776246349802524507377679685259503472226830616927951109117763266391715914851217724678334761980534263257497312456686580908056344466719641102011841346161985254839362815623928317242312428108351705960022186391600586658057130524553181413959068895127194553297606133845196928459568295048497380491615869048901926556372419457400530013186255483765585153482663200905137125911163599020098205326357036044958846432524465703982945288575499244014911139732356744096025629995284066759022267214691232457917480067611275169656891284454664412944972496979871522932685844742923457094575300595278984362388088866362614550238972297048552506787934388373270516704083615749470229149616683901848143926164498456198082333462781963594240627939666238681619352836018345611404067431090551211888616203367343814361124530130428911700422516036358275260124230881463095814875145327771147260276236994325549712998995989070830214238791688411479558825787139222064884336816882107069532465818408483526768964104321216474269981180213867812260865312268322254449208607466328117991710770588101384892919992479616106151620951464007254453348897889329586419805731614113841757765432941893775438922815407000824825028619164900185670502073218685401727996801379482287866876528469788468931662556317307532208403401524373010673173118409776436747569488079436132582285006105822350848327226067275133882648369438690719724514758395063208902461168920299333727915080491191611333960358512449797067193968221355452359184123629111289744064293796420417202821477940311008656469576067485574297488291123839397626219199172763535571283440621370842608260979597893139234125102926932562375544465389741431654194249995323931147232559822693239998453043869761279506979723559988699335932434154306703011287690428968736254763865076432237280190785000853015431869586667447074973203792064636894115851891007917642869995503139492500076211989515946212543093484746300602735456398641006970848583015818367248287092029053024134376995615122620825600493451854646347444889205675113734004367996771631103631261196613821178023571675743461255013264494610222447796036464546980771307542154472678440689251012816588601743267997722550556121514189799092786798580786872166262328561807376117916343823916923456760864114110947706180691025188057358872504639713140956048426457365542178145403126367266189830099787753730865940576477076991492665646095380890859493323406119018389990071318060280924906088297432275317120592322951200045937104912953561843367586039085576830878511633000150529924002951598715085881308670950809627188885223399354368668154248149050984028113072539551474696968501360362485469498194160044595064283434861402645082942398376746242625669523878404293815168280461341963893567614174582239204188115303669321889000318686312453887974311290517414295632078899072482651145521090823535699757298264538613291569357343601250413470464096865243390816369079192614289907288344826058961188456334400057508917486719784634716597167853394202901888610681716843962837084863515632656904275289319038843093254783564037412961804365852648939042292595909510002277593082295545256906639527318567510640308958774407155712998402909027077820276854040507161216467673677197687430201227315952941255520685026437229440622345274125506223121892628795463168105074487359029288493323321016467952947687171169180990840824767945957144945583356387335168552091544177337324283821909362113314514646077437510317730821624467053930591742081887864946836875315353541686191721157002971210912689534617637493526049787568617125369150894287090126966425811056038187461386977220408579772667878329961453976008100654521958986680767550096031539415364888900768539324711884341439787042928060445819828880809831497267205640660584123587832817005809821776703480947216698804186382372891889731683037275317438609361015249576154923373566494876065699539653770055105422954558968614804197445081680479843947322576881948886265847059225566157650833275026149960262961472710439520092468874724883379585241421799358276733854488286956792194877648502984556668446718140398223210936527445198095446694551632823185482046595783574206422744149166160746047932255389689869169132379346227307136454729701718891709164152387786550387127152199410172076334036074255401224274132975743588886765424848867726149399418663701135378462694578360919337992594604707189502551894120814316864082243058519116495688593549616601828070967130059439250657404972741276984655598600498833353174350827045013663831575537643121792906574268027331996293984459308966121743281056579572452209922254821474601913031679399788827401074215853916931805891626316290031906443671749758886034826530637468537182200661321649454227197972638286555884247789903981374569401392282877362041670877859599142488459636063097489891901562059521491094061112239027543314589968103781730507505212993239362246831086869734697540254204191936801117500217408273516865178900283509123423303404338667696062838308835806713096306815865475513575811929180197356369210798292533702004765357018308077878990999754184766610557245677820465817305787841923154339187617529432513899008592052836085292103506444252548546553907701570151873948721572010988804562127044832968100187592102787152258192476098345931525128174182195223420499297218066352127420024446163658834652965783379966513953760777598218285692246008595991354550999421334955071071418220383000045841843167573232995185587039317215929469109710319403689371053420738524085831769642849318585403961487737193089145782210649243175959402335461125345385283738672221389875284874126082625465020926068789410748958318953073071391292293684826631456630688308947580173082863314359266418626549804419463129553018428853941561640441411293046279927700755387146120988255761194940012828560511097646479570777264510673868671701128640453767081937197148411842256234959729052400189196986316622534374489770107917535657809564219923293382654888081840781694189347172193332543657491435338481521700881671568026275133138402895401580589482618479600032809380937934596689724631890361296894120092397538879575542902423196167905614050775242437863530512270716815517752721830399538308942466048894352792752800827149434922530506520925630633147456157157099890985692417798555829166819869028660499323349359469911265518202612297993158086619262836893154316065670213976178501311721860809874182485586088392880315588074841479619163373576839070382305451143220897642710481711968022407581535219634062653401346334585810755574071076066883080808323452345290173975959291426220149527394626430981619451154670798147661504189639301200792436422650969369937838251973044858965139534172722292525157240138432841957718365015541093873505619247250554296493529572681566028191590866917278736044848012214996259327350083078541103658200367503499286957982318898104810602726964550225172583409766107734425387745839808200491394353192256500967465449247181514621414072186829260959468993986037231144110406010790868067658085873148321931654154607901871687304170098760106168825482308190473225127919480236791643245116274456677584000305935955851043052673487494507674524313267718077492794533355032504403865876111132327270290185237021158577283547264218398079386768974492333978451837898298869045178182950488356067410487924182226855913345959280736862688194828995173424792334090699838113604031863609617076400868072950463342914360839079783226956482864567340941208979948012400401721381892205094091952672038455031354402534332697239664202245304017719460335154144825402083107472359161935039220187999164202014823475446281805750666310971469516132479549048612418598070291715821810811273036581160786841781049295583465242022155494206100137586332286649191267752272167783939386385971336920630972242568176187704252427402130127067722239057698780291626469891220151860315274138391689277058370165145197319191712460009636489311952624135987624073879679239314024992288221663844408248962380690472402803429873763778414812463537761023832123292786530529310518777266189134829109490723543147831893764671092534623450294653231060137163629857775103073483573958493682290753765909996921629323217317978051495478740361777679194369753818127363574832835603742293439861265407720690788738895414599383984898038284167171471911648697942064505018974311633114857376920756257656345332116450155089965375817047102104256329733807626003767513496365647047455709649983283690224537928104267398540666502095206927504873085999846671700152813390188780797145974854519551185224047086855654389378368307240784082682125673313760740621504802340570881978913611123659268648215699452682968537129625938971078710847901712337168606179707829275805591435185267560243386870157716506231728462910035571578740066102295361733541781504808360891701060977951366343872484063566109241933252816959203739190647426187895184637844866090892607178238163113957992227438169986320059947930788193184955287373761043558166995438626237514339359930873893912485766895519853658682021927697320873524520272365479293775648946901786790166684200505603990093081337786533303399606192664843221823294897325856343587542304373110937301044065206082364312634125275496401376968813708091588620333733034292466524304740794407680908754420231489358299440509776105128978163959177897170569008174489357396405374482851241611706939023816371715026160014906353453021806052770585975712736448452925037979576391858079099244692353694037527510508237333309782494868875027312161324728439067771718401509780810680716003653974576261231177728062224654399829750735238406748809808367470221360452096716757714569510799372949426984018579545682821150565662809794704927936536101531962445466666882682199122716730149581747082912820047634560917905058595882950796668267001507030999631990064518891739695450976513690489379774330343194622265411853704021594337950506639934995191690293235213464602815832483677400530077582061801966273868684386131424341733414558125661167904265958542344138140591860723968727126580299898734927692374491919593674572086362920154394824346419980986800719993128413703566713958018796513213632505945536464790891138594829511795849872197062818106147997632778292556870523293001561316482707345802588978104220645901250314310349054674130154916367049468302697295395130219185858568386029303936606396694493810253793515647109802508262141167371581663585312524568756119980987593388558706266891612634045742440152221803966862842681483929427512117613709734581809829108780032806905025859130429342759374999150070126401988463713872173311460295317615612015530789257834470040731655265893813941262217818268880835528561317671593963230369507851311500420078026692981763335356882554159799790154600036185798807474133798564420359997214707892322856736415419482733967987835169833911112461274691683423749129049432667642374800489887893928253937804281656644699646053503983359950346352514411822609042682736408994556576608171059777312379888216687039027320769730964153385791371940160866994862707784520189022621053939038163157815476865468096760921149658664036399935859848297269989084217878747970978906755404312554555583757728055094587688443197956378412863146457691431574934226190865738611811873817849093875864043890468072521134212531441035779410100652504213402842496740858496682429757612773767464344957361965402140369790738152182237395633574498995415242580058849366500794402431301952609747164697292823252320826942899340453599353318716812266338888183372513951128538158738122897012454697043215752928889236131769815739619454458952819579479977126066083301805262111944376623136645655681478139268410208899041009014074970674533098204731950518093667302276773624660593857902644999898356437135470143577722586337404992990339124789180644741595594006596297182577500252131309623305853948479584038925216205087989242225911463483421018102550593080279338711940160097354871923928021441579218469571730003892337376623045946980406888169294778094760838128207919993625114267196858148959865285954035448869321680378667999746226853328964155161714587216336864737548210303357379420321831358162062471065718089314830613064675025401642989058883052670422121627322677484196114029471259720056623344474431372643254189168384274239785892109283484950680784786087859841952994127211370191624832407293579669721611360477390212275466736820417957543950679643574168444942231978642089017216612569922084818435937704040100859583591383344324509137823965377200366297286354196130039809837133547575002576566808432585717716911717287255642460095977462185077683454954267815475501019098982616676507679793027609506461863915125004293588652942557284447057641145378085885538459247123042967425823423183345382554334192490404332997039301789074642898795166736436349923922200804674969704532461258777904480135663421989011542916532693222397267617086939132006849584698188760450307614667106720506175424895864164025628031379170662940209727279917149837436452142437794004187801568924484497868873468582435335866115851931146013201312178354476168032248359564033101179089282330326937727668810059190057155300069482771028864024421940925947569101362395437945514773220591693584997722897303587376566594569060977593125923505148493333255604739339788838748887028909414625124135076288183384155160208858475356905258154336118710221976010094666950163632557911239325149666570037937499047575411147628911510249248799899246672322139371567727700119210979256993312504294262348363571835942036689338929479303955249978042264041123390822386648821840814055121036840604097997327145355152834153755431671597909491462797792142136568847323354607785191210737617833595993781184870309832791366765929708728626986131942711966187520937411427932081082836148679841130635276717086536747161802665058927646812809972641192218172660493121073895143966134964327114880015294121565031152245851037126957736859605496557396443633275286540226770153522425109709361953341925390839395166092477716463810526932211450387257168583330269222768647029622107800858471692156846466013364438854957367104645616759032547383894727571876654827995868154826869894268817506812643844628954471692279321872986847726008328273311623293952557236156174676692325309151176317557638564185830282601545739583434020679867478757385926430633728011193225547164600995146434571688190064099413870537201445270924747856463300861230801644108537990577816149659692686119600347446505219167062258926973737957865264815731424443236038275569043257245098047035595242302204490488144989811611636597738007172506631178761849499277615836708283512797805463295320038686927320999002073558046393359623335749480123681065449935932362077982113109140672495494880361754604282137760575589228551448357268216179715060745062849516253363051132164762533325910357435713439006005495582456695904980676754505988138222630417268796218504936179272200584607576470934961230250077393548430487347195520583474145225286207286866327903278969752584959399668495516027382206340545271708496937886364012524657137119324445141893597347701319364013382737757587716862626908854010828514292153216100327219740090734151721339175987130748226937394965074022867110075336389536068663453118007688111049524502665132936445959634934047868201232189122930310523631246365281568947856270791358656205496062541965037378720744879101579632077735253726967514356688102362159610867287122131463906577323910220701395107310566125234525594147663928958742944090158289036577260944920118187884689515685534218530198982285730425621270704799127835400068553554351394624172738921643866168083863640399032138086232139139223010974686433388931553822284960444220604821477725703160024538268477876802875883501193626154530583587187738495673011515117518745508342060964211796097127101886802156438926739122920038116484577463899600180252851012963049514040095583518200834093965985508005089380475498599019693599251928838396975792439581918803325449875997696958342174172101600450825234912478617269995632235426641053295941698600845527146826876867023160298989755493352115067085536271315624978451840152610713258808474923934278999647404098309092308984524430040656215268821536140193948151983867410342759410981076335085003724695070853836523937953172830026198628296159651371648613578448411230303333847315054025755302031767225619862188172581238960116161845514406268424347291428252208719265937325462492998775222920817247788176747197720950428673084132215193874019297681528070226252212626186288820772258252460215782129316804850539714781869365800711221097557518307649254919530833910213075281210457643412612490013002657894215220818709113748341757748624191303109283539897131709882482008906401829091200446145073315272593615953720071587452662927487913728192377532942246504277712053509759819163341339371617356123085564413333991574656716028298879480531303752853424797647423084913704733965068785027047690662126978684564129852139203293571276085976655822137098292796488640092372236854628730694913413297286407251972759273368972387291399783407079217826302994064458000464665249511876724255123507101867423097130939152659816393419530672051318338499991494684255386615665479509963861345317336296523512279227000333717919769901714047102454754594379426316555071201152624936944193907623956460884351956060611699511435385624795515766745227006557892383973010558498232142111796886988875953201007847954350967998982393775460250457483080160656096979155720809631421218587587347429278646511115062231453985397543742321373244163227753725240635359832583290042064411134033277964595898704105237723914901441718926254933651937873174909103708139058940017121269542382310062768609444106772238133783455339048183998305308423043810787781208928175688047676626450282383625768062947324137550289425639098449568026633836796432535819156218605909168623297832557607330829877353157477414197032599160081824311144050198961990730958863872687527442596101704212819852868283009374399907244550667347230790035140772680019425681997049530500532466405299009820657112413244869876560640885060344354870940511514896052454490547586755358229015033160198113014970948117796794133435551756765132277798763181592596723605041728707808318874199252248492364034786552473667417914505681345197288552954111446024182179538383117445376977943986128171263957405935106763048327142683378464101576905568050091831852085749157549521860934954411502457658208943424426916732120008622305584881092387677681515447777850650827151141076475980577107007842887596838225702433371053201837435734718210111761220273483762017756689902334237836464373669522966551390679578154600854221253524084331690429695786802894654067832814075473879045216851135130994453739978907004958029236679141996208179881602773925438714187745540659130617101396846286040820920091174974239603920183436746333884490535047938313556891097339074316234904871410048460399149616442439591655374069734539880579028854681463511017491887208175612382530169535794526903871116264448924361854490327072073846306447014647924455221986998966626483486585015791585598327603724299852044279851440002129855970487004349830135614510805262570900828377068650942780069852006462783953414657799971630816402905357500033141169886064941352693599957690417286083559002142138753009335432347226956811456507538726987871223111637658573462178118407630508907692895418007132114009586077936574660618480332575859222085717959411365146476930714845890306843708682814555229373774114569355107884179680086361425164861041283434415459265288048366093447615588174424133312867491187700902269207253153750127335666364048612484336714546309940033935885206929869831371477950147635734308380676536075090204170827925996082078272224084739241791989282872438099779665996994521884238343308806293532989976974699809119358479743402140784490524380126305587008178616920878678761750523241024549870379729266795611611712721144017919174786538514922095421178857763764387042286479572815844725696625917018079795787682620884093579231140429555140225849001004095508272021452468678672984427901410432470740230150758303241131277866407778491418664277979128675866249056180555482485756220992137761348255463316381489260112751132318751735475830290648297999224010973993899896387622203538219648564757270767486094354805227439233222839429083251407218332496384513040520463832182599852322151612164117508131469550615506370684235857228944281647379475067526700822886440507866276407955436646803035220615496219671263381460035637765462600233627054437722164253971322473396730402092641456924273113254746232924523622871240992893882708054808821679075599989374615003673708350351341554706624091522230231747204792956400616434053715526242249976428471577294014146351408421516756267260998974410136137265747761130058597557171787284964728612739753165849653544277182532614321804204564676535617065631834371932570880922087484600928509880522675394220176818751780554411547514355953020619302536718260831924622295596067492545325609264334021519616278567044589316359266239066555869610244700528306910885360384312242849296787228018107838392188164206840917649777181519078436195348208326878987908919107055502215050603944174919198291660601721762351107447462760265082701638996697491055009533901166809906344845564179581292242475489670396406181782841069785056383542092511276929702429242686981975998616040036023591313727873643075475578500321254469920283091645517720548201326966925942007301870777019229872254397392953953237133032330932067789604901116423578628556586126266691826872496605861380604379451877675960309505322478744090462906899670336774916056674496809563970590022821725677049248930145394167347415676079048023628994458749352185974691844798410184976449755742354530854031944252405658422705052421738280301131352228085569077162238959246366647523906013030377609705063500391427979231022138710405804666646603998555550843649253919734187033020081372661476205904024621090642823958912175265873495339664742544053429083950138033090388974187263787069540757298901067267093583693327000858339082222301250558698930937599583967261245070780434912636680377694701900596923840620744269861455193542634721739680400568453364103305063283853197999416191786333677378852057299460443211891563125853633710160563158179764207315586121043616424541338399922005820076329728250085607989134870161651520633483300033772802580516256457072013846849034321955920641736823349489346716252928837948173445961862536752565246859845635271146407482062444794413511161672595142328395853826698190307064695774429004848682813649068627369606614650070763433778808820872481227051652167658364668011779730192017925049520488873809307563128463395462345751217892660805229875976930339060382257395877758442121740488050944871399611236104019457573207531045932518423034588164413549808619318993455057095071423873614869269568766265603530937105972087891606785973286067530066409606029059657351747899954457885551898680568435282411951823826803149677975056680823826265511795565852994593222607330703721385024488020524780800377461180794849603489948271692799742099367206754008667301799200010017683312036095082462030121358620949792347611416557178867455735750702024180208556892238577394851531634110674159288318535586055936113810081122606813447422856710195042993343317253388171348271331141207869357178780144705801738061952714399072985734507338730153565741547464060422732737397516659514154201452240020374746258437457648034905439646924156448767568640450937146765163368132422590947354476156698094693684602655464018509875924429895117655834186213311958637006205758974772443439035038441868919428377627111470257971050614027853393672979978983172560840917208327346841644645886768710034939058233181126232148252908577942395186365570153802038654736236355426002742560765283167924189651108107009028222851982405681109452180318630795073187050553703857786162347457325081127563135260104465220987754794067020666315816077624045884551296331672383899195074527024960751027236151254542740412094667749801597612863192055058823950817836256425557664657617363195629237747230129471484168581210929666287915194868540262213562674351900835023320215692605339407482311864262361044015545590503718736089953423264548631570994497886823080022458459956551140245421434862215523762961042525598102245633582143121010218349317358387474117217707503086627857003529299491030011397537872746467488472526553061563738838949271253720563158560224076267025295047069934447101667965784599239835887528556484257959632975867176818246800045564970997441785737279944364295028377107166165621268273008311807277784388574996232345015031875452951453487198885826171488891398622360048871839043160345529558085997795398630095460616651396960768821776015162456079092292249886179301680970127806999998326258715512648005962640687302489648974506628399117804342710667349017581035756321108074951914191920659825975384175732785562786299490732416715660967786668473865791031851931842891368919619086472901676107537369499283470158502591402427586712648040076096899445098329812946086538894565542153288473796619255822372162474974423990170037043428784877544780643060072651044980315695672008562787358576515711320853552232446106040271650143145993973894280269332272261026545260038398960949987521210783108212328943868613437875612982051108721879500009839772086080493602149018694268812147245361965230823241817232629737123416056636165005289853889465691264036774087185379522348922162286386897920141303543421373584569151062311237335778348076450072682966081964876060265902366477677500588006052930015675096880329867380344428661860382826870843207605405396852262619982315366989096566894275575764701244593382873952568133074760529405648012094847289065648567330635154389809093780854041242488236169029673667084147460688830450787399387044060910042086625305179323989699738169310364996279127616794645556119951149187955312764907958306057024474454786517172359852228855671577895715326993431066003192533890452464212190139692724958532272655914033983658415348342182898273354385444477898530469317892393942547209976521686763362504445596575272087739459279652651153503152242491956856049496902506025960035547360478528599920989771535754885641494001348653156402888736732863915939534340266890503149845900366300674067172960504717546498222224835861962385569849281688590261615744416769799105486069255027056063810848545801669313358186716201471635987067404949565874265740272955890000617118420451809226434954746468147420089809962061870594424202275885847707807927132859578455672108415909113662984272364882047978828728287903297451522134311275719345856060871522875822108214606868372986038392760921119177579905827631115459962536126399813768803898413429596624320020266226700907103727451654582073836789874345406350161134022447405103310262345442356589292367340239833898584379110308419119423729061462008899577139158831239473031393222424097144488772480439341307466883980721479465561180953637929701605013028345717977830240807029473737838912917721707190113913245297727816581663144553808233280824004953946264072142142111598205998721786104717772809608518462500028652544614239919572734571139271248929205674720751143825449117257993407042149273537616189221111231650702173505647424735575097974658676883587143136932838332242032286574508254834290412033098296738661603592683765111020256009506172929680108339482080361846323273411708838386388589536638860807909517396874315279397121628197682377430979333010932072742367702846587470304343684136755757489085654052258760760334636587803033044887770590071675318931796704713108523939052813850088505165564529336486384460672047188865160798093850264308652311332888218539778633336686036852921214153535259709990681438198023126814851918371457085760695946539749529254053104066278621444538523813051745150078477095655945555654417019476070586237611638830876954545912459437919163690813226284978465191266384689018152708578968415016630131109910445269650389452352784562518239760163220654505390864163455054870910633111783608264046978426518934619235740765068288718936637243748181055285028518711541477972253251233258122298787512689885437759059087056366928576523117977700849892312582399799676018577266470730418283372408196390985607628743345015364707118646070304091602010014227238342804563744293913601998749823265066734213052459747874705931060129599935194452002016162971150292367526840735268355556060131093999465396979273205221360814175720970662644785204205199518093850985220018805177084253924093410840911977688561438591282837262989468193265852115479639828801664743950386237026886386240161981287088893271221430621967627772061656504449079960208556989291161601441682410441761905965029824003338657621730586577516696796021823664199377085282687585170489723402172768605459961404239296571390426828550722462613892547476901276885650225185468131394392221373137134982288622294689213011666753724134402072775717804810646084380093953549304757130426385358752453477669569465692053505814521267763753501143108550310024366061550970777605035945081835894061684402163964163045676342052534093701245151968292330264126939146143609693809021624668700952530750562794317216080248666440291825279241796685446548883337266573500242033501069514216569954499890750862598912655672928266074759673329845542146021655205116955924813566630700529515870141152396188595777894564478974174424130860047595706985606922081577710607495736522435013362607668697251405774075892316897547011476740512724106472284491635117889633596106359690312295855078640342953308509020460475993544079682606696259223331313506223532969653326726050558672372736479780016817452543835592156281086658483312368407596656592105320677428283182905715536362657797302931182817115358100589388648250274383663918073085781031168794864110967686090881572302188761482208862196369822954930123582301455416165679892601760068314734097684821329054779560742838171344047429971089022395403515015926069541845643075186240664975506229956515094103192772064952931564565917117062666213259279295528913184062659125402780153919921049435652613208304787414347356338871645892043438528625160289916260651894950457320607908353293520849430040541716578257891419498098720197089361671490430692233705219323465750565346411057559014326143737263578989893196370300224084499260955820419559672936561478230499742844162901996444648633400636029018022669160768248004794168991543784512151484386776014590098209344532003973275011968598564312229677677849630940455306441813606225855092316831675210296251124618205031808842601856674386070847424624988500762299955997174338557990450958006219521814651127382247554016044853185679682206299295988557973477696407587663093093298185031445053312071355950586745346696841874113357416830117636218512755859144075691057834000372424770228295331667122350801541383362355125976623921577484754074694732522955636480308491367257430279784402252296184848582185514072062819378915260717232763172434158617042861949438699245465116416689800315933275012584444830411172330046106826114260725412500228181495755942367271780522116504061939785283897030564404702880410899681456086811087073271095800572823764737404451794554741221764779538309015479657372590581977900159482612125838310575195146789327888058936190640179815906117965543294264574321726716675327843087469119011954786283018684775711071171458222983941614379438818838020554402573410854271893707894972326556040978324984571327010042540736911138635688892611651589510283256867440530962959337114948802859979672596998902364815128754661274540433140455721212185088685739418587374335150727189623906040441203196073707085723854311158071848616479435367036071321364192113769562427312950965990796148369226908435109430225084197345216183397168869659311295597948002447702846496941454079077385453294019611334390247337995467663106694737892259697553529780657110339399959316180575927966836661601357433271763683088273347006277781583741976399524386699582067559336762113239327521571581148586087986191420012911267597152694165684432143047425932855891136661314043925988731428280328955136693488405211984661800984054297319492955333708104781716769010975753843652995456288051144188545683392453444774777516329962328333673315537048551232201701253023324678765969680644071606014114239868412888955673304134239787785435217813225135841636502794114424986181082973058324647095791488963409038178735486590282502048948209550173651190533630845254544506497166757750299727381837209096228956564111641799824857686658549462080577533928428736606929644745167614422030325341751202363033053174296998647355352923992055302176327869622611951042358032956261198170968442546914388556761036622879770169931638531494723535350021386764762027457305097289422000168162501968889262482147697714620231803431687376188054892812126557141353570099771964443071724438401942226827318421685390857940520751747424079168082712953331470194460824817492960941470332265198122573025506719346669308932782996172351405306306855647670650787833000420165610656901018239444819923594527332412861435489244527129338300540092797156816501704144806718793604710802167774447740171861046009968055946719066957362020148402632666570526917673536069516738751507826565387402741804475395737681314915794106229041616524924377127226916418829031070210173603237551553704951601527774483944269342339909689979836710488205769594934195374775529126389076496882944681429292373668845043484496092577944934556464612070473003427324808369472163442292498415039784162810432700507943528852245396721206318421458621732888530945359024284578772038831162984357412659179036480187396365405423471426560807177503107941673963350516984371170963450225500171257095295808795446161421457413747072378218312485611735300054816876988616685874778125711336302464924399347697795804975023634895667342267821069596930298236527866974113021085490014741269197395972907117670966110070298229508715887941272938090063379800262344810920417233771567363034803088666688829020107662857990126179753883412921868367671128034238522197028642014158251778265745110834270946039933837363134196762448620828386053288817087090451596326208787102220522137401983853814724520608016621651550916065816212471311995349484208783822804393487245026092160596093094981643755655681395630973441055228616141002841494633583010149897932805607149186096929993644118680402850208799360587293043651294305280858935200461894362201386658061929149599908278759992967732163906643378994239398226531965414791725337839281014318309941415741153256599191527861591444840691722497138798315477046256476663312194909219971918782393822254029733169895446727556739010559099624169830957123404594133611795329143429141852957959260244968992364810760203820373796098374584814541797785388290013180378332468385330999843419191889778736946555592994790532551102581540499377048855442155653172122169127029131601980268250293536385047040115987213511194511948697294721961241213216067272977658959796888671776004047868517903403582631066529930383619620420590491689137412196388940060252777050902322186777168827709414286155278426679755926341652580577539093878263804583262947038200171614464342467236772523887587767178862605997177955024369545164775974612985139297214133367279436545127111158952428824319531618824162341936857994030623266473134177868281077634064487595115757047893908765465493577575582421605049807599460989390972801292176926610712216358639299581163782577578499358106659183201632026896431225734101403191770800287093066538513265562571743229138760040426882387271068003052483999575742446956093850830137749403668313467825794505269196053427615856655090384425523182901116349566613154513556279905687698428727113520041120177901841874266035901357151783353933306691299466949619064202250994208441131060095774151980966402909821893262832978843597484862025161580795786882487066698885476708993837875544799898244077220895899811003324123864425738756022895293749926117312598681127723530707640078294315695940631521785694261603829053414456626667622809077272045184861865519201871055993654082038606075985649367158322890434760941659310132951032414012758657068499425828982319300632662608690276896224844238427405207122533381584386010702670155241998698336194554216258025285567884590474291190528446859776927664034051004375052794389862130365181238903830437495579717788419806421722359417050192795259210843630132864423785715203677196942422160713858525176353868618207659732250993774456064099748452811986585732675214498972892892707595936433499763127645623446079655352858903911307680364372638737736645834165290355648490636951467080803902055201807782075443065686331879853021227847843476878410341143136796178890237599429808537236528986188332824607344763604043471179144353140182005481934874630673966019631357557235317403358826659810900186391629967454988450262820986525994675967237612220536031299972523085607962331213802195221129883753598707259346364115315049195579242469773550641268338421169936334466344274433300148437601195990009895793929061061485061531586346816862824919173922537702005046554665216794607557170936268626653239737768725733190615227328491246556053165526160423166137941152737620869987591851200974471604741905598562626450041979284864047755100087374757569739612533987306301383183688880538047317057699767770933270524791971916784045774436311654937881068033885098177292818817486852696925013724403830992573050963570398506476231808705189814975146235530713488524577687451952787493070227710150735034940186793158076524238645581966034139429763919171402843217841509496767193322559152465852736635655322795021731015719000684591715583342162354275968588934713600141609770282765705014395752981305642988306123029766370663619735877849441434032264435544905281348362840436196538356330367500885832710146588594801748282449816679680771196852311685018669241214398571262379292002457125295919855335541363650770629216672736288334743761228964371298170817414947890074498140650596916820336844184235618883920962076504002119993223257253451194612208829066464405157838913220816683886509792992878539376329467629754111282918434363551820886449948499875269954575441939763258028375041492461018362966249347286835604264986085649246026009015139262156392160819581123408556668486045057492713927250240114878488904146492197822658695060731383133412171617469804364919774489071967520434016194897358907478348436470066280878915862762636256162341211972393033430250717988393356835617765005266361392059468174072268569165746997014777789548923608455956205006012056865508856274701256112995074817799920959756054293653391900273777986749199326346477420821657854616225919688335002721136254112591913447186635999562799915538161018943681616197618546345734557743289601212041102433131865791832575100322044114058068456197938892788872046296490153847055548590745864031690495332527609066088846865795815844510430763363986615896771868943259224084265621872601578925558302498044723769307297839487370324712628149451076823985416781187484569681527090989534589902177838292986333105743601073885225084507611716821469179455451335592434223736628751792389627302884192673405632245562313487209773386779359322756838205454648070329424207146695248426972986210669127203483524502571012135715883750239534486740767046062246480897270644887027375106136919461400149433413283728212402921228714726395559928389427414361578358091810617204664884740510096082824461805073064680673610889782658238755063854769245828755277141440677243935167980652814878800138711324554505418142162353011361407615586190837322130436898903945230980939537010933820186945366004947385946429082273893341517227173585396426184012775785269622114543671451539985901546212694939289667079334028755547731367011349505661723606958803195724543650043944053803386988649254610020585566378515789227534645718652944575974069878269231140023430976426212457054125864549311549600415564452850512603337660076346142578815401106309247733261662685141976507821668452545579008357369250602270446964526719598894062485568432281387298439438100380719165003751494152153662956435975034923946047289045697006854504176292755585704707211393606454781936352207263814388789485495958488439637878293756559370589478000705557860541804899530557754297394384019055417232640038800389312671079152819178684786626565220285059712080035786098720105637786680907828853644756486256256502229290399604075881277361652730586850453698733611628467604740017383019184008732268842534710895383454372718687279226557912768226451598655717625988727070916315048097156943684296802332077792720408824811949200245681115009822644527332416082258634919262799744068924749115913228508048360845355508985376942890594495929055102025828093356042031856371095965067044633240442950245860654594087877286504689095607333303493277461768996699912078631877874582990504762761585568012682413101826296958025487484698500763396891773678971408101887907143278266588181353694658412304393804020065400388788559055293385466658708497831343493451518111202558475576989554353201569689014839838937379557268741961366280172096966700898481217556618977444414107944871350416379028942207633524754377737396633382616038139704556967002830526038448074967512848137149209116440324796207425354916584576231516520930907537795657789439900131812495061824459806745873460034216091793352041346026076363746914071813745330827449989440252597365695136586246894840180172468741976031971117521095458552488131227996379024935445170522396209028168169518761546897790843912562795124253750068601148073590608677887886449050382047238660566261511988596728394404255573364642474426127413308057194898161315494963588768872338873336756326315303430764403989297618885699433277435446362821081188940488780870772363041305819457070021456256661658777424357614200480214930451100198243933715308561403213004656196302657785316816577784485037292596590240392478762505288615340600253788549429469087651549097925548980409132152368008661576539792424001025534847900291887222697293989405967250674071711121118536183872405099368945405935227223373093913059563913984601987586634426298574670856036532678277025112237390263232105342744397423387770628375284912723348733140013844917157538410772178251544746608556128788731130211387038327193324222407902336824300240907553166364514759892370215155894036936331691405587004791626192451221621809052914167640486191768178986039007323289288682585033463739543024877945264136384128251626641786090043752930666307777009121295510477036790142449599728052530212331289404537432325421049048460737346617936774824619220239524317225324172681137687647231551589974779307992292425353818127512111928924420907886888260947747615832009428314964601799314255161340401124516425842592035451614283252922833149563192386720540625986049149710325767657270701906242193399082033767948082140305672616192714886141634666677090692124878081138978796951340412144306763410147594813441449942475858770677164139128257260740541011818852411617219648463426531552336308940563710316241312931749683787178203068484290641829649514915204430759930524502416266700651826135861254649835013014105566212261087977617185090285331723403176983264145146362553007059596085186825149050863765902052022842082378819223880795328096659448105537458990132969573518673086826052105554745997043728676205819744309621317230411332990590310435886001122567638400241199621876346036087395252135271832007332960439421322053860472234074518332659906575578395142989527288767142459275936623810267559041643005411605056193772301867793648343867728055496253448460275454813713286575320958284228049981575165560372969606914521013163639861279465945117616449109498128775132223437715847676263227075838965194138945394559960232020663509287497213900307349398433015549079453014408367193428843296337424493215459980191850734186459690368013796737495253974000779005277942866653344040956626375680879918870944902097531298187770628538643852769211395938065317652114304690792633766748473196280524008465290922115428523057373156955570436878872149353375934012498706617576522916878985777594517917918099622076252101029311268501716615350347717753513889676135449545754147634236112032718589272630018571523466629872983009472412367970788782097449319630323476328856957918989315220649862302275810867800538825115720308238723677225956291448248985041901514670554527592701852680181393732143958052883079224663550521634460174972238316315742256021166049167010114376501538567419748467651815269475095273488490920866065726407944235215521034005276609623166205329052471466157205325474541258621424801329569846428312763391873534737054088372112189986061684872243664460063360511640153648101463143670579615452599378554109665714812528431674038905010424445459840160573477980661342615352244497895455234114975876974537153263002864808935106883642093060084046123068419869159367914417463838458891797082374130953254931566517600077318425674859926834313474633076738801510594202651084361077035967165621581275866669911299444429025131399910512520352571795799700779211125006354977571892457600128166655096884438822924167340010390635551793875006615616219916950906887420225737125616602144013299044376910882450105777086349963923080985966285781680987483296542364539632197100548197144179410135904085213488525229865523459470144618501933101029900800499123794355325354031954889243518808950745461568801268072329276450119823874415623547927367239935806920635684213714782623153677398029687229407530393228981199477975859284332204897089573130025113599060634192831651571586279604482791387152378099027855815476511669165233268572498194092260248822163891665480691879498391451619408751446994988249272845687102403922645610863567139252401716866370542017607411623995637796145481126718991854485469652990690639229614438590366712703503879942089485729557039417924500149235898876249044822050491828287728053127019197332434771401501222252904520341160621095661744946731856814125015851419948918336195579006996294222250649612834772411865019951176229876118108433403280421348682967122610080470386513010552055981685398381995205747599720269541410533637418390363980728309159936358473141040924488408575865993386259880388699663659345435285436983643985041648114848853391627798694891537379601097490247980559761483655227207129237899330431181065252119520548062797238366864644513702073470435281327481907525592914682041374282606393150050224924053376860450135627486468245620985474174000220285607779312665446591201656426237638029584417253475651651990489036423961851058403844544086271167811175036108819752364212705920359628240302114929278429869741056034134772929133489978246491139044851343736847597840641152168159712296255503651745871856656710785433383514854891519415867921590648182135666928686114769174649789331978985365197064453953770337313527083177956222119005688599012733051950392181981511814923931560713455699597064555489187021380986812750519101656568797049950134531672291454897670784393826991496930626971445109586580193094597266757107074801173554954359942172243753288529091999500342445076562053851010693136397162905969721371060868380098288280059595595440085785896770472513937839831669360934117707170511516508159405653748938016826226688240541517394086484606527631766846601342347475619853428124754002271847457281320051439051053430200571716431542154121206278806309320509459116289911040058214495318897292911480657542901277347210645261369325336332625104033417058846975833504828695168427271308768332601509798140774293608413340458129648260911992469004588252387973730905910977552494488781422699513806114463310787598985991747134510700532815230160756715026328873313398220332527643048431569370121534315521116080475552363443948349949227139711969597593594154211156319068774951804997459634599120832214849328891791791295150106429252601360799279731907785425651264891423997181016713385993343576281045746570493110328618078901399283429983697629483190420833712239160423565689794308622495098231104122244252259322178897051681377116323180275410994585382260569993099382733091569855942091056052942044550213552909235298208917380312806172942725295949547952446527210431079552414282240397767041923127623087223966375034901942642228467799086303905946695634902365061755375984509472431953160526762406330770816953074618772384029456607494231159991814790959804010079641167778284104838321247092606958697644587722085642615461444562109300227820547749760712009189605328041098776250778002260350737614679103168260072542966665614901729795589967938391971838565058764162263656682356685386995249387538415988246236505081924280492740486582933211086974646813246954427222322448174986755928545639324200193151304026633478323918695684308765508100981372346123609099671647394454743333200629652158412536531287254466859951991645711164494330440070245690337587322214088920728860582980326329565944105382376366682125557969073193401536491962526955845481662551339524120148771676397942546013898476529375400936089549230498057562865657404231404993222413443779068537606497645488757602403726292128044121564994019504060944948685875010132219419402582508323910556633310072657641143365983376862819428724372786158292692590274336872105583928135325771686585421898587484800467265691542724623541660524536343384402826949115102964189648076167610551792861604446873083750594061575598906803607368414316032171780346547404646009685191853095919153204412444075470178647604202078549753407349008536612324849638741333425674544912030048850668590042518867599058130551792182909711819803581054181160547405827502833878353482077963554852454559890233755206009591432244950306249503636601783811148982265540717035853718538866379765560501628848044281322679169328253427965682523052471917136609567155033776368764041409264297219537838528332563644364676048671267516900595347140259052130248096742673875069425956416791233517574152689315848330154503802957797098890875804462889389379790895196031639419475990397070512896538173982685497853212519084493344658862744084551584665819812825482386461071887288537410744110239131140157870591964094649706103138895317132796569248235488505471556988377977163419894817756986233463056843121660607586518220932018186758522009235169689071196879240097308642171483747129511104747777549252346962581486520895387153527695434438573713127885705546526115815275355516530158900832098054857863656233058215548456718723214380442226685254910647249372091265730941505598199711564760852352599867390505585784111307216292658967064645277390226565353787660872648209856492284051560033251226151901248580179835303980752118402802296958512407366623981660285576725256867060546719378609904588261368349003895093717292550587466649006782008581810684126444398678244933745130480973793580021562715391043780081371512057504130277927555607233025221938505944819984240967009179388205598633996855833892882658946646768197866033781934089611395531454974301486448841717943679578468140401473080605946659497214100874497399552568182052611227447515740314868339860725675074269301008199590894212734110347100210466726166469229335389046781198502240168821387457896943343797088039818666416921670931282530561207422841841448330899128699171457307876291745895624288569989746666392377691320826816408882097445794414215157788181373642559196986884796156224416190574255273551446511503108198071378849843679905336519305257885222811037733125726138451316930192915562276222666544239538193136785876660037664751769783398391456118853627615343969468875084985959100184614108837539807427660539627414151487897808531086277868344825877952440290714216134702006281575659189633968460300977895027466481756358802457492691119085185494938133094025323369560217759484532431852026940994247450806764197072987148705686659582854912497931579833349162031633132229527099104025966989693693893338827602377790658369137600177562190278540175520025795825957107387112149883031258094574670456995946295491502291097671982014485254971450820191094353987448866837633978832755413714102290073809633095617297595474122115605338048945755532605823736930472129154794749643094422982492978477743183279211945218141517161758716531132717594238014024138425077901525088277632001392565988514732680117100503628865810698698789946326471343327814330871947274324553804282367857702314465780946968293300528658639092817312687019293431592608562112079262271191639077476426081775038788098809214693900595131703537220485046958000170744784907422129814080694857617664667142900134328314543239572983436987741640183527795129019690996068622149896236766678963381660619531273684779717557338920921065252580587367112799848615287738217957898685507160744922917340481381883675966732099932560610063020235637706336972589342381278745948532497868681323168747725657632903263934469628920045217681367586618382023784593506526446758219646569757691262960131326551195003149181607328688785554401542495068695073016903210766690871310962223183357552570474014537823357508493310097376901690030830229383583966588413990641836857993525366588563784389073338054499398032804611333276650576950424816329305590198718563698792060601634484155358845093707024103045490093707996800418347608305320949226176728926536237824318553908258062565427337069563325710991604056324929115316983080832138951343135846599516682354093300349731352978790162012874492457055145874468326102374703774333987978753669516534418692379962483861608091607075309260195694112275184807977776059097830799678680032582552180164150143698002239392722640132167213492359688663910913969970051268016324096405354982527592402475518221687138156447454535174750114921532082048278995149758056128338337144349504489979477268687922432882350130327879106497845000033591840590595328143743144226340994660710693938861961393882110227794116193707424303181220260892946691121586868806260052793519784324285085051609009554751755554545282056548422603998029044763281699185886388666588290079164761835900341250194436466482019463832872802229263008809468999378652613472884071765103458741402618138209574617229012456123589358383004501865402420558354462158090192297794292899569197444192580150350213062008930439289129594049307837443014267551647356595486532625157404671532340106774464723761182448672375102414826178401346084127352941914401053184823220946850853060361867311052607843476311730447456762748119024177836182193681032298479536253414246539794215020455213118428956636506454472004358726338082173685705403397802436950858797569442252944069452082607675005160684120576293184099352565994153908086871662944236930084886407160903162079674717828314371607939128349122189862308695873679908446257340300598493102518533383280830453470144578144724588724445720798635120278673377701980421624812475832213041359655563238714967496059340093123865511304959424166582669859778442981319929160532222121137359494825675103204154025806351648088203208989594803984787464715466728236569971538759458049584222383764390659939828284268760462578279992307394134085961144169149635059836693923164129510163531722253327659987422076187516431171309782017534156450520391948941944368270431711745919383715606308327578208864004704337840653181294202788476191211750789863969732932892314829217669925109147028807328338794525632334481385700237072361738687016514248487999609382602951779930355517317811555308841499481137224571156117154256833695442805747985138166385300598725376304929536505646431661941894705657771925369232633993797944962121816069048000237871121323441732642801923814990452906615973960872987589265395133516941565825493945860321382268079774888653625444223570188556239225148336571766525803802962521006802286433657592710865247296806734420941028914080689590974520425792734574140995159713558990014040537772816705823165161996856705413299512273015967438558822788986606850701067519076085014124007239874536585799050236355765439960197953025174633950350460137168796911080724653869971109967870778246934543682660675027878597777086447442722218486335733019724048805216685445783046692283580629119617616678004805142983344535810186984625003464735185181032080486204104010717369649250245529629042284255009207300595839712189151974242960102938672219282352171024957167348129247143859699676482996110884399978903654783748567059972448536005800476632681468074123266646976004065134049347463762592224172688612182467204463540582546148063290617449931354633584822134394472893428618009589189008146981949419330860858777641780823557109850051124324894467080406184900398809396230868410239084613176260341081340850963667418654383759393140199745165059212344638513207743940034084646501486562713902545403866660443875177606063650627867293833530726662627431430269252274010856887677195964027303207899509359530406035926589407654910143548144060761825493274026197983890224527602222086142415626258438726225307793223227730254711363042664464010296239333926677956420774939616362738158355834218299499624121588715985812568773114084481902626840225117892127035441205879989431511545891063184697764988687448091992229276495380912009920215678098525977824732906044935256308627842749894415841559409409087268307708705911241665363724212778685111215064572797677374249304877523393634623200170447120401601040044799178926225020370258171907815885649191384103601860102984555962187446824419181963041071394315545371886658689504222101449720571888107622300029668565374373019789240097105115287301092584017274323290789154792707709810805392905477512907115464666112534621712422423131241016111522587110417444587678869815173484185971792640042119354915226239782998641133819740909521418199900450663352682088880184936371171358969434917429292659162883555936883306126502011570927983391660285601817278953748153006820250847836898680188179776639755074270332474242234434607679895748922658591527477978393461430108692362388156347988418594075052391769209973877969392313839416500702074488285534330815269086623988569658054384444110560474587237989712151642518505257882087493274463253485118274679889455311397479249379088062581447766064979456506410532057337133886749708993552667895727537418740524681762233623367452432236990687539643844205225469468326326918776320219520331294518155108484179287016014984020693712990130161783395165104415819446768236787315740642031604384650066809780151025436218100090365079713187090888017205988454710255206743087189620826146395381410071743433064762893709052257343908423381436178583869000885395697551510397333622548320362377145876025202754592460507808096945808616080985187541079819233545165514636498598435757001451290526091295953282865564526285713777298606346020327032829656277965788855203019963243311800624714348167525644699276148286464942824432686919377207872860869123337931606414276736738157155160197219848245988811873671567141920971427845331784818062768962375930914221773328870474429997288905183719639052145785418302037102349650759126356810711796350244697097065072942447457300212127399205091271351079210695175584525861938622357918538486932024283789745600641918024418902339081693772706274591495456486320590417055133907560591874203371192595949102675554822016825160776139006873868364751691679840929977017581327822440834703406544123227502154787189584764467305100507807037307319350144599269680735554926079842762967736791191950053720737095879635704071779539484175602484587194257135930975281396311544371119903203205075646442717598809058009651560573798677718633129708585496345963728721745343725286892783808949068373475341733478379537277129859618897110515370878129115264807665683141655024433379790589025167203800239660720726253295011297987333865603232937686828458639244901572489198775654524317579511044726799885213471276340360940698120726042690505465980584310461186106170965212463583059565417812672662283339737430035571841979638846760563982177204831862583548893750275264678590236919331657858451136644520267285523945109806554870835347907520001256238787051595717326550528263085673497447465925019230018876529753421295397639739423403270770498834000391391383049582861052089995566228593026450466238743926484812862035457410723714364911411097747862951641059039670597960762355792419971122833634392339213333572119850314848041664448444953234549722676532217569752801443288238079740126765415424050965129174299532968671137484445928861023351364658755327705729955520249061968345336031542130336995586917375367099060422837243669090059341703867726921063098320256634318396649779805715245758512866437102985708770463208401757719449304705648328381320550271796610035333977583594347589674193919345817994358865379563777057305257945465164084882475758660460958460152262031630302672376289464674673387448768034501247274470426393913511464354746486464386294204344831559108695814660135729860138542466729487847273696056455647122727172601561235345142915723489478005370727960180006382077061134325017155438431767551850696835927563425596112050128756935092688815988129372341979477858549791264094949556686480200437144238933087171440519234539190471398199514182717817240678490931020810589063529474263875009096469360330594842478929114329664984174585714814694727502686522467767069774358175918036261528465727508907828978452152515227790264034951361230682431572777287902645027466712257728369597623039421304666798951233806719801937806958395015405531348279880610014986537306513562068257680287071439999776259834510611278033548857451159536334137817175029520993614686164182356464202767034718518154714805633225257037747856459379940908284014553497946894408967519297631422889618827036061397430444599743174398502035202951994868071872769122314257888049533611437093046515979268145271371710827517783220278835698238356046725247698561727263181374632975292791598969942881079521719040321400402286148356959879258714790394590877667853685778769999802652736608066148075178258106179698557212568418316604912623561910974756441212161685721427883915136286784770662936598937991737517516640481137109161073453381808948123310600551982210634857443290561973829023934384032082872538930803716056268761341432750138011207910280492519820094384857419005150385538612451333357535643528625257010780191986342095955556597108953568060242893116656236534797388280794746009365485002482860240670923715442048064107703179120604308368093095591739030787809874198405241119747206378891081440739293453781982209136190082930326085779218063714544451329917557123293474031200623892115961151264157488226716541163335369778458245146501056853901346297721190291339055158254422974681070668235291719096259858670666233326312398611187624549978674753828727987153583002300506778898600657116559027771486074191027593353423719151261854677254931627450467496785233764635050950018865416187680874384715110092541801142712390639310081211300307605614966139408032124164912635796313761382697875364911312821487692298229872502612818150945937285836577654322477025655426764449780486556996578869474726554031122622712004590603670055268997930787416456711552517224296365161123000915121360492767365533994922043928220435766485853420532278869505500442075602380030552121447478773688277858429753189024982804882775253264463375014382463629708943935130594458342455355240702012197427653274424698921747472385151256618099054872117663123992086322298228665315603759604081969484274538090966603019677091867280409323666745582992250009913272476059508103720103568112927078219634081523741235646150716194183024018409223698816806538497917951242910378375857410818368081114548706992694396375331882876918393835414997543700754560631066654269587156231661413652628094107783911935273685068964303806699999222458512105526077165399664284651106699047923945485276216852635700799891635872053216165408210273390993847800788346069996783002321277128609253442651411047899312770036198353652321979641529292094547242388916690702190037615470766855551479676161594137657708301821549410428357509456506025556370276501531708533158839343152290461856759300123797919324891655164481474806853952292214996289404270374805407851536485723656530797040882568767113272711060838534022980160807830175780169190481645034153032823023993273869827444167540189003959897991944477956235609065067067548278140346526396626973196031562469765675526106692257598827177349026406279300031109880923201190559763295814663163097748752971397049036813491673514551429190583706168303690467377246405130890258813162122374461207911515285619219909412564888825720548899132973476259691289730890902030334853679794997606982475179186459391757453415528111745502421523000292125375268171675386591229301898386196145866536849444796658918713109843448453839954622797164585154372455331503412261733089020435849198752649972170370540091693160879725375561362237716846207761816875063540910573552941349974605955242507480742029285008335508953551729927762858403469514158450511823280728566198664902972588621120269972188259034907519126913074937600513506753724868428398594763150619707234998942466060927427364657192436036509259740124785549391550705442052935898751651410907584348383373838707496148040588303249519028684193709289628742620152833640969295615869930171461581451853177362815665805132097868052029132073813165413372194861540560864232771951002234083040455781419060235596000490263873661129782146358386047046552423887741024753425964797172858272223610451969064275961512549999896325915337660311221092617767066282226021576011501192562632690090802080497006086440224268499495721378085852577688024841014425971767395933281681263191310364161324228890007639154344192981840397168684179453905116701985775712495841940310943571422894384888475088724751534327888597129507609754364226380121264297496849745748984713540846798663454634424218684403323654309245775769610459617681865622377316771716149098563025298764043997740555834900566761128316001792796649190534736797040622398487248967286122450437006986962859322612925542543374076347389759239871091991613452721137256547239018164772619327557262616841518947048230365650404023112233706158395929155600010967107263920888302118578644163383138636256043111254560224699279815587744749096530954559426230741165157471254296554599009874168266152644135986806285384025763373001335018577869110104938144395028282110695504686120608424356546244589913526865128122453960902865218182833447509906390285748903259649002313856121005466057268954015574737760775842434457660854889628148790565972077532345197703895902821127715799135355536756364929402934993705344882479225168683579881356724420495211422813946118973095895868404780596309970540358585984235288772568546169813831106340590229867989060841410356056260211718169778022202453591404292198518314433245619127784451489917463613233686696056770468057641267900162787519998620628589807352316931968817541625963281138273256800270441622332398705083739222363634914761950298892839929566742884161801107365285377258870721658423201662021238964623792635363911666547658366448499020442217440947948028936096242770074525915898154550342633756613038120036792490290898076144394127457444971047532202240891626808746869433951441272439982745351620804362175553173464638605969033004415071970664110963862266325643895837668938793292990582762488708179305371278036331612679648374191527610288180254193515143063750267132810346726906405028523863599410933198889847457075365256792696771878748725186316760433747871561772974366992519650099609675741604507015905726405499996848739395643747508963348533173953989844431086423217512414597248579055541921538570500581415218295680355440258198668651145819258617605824607834571774099747076889062082701312567400874391509704385562759950388881666415001593770293014085043742039190735777160821397869117346046840458767039551320766696967067946646262160082273021268685457453789082963969760443553043158538539971320872147407523189410302050278699441443093287093414786427740843158064646285693226081658636728815387930621518818104587620661714516404241028560134216045068533077782503787384484195531774678206411951720947812181892602311910471551011070401720772049068136561640883510525218255202765610629434196318045228150204267248261940899798081198295374000367887051993815723072017343488148961684447739246763465147107475190485328512748463044328759526897492207773748115401910520891355276168861835297058099132295953895185739302058962689312890847532499891866507784464574128149525894857579813798112009172048944511096892681114381254380196373495282083592730045345043282636529747299193301575150906917760529860195944105262650269248669852341763397269199263588782316357428310704863318059063812957140976562472833911812542602707675151656423198063875002757525230661242238433739135661817753901603552664826131118727909349733467689683278491606114019646480365176993924658030245802054910432252274257876164667387517838400286719035283048494392680168083683663078977734674679605743704587368343945514563336502498588767317302544315329369394002535329930540064178518133072223472474393111041880523581763991786962886042476152285729683105772598374819963707965524202801646768784608069599986301852563965659103184387361507835859098756787428834588558162122186122727447073814443595565457204389206428857047932128218263209019601860262646780194447408707981157278117727508639256493910016192211729522155319494309040873596767661041023595826238394603063743774212169364324824123835421762314262661428288191546777533711674136256591112909433204080896332628756962093608948758017242937891364852737593410915256311782155975611286829072976127681664234645379121185194903352335961756729565338566240646370270089755344538721769745405663439496532917711342173089818590914078949784295849170079354691320874618667843360061510201831448320361121221208944834861963063471442018491090955153229201441431540315858591015772059809397932764790804919121226546175198120366872958812077689698478420643406950988480057307435845934711946607969915739146588034470145717604866247963325308123799344031902358789932514539058904529950129641559638666448276265293230777672703037549099117489159760289397335941718394043426795142513739782984635783563704932727889737579080800244129908550360576808451831429661816097293479581573580769171473546247853984683328219867167974625771521577790160627900618460222229975687614928589977766918460824909055599171506391184927190924489691887756791093585654539083953299563055956973220806590731651674368379152017380286558707054563824531121477359272634364551812257710138917800358000002790040431090870030877916701769719660794758164021216122829980088693460115461511813442083446186435125458854170328731334872396730466525203506361610362178163153401387303365209032988166408968777993823890897818788316517261516645731639192965607371790294967120130867477518784912600634174496684322603947528403445069614865571237409284319554149395566505692614101320239128487491435206319996116547783910010141576076595233235098272644058612963510812149507181382790657524987589692620250906835841150517455793881374514969670537265493967311574894756604378379150004797567184734807598128204799799213958504060485568786660836518488871443541146416310870443901233543783243488098136823021195707840186969718326969308704355354728157622078541005253577655271416418994169382117325741200501817663754765023686344177357176217611256295890486057938673716218962500437389556028032143767553665253218900990967820431090875858900001645684414169536414100618801409617855954091506128663180101424345580405467640650637287103527290172592416924576145225260238386668097544724026187949467712507909863352609690248698503374717162682573425892652777679893086608732698523767499901699712917229513333417590271369505243943252008110495973738298006079357135531206751371937941961282897400830824661175589761681297489874434975302666955135732924599795284725460274944353072271325358712238838694389882034480165995617549864524047059175247266152061473983124202744446792404894079970380944641424140789283240689004336298174768187078193054316480222446557525382459155518032838331957383324586881397656257592046159649894954575518236371942589977358942007879794150872671592955010489031088467515344525360682737812251161742151350021486544318536282522303907645110512233609577794565761695787287053997733245655386833952131434089573237542549035563846574720633418459100905390269705342837212213949626803808358088765315932438896228349969216597631369788650892338056345987334163445531383466120372951004749945102953169811103261106686054807534053653255173008621120864820875005076686246526079518082460807525621040145462811767355950562125471639992481375380793022057436920102435361325247125006527681375397554076643794985238440968127798076657330791261150112385657420285641144313642213322736988141295695568562449322939474786589238766022732070929558185933057814633875464541836109366248670651079287405439026161798311541250142840140118023648636302909095598436999838950941072116507037417730207369081845983271213803966297572302926075075166738346622763446939833776878787611136112119363797790130928036383776087897752448222465725915514170433069929456614191327003793634809181565435309642980257818466368427426700655037669246769851717603170709405597330244712910982285633637287507939583702921383807221846729241676346550076730321706189638672159557999824527926492089450247027811415736086862247823896684342270506431370038034508401079083352449646493932537756490180150095366470717311687372611122264699604581890929107414200283315281419058192057110901186098234218096470071321279999936761701989852928403672717023163258110228820614729155628283684242496093722398803318196668063952242499171200446833493573516464377109204395413099093073418975743133266407499014720188694943103422506143483924091593508738248489031165166437315777662490115143820680194559808921710070758899513815856521603717677881010759946881444186530809075453906735241331208819255974187853479352571755189842889026005421631888628315882593531373428916438071518502776399526270702962340248623966306483166031004256759768636978398707025230705716157677942805739388627511360329507829453949477168714083404053201725945784301064457342121367357988532015368133450131593187605809954334901693072021541373187322296069376814080105706605307570476228224164443518900920294079878971215806845332245379172760794132957849351259687293272881536075287112475523173170478723783340669937918804744790301691215397151829459415210043239096276192001204758140416713632016327870878721866105534843087956448267342483749496846321304284761096065905193635781837481414660856812050566784807402518187392238163165197138073559727904567950659061586587781858020441783465959964118236031524846717125562823817618647241443937261811432731679788498224627245497838347107023171714228568604557047252533412857871950642609221687102544674941081000857795918398708242098455915174792206044104454535817351245467290491933063257733123753196591321489361895694090922389321647571269677557783740208128812839000489443422877428728137423464445880043087693095961800160335023194721320835484602084605304516613757997659179585557139523881686378811619520463749126870918350841382602112707767274615758499769062757257431297267134557057431279338627644723131145578081519736477710866010073062394390537659173784061292919535387212812419564073875218113291338828932025363591680032612449778281143068309842390542720142550389909322571787098298194894058497310958727904544609014456849615742838676782840620885637354759674891408533411009082411429466715484092713207357062240714913359968572455726526813239523267088932773754873710631138909791121910688337455347583856667572527115355086326305725194220094695551599952833965421836494263857869436481136594438244351153269004228426977510856571074650485708052089193376220560396976117919382179943386885383898061348965552282261309830755242147270199867542022424661319431580283399357950636536709245974323963250152902309666850378459033865277832522906401022287600714787836603920167073768620062462966698405165473674669026751000884816648424627221038211561561298471630590667953775538695617768940684360092977545856657632968350101129399422589894458033986877188143933824166812893764239351474925595496878759832053696170800897536873049960251296636540084133763559208364560430333480648182630680114544502336183816102183942572435069464071698314514114401176910490695045180283280759211707821980552948541720619451229469902670957539675803984749859508273611541306810989288190776158978686925621808610708999391952295938491051940535416683582380115459267703899649640072899532003730223218738483449532659770075571786670970336528029296975901572434898442478924121007688667950686996350828792636869043135170994147844712964965320137235006375721973027556763200030948807146578811273853926710228580718709766148167859730179413425344798909187966205829084876924506717457520851155594797965869557962543974159758685896393906407444855953788428374063248722178808275244136817963788636321610248698006047032729357193007658170934611432926766183799418655096204435020610968529754532828637808080586093421003082906956711933123649281574362430756786045192069470397731060121148284152615818122320359341656047719318419835458760843543773697980232561706635888974681301731807924403455459320524547045540948315438570423340276733867151342931146165738307945725960725003651835665505568347036834622489654834722278417135239406367757825231161919266866834255438462654412888814543132150628407450476722610723393824816523310024147820991893660069011623157902516024541524976095390363401316217721677797600117302742462514773571492559252377746783193336333976593804061144146853224124554582615178810166405434919925801065788102977120321440415789300483621282344373542953546969757943437274814284944493787241450000177945105421999077447235936167505950300053974545837617033261700328232529963873238821185689842426154852865489757848928615799050941650448323281805973596225694550283065792069530102394879774297213166006109609533804733869152650646559178325326875089034516668826380229034669450554694185519611472967153254040044561452506276295304775585179924406511909224341902402426835931826451972236944328632875685249074212526861362539521092605584945167634848041176255144401024845222614290677141520483600461679959930600934456440225819124830388160759563130084654833731390662347455204748931279668447292392047354829633613158302720355291146481868236335322743414723632605641134287469828919810975315478896993549996767265210620910417628065865524299782449607725811244416365797141825323809025408755448918899075724335325369823531109566519936123803599702814914764662467469959302816721236363779038148631035995912299793983349041303141822082356017862867329617967405771738927221692847962442730865700985293568756502894495746734762771954552043283031500239475246582127473808617933401250341564827235166487307462965580689823984370541462126661491166452693257113882735168514742337745432876912151377804394951993497591469239176464540436043451162692010194130375120826522808383987627644143864712652858893433128114436137696533862105226474579992818606945620521292300787815017767254015052280638114145773467375512952240961960517268647227341652853649528422834496467768238778721039232645362659994442510919196962529081062134913750918897366781309162515856717750289406280535596984748413580887109360841609064477951366530211671748031303360644281973070669572149625110954431040134724387483608976729590542642662260098898713897191741219698823768718170146260613301767934452694288813308303701007711221695054767907707114691034024319957514888829016116106122705510428000482409192127575702869179569702818314633318147275589913110239243248834420394319497576682763318960566223093611777367165130677437800816680900759439902577733389498575695773712782267313120937147397845849581191853943969185124364384883504374296193959349479772102859926420427241800990115577912003100246844079905809686093862996037210687182718207477729374796294447379211825405728462659514768048644592052569333211743697446626052212596642411069600186867687981674239159211124979610962267130979338648197507514704274515645580297628875655951016007647298272474608557410345111645638296521964222658554700602295825909389178313997593695276468683841088352562891174946873137876219378028391841649583066264193072424532268818309734447297314298975166335637624157320969096245603978954527174484866147070110710031720989399648485765423723178750644222117717846827162127470127551303900205412028090169369222140384111303917882569952378884398804359772373790947618202218724474331369397987580347614813985457313956303787073826681082488495331031767295562089250699072008546828506080133961652347280328050613975301194955006169613416503853747983510423243576255021577893821063540404004813715942141880839968028447541988991219688437209971938782006927552735545306063409397691656777956207424950874239999240362951672413881284926602159641916114634425317271616536247430063248770398496143331105071492695026647429612044263427303411149322014093453470790478309663716885414391807578820555002805819586899520083181309195230166703598955760212755660962059982419808927135158402364790378036668973991763708025885021666941945429914982058487443488625697793405046292208911195713804167722946055960560121730387069934401271153293288955281634863272172692562606657206993649735938121471823103136135688796155861615526019792917450434101381011118802915341237237558316822843439727450405476128431888212615857470334103271257050500100394089341872213968549640369253692608851847974674821081990470806663806685892070398097107309219242253536783729037962893215662552086799714410803607744282611407381663433469985070301800882810937130793216976074241617271375150037056075602066200573540844617680817259851283149980814389769747217563979302248411233332586500364722185152269444514745959704097847716343128666527864457329446167319837861065867921832265267665362839617470612298266206836763757053499345721051310200197550438333720535298742777561455830565440976800389538765318913581251802087442451128162457156989292417703032251738311402417741034377680244904063176098823620849553516826404466999802999518154977857073438747626304108061205129237655687049795860358829290289992285507580851466044864729334447891470452710295964902914132882875415004164744633373555635131956630825199147240440114442332622113255788002910061909642331021166031811866931201427211794959217958451951887403355130570192765366552344397850043863816212655494513876743418697714392656397458870480306891597912813733487787543919272203984437857979121623133817126497168885655738111746687365128069358280255354223953021665988846169997979789572759325996565867880660966070488963410579589678107779906229279023688322779057098702035440705186130899196233510236747829089844215693417007215030071927518872949741371981411345458968668380029308878341598068200299647758248133010643229327129222681089131986770878420976377717186568966845444058336309729883315569798873838860273218079119122087394340809994633431641437866648757761171730877676773425912636483453718002768675830245347222022506648741689788879246015389522172000693839039585462868125318071711999890368434242677457970242084615293256327571377898579897568064284752941159412041156456306345321435659584277735654207054807734111561784983211081112102729610183931616812247383096882518854298844980449953642819795297975930044441388866820539507248058737079909666945445806389586425034427440224856136354371833057757653585778123514861507677619441933895973611437838443523889785913722670297729037523918116269578791504212472412523265720586963470133744167829234043267503466272526004322559110851530927600885979418429182604171336755283958478345325466459359899970691407353118727264924168620546806974891922114509836005343474580563004461432711431189835880941289427447050902518311490593294659906067804392441551903831419154347504853242988542265357125422147133372408222692053558045638520559473462391598275462625643049749894663012949017975816242756314413174472917507450719723975556251374690848690629648768136437485007860986033981455806821693335458110828273563280421395263376999885187436810933943478116139039097239761978378133840132925868719558994973800299337682012342595765336668673116553283527506703591300595809783483914341218348233400890806937304108547105867524952988373434170237390666257513216602057034049569712547123698016251547971291571192495776306998498903055707147027065670030691732908894504110018944228389355343521979848809919206961505527008362730109825293443182096486199525157022381769446484920300183891916362828756287185813045978807168130625872330799145190890136304738955631028013507371071820881653313050404214702887076384872662287255741878687801588910909722106275882857517364994859072496278255357510323065119283163879074674546621612417144217467824853623944351415725428575965033630233720327536210061869995332807650757824650580081597644413110084946278782387612806271476719648083093873188270544615097733371725608457323596302213942333083265052077156410533678745913279445738600026063699418903115940116779507304406596154136158133968307236170747343369673363006145637969649704473489844936178636972290520318806327225626699667426625333748753200204568177464824101756955114576079563541374783712902796806684675245733077895671188182447794588907998579990207253244591150145510148954538318208602202790543359563558946767692761005485533776192068405922811640973745671471182465793933393141113902874171751947698352597355749268644978633253072046434436731696867327773401952163402786455283117734599594116777682193314355846661478832806215803231143138814844139591663459266333073263982803103338225027042708674379017972258983341337393401386253922138780242283668592935238019118233558107020852243685315392838995860031994079698237797000730294628836237032838868542471720364126024430800698304809684617211069807038457390545149146787543533708706485037934629384750613309122500966572117511039214453113428167313984653795229278371620671968328375790860947463095410992233901034010691425722228007092723350107004845389378343436920290336264179861802844815601697352751021780258170959364279272417019892555832361142321535961813635349324423344407562415868655416394121062752208302610091241310014355875152967660093187775170771345028788357629426271514384906873829515755248247334671334010241821028851038960102786249931538912489159623587392028016121837036577079745575190358215738425912877899211522492744111752635768453958069417217175487338632401451959001894678682843159297410728803584570045783546028083914661268502791708315953320989468772082956158652059515218728658424934910960502839472172042022681482281685069637122876531866886837395034307064870574449376932710669576409461983539429069678516197322759473079601916211622593640003293205755783250157220131975980107096662328705348600016863595008834264352026380273479614123088330592313530926198728310820940417385733608522545265842870848528257161116902876818636227809888290054187919320377429622430587133718882823250581023966154081364811789108062126996587400495348744042996029167849475064914551999385807831255275887771119920735305040674374883660559386091702515138188560731010407607655549382829749907385496811412889479737629353511409997510106582122226574036248020276733104304574605189420255063367968430901920712667052983204374604145983953213722690882001696057779299776910559121768409090182573866299238048992461215208071493718841985299187859175687204870760644304616194390655480066094846862092617392532055685152655681928153590054256067870860335796086210364342494040040371239984943552501882880150805397711386041573634717679188901125432465492026448423916239894896635611877002495634783420667786006897241058605661579887298298564648910632072336645052672373417288587839896938640793073963033554019374203388278498437257212577547597797534058202642006398997282033304508370636219261239586569478124797866220200912782386119366418546686805975797490011139552842955280824827171322614336651519789391345989621449357455840786960996720863935055154195607379712899397055639561466597312436364328442432275526520035883318916817533921889247019373004712971120234097249522689000279991222879171899538620435825207623798339441465342992667827792901824779353084253408533288343083987067319160440008975961326166876692028630153991323876082125806797588537286587004962383703532459452304979053877637168383536937020993136240586929554180927100188625269646355643156405215894756751959398855433595441955037875790281392096799732637681290497848974604981806923817916073708584949372469887957397593815532479502684177527362999087733371833514357564112616558213167513813359144979992110884487887858554425918533389264862228198526001844532677639254262586567143719841340850688783646885803778496496313424441879790171760850518397100998899689500117161148332651943246275734272545843931391241520161321484461681643580200870838348004152723121503344282268253028995247942370334706501498733603690303372660430912316236358732270434665970471484266982398097296227037133044441280435879643914594390917226827080884057506324664986981468549965222768718221501468419129724306735489037766152829435338653650154142050491574296709524712189366759685431479481613467929680331840611089704804242418460057193815096792356543202992231122454857498279370573396354204430926532319390345325874938176828200011296947954719395111662910840381699113299103457710448442536153623234145545392782509851470762682447976647577464998386419976152615824880865092245574539188520562553641676015319185289686733120092544181309987933980826282105319832434372294567109778655036961572422322507316725857560230471196778308451200442159623762692367118908717399098459956369603858204269256627275641814862422450933306548779017473235526303774523373281591580436252914949221783422843988472413607834542156298641949436726561827652548247066970113664008002259487411822044716885931726692592904113388468384730929855954813917529245848123058547589858565278968035906872853175526380828588607373008165523200462480025579412947318318820618347567220399889479001916936708868410134424079510346182813251962636190167828885039654565700791638109372374353096604913222188439024423888242779546907062432653942173007970670409104271069919642433290539459799216895337078821172288198395305241733696788046787217800257838470778518908137846097827161907403503689432829370926968007645006373975672094535146215371168084739869614778966023502772710958368384106610531174455534836348418845916515201434061335847046272892138558632088899530436316215586676508100163100344577903009904422979680101803816046954307145854522859158306749111486226835076057244068155548323401362510153395671445274788020579699303575066943691492885110959293992326526376125609071538945976964114570964123336766444354826413345787522594609189378194504429195572707303337403983013369198872946396314734452299720667854066758641946164790069725659209570820033691647659278638520221075683833643910723553951431496644138267702588375885381407000468947564181437553394412474204188872217751760757290812865204513225301121747177142817205721792692384094032389124928316606605771443686914433759678199709164491299684569657636878754763966270168778034206889854351660388148714883067474989233961733693544452658898838556288347963281979959112115494549208768034528991224065175485109479977564840319963254083703734769004770676409855253587406480396075140907210061108646110415769817802074649412509499573392052830575991722083181021321988453725455528325790113536493787851120114238559550299159009881645808413909335077916196041215255645622972357430167697362828228265683984048003480226079956287747069617023130618350818420286047533660427007509168110316408654754277866154692207643486310993722412193605217017756263051424304105531500355293702704118784180935323831557574634593747279990197607365511533582975395912748540443116709982624301463424372349786162627766928591518568943404450618236471775452506504029331513941331323145512982232594172721886420669309794003486877189364644230667304531799316164774344017350122667005499014896158812860426285795885059242907765882751078316937769036377459046598146310008277418502818032497559412509782809852486208897028013236075568495069055073692598894978682971176023099787292921147351556613497383398045349140947715167837353729494033650303560188526540427012191786633833122624210091573827964707505485828331060430575100550619725506321653638869498457930201094855396080551314001389661754034550071904203684993206764979551361020776443778440351761527696550854229692325237887551671174530603697694255838916573012332337354987598411274799784680305542969456208389205413144722646387858297196528397032351299524713546214079823782217600112432924263284899077288919576098034712236952404097210448633417000376586310949613766879831590470581155924243793431768568992116981038386010369488440102731305949442998604916408974214898398964222862697685203168825355590720610766965034765633774587344347250677570622247934606557279422497907638490232650408047701427366408934975315879882662852736160878502799193797553970245411044734416312036933246998790299609915653753420266758021792282912999393805588070201538564085006718123714527904856848408008223602614370218617979557093747282697114698161761882958069734578267204854267229954726369494597998374401419391604502694489065513353620043047522447889570687648945393654440243356582064851684311484952968268759281436302726982143955050523322144263881371740223342469738929554845487965990969899981356883081232736566946687957522206048283422159884962795467950899695452665364525866438968536587257299323764569585490910359759696750855048951645287059268049797258350457085859678256758138768149377799207013717504281503246885317591045093982640922018842341047161941812954378603666055185289343341382795911322015682227784097934366925937156154576797241429052114815343623454794147047351760538446613605805528171582808576766977923867284881901789952167615356749002618699312924424067514028507906699266699934818676830825211479450943054372219302889806649879235127188786601901210248068726894609168260980134669978432628246354708092444009186154740931901677924429870457343448659857097960861978086463206739020473143259264518391561265701583675754304562945471266900795534088727184782123734104217026926151139649884820043339374833693261137023238301369679382298274291263812563313649219875515160933147983417452067192235768748223501266598725569107867369878894211655569124319281893090754559155389595062519632333517860183544347979917771721662372662967938057831159065678788802140826751712521635471659681017033566796449511367518949874214109163417215750606124443449842850956150043483902477615226281619328594672123685097661843403355531651392085144358319691882694158770406178901046617026334870624147909255856292122954661426896143978617239679206891481714978353827575251135559964743494939539347282921619660902542587083812083325408666919454203182535600364718071349048039899054374053467690212453225394957938769560855916505358940100913214331795723490514863818347947986764486000253760667914267829057600782774992714605583401950939403359432555324723404925951078589082640609662848369091541095969901247143584148916485545827173656487984762289481356222135482170309343085957124848571178735988858887497986310046555250378840531119934629474290104182560561297628095385560757184985353048662704019513094816215819614159434010877340010246492463610433704590339548643721797273708390630172825064020583826648625302859432783654174138771440926480316190863611722557261093686136992183699410288315412221968886123353632630216980606458104483246787105310089982508649416805105493197248542948672659018086271062957167457613616691945016008650863107983988446142821420748971096844407361113462778759238582280930396812492316933172221004266899229140684341712026001325035196727724545000868691033350820316478089704456554624196968109358809550314620079645381198160774003814690665225732911841434681342166600470721922985693545076266107670556895051230813487534554486333603924385757533125085510989754417648765312452268287520017710036395047273742320384276013464448279698507151445500340264845305843008995630772820549189408611448768440773173049958307848836675079220872355458313267369317314331846403018316657465899884770368927757278418217888777945485619606053658232028369079322037443588579430350511889765592544767352989737323279923326189455617883018108513038965628633112765515068039656574203661342664855212322856485500740671611215079432361948524194048531668011577170481750586443646281426104431450482707909378052833083502966109144538761841477246465805346561099445382762766797786708190074575616093015897932739923507116494356787518282423568044459451952876475958401238554157484392850082754918937439964814664457391113483727165248513058215272958510134876963357341290525002865234478135616301730609089081571676242153177456186339080129262474942450019864547836945585221105394006783889310516563623787841047978939435671127201477069490196545340565971276199700509407105840365162340606123748689371532969559335104313642319445304706871092913153560032441309319953078270543140659807052151405924515545223967200033045310048706231651979372844945714303414425135350250885877179082715771915344458038887381694234669135420035272508682301124322031941724111488997368044327021779469749057873406894349696620525863509595141507869053464464250907470875085418041778784282038939960019274339941107496667749894530932044796984882573357927276246010024500926065210129090018768131824709865916227801810443081573628484743806124676803396987986423226390649683066906541372430293716413474595212229051594751059000884200220811709112554217608895001405805573920753521114393359774703949210223441851135314132973234233362517674002796865735620318150149232118432525065495104248004182378449074432376967436833244961117165096630057035989277177677922362895132222483921584600002115377775517640710141516509705370155564127603107609201089654907937595230751611975523633610001162614892778157995909466454637504398633788185164087720517603001976385707754014218295690601232079056601985491541053138075752873916158428771171642203463122661805681626539487051539093055733386056432617566522836963217474241806328040492682905071746589708936105816692273453442585515537918287752957768063833719455002446236916965843961108626853609535135308066482544447205325568835822712104649614555621983431848951116659795729030940739176883175384228595339870851481078592432212225985647902368056693493485217499120631065122987118775289002631461609298560842787132983978149727188481316498776203237369157476685536099600027143164184726491512062406951567497688936206218301571506942430831763229839309110375690355650691707564452304441980188105064396513593850898445381125877069682939372416753403367359929229478745323463275261011621647482281544411933085581013581062037881097902274118572721893051543635922988375572823975210454854681950221722033966482723035312900463599255048405275615027337050763736307606143174305880267013673713855140632610802383128780387160443969821126770074160021839966257901774001067291368356025767972573478179338764901068997497771595674067977605652506977150457298522379152714240041557836028394401142792879039014968084135168062698039642979759437171654500885604122142659630672142336651855231506959153406252400072449731907229540151266825111109879606991783807543951888209011176306459522072601060925957244449899487407903022550673681601190894143364904461302824248200414261809633657311169312676167984353615814033281670441895227346111623618372624683136679110909349289834992184109252311400547682629164265519005560607408727127780130732436504145210219029209248125832857119391825170877924047940897352928172507011120655088368209723302434086464272170154463499981383662948025326564102292243416891113417073310081144890383931328125596225783123660106054731734048715607695283659553281636338551925950452128528895561322128911612179922518961799256100730731329158715327466402923755830248137127891864234304118594943218988601747974917271468567543699048389015481620110190113750308829239023247292050393785023072643304233483814300700316850356492025846805974875451503458975287214232876506898116707769796379153574735974923538279571408378729321896001766835118174237233824087988500214483817510314068741208435881091514256051402146533424666784416546254801669554298624133483745335584903350402413477481585221858216512059985023094851248819194889600131439837636255210235671635103875573705202121650795995444447004400713666954484749910674921111908599600039690569379974560418935960359871045712979730177614535533668974118663751596578375681352288455400502383672220219063789819265735029344594156046511369142691488091525505069028335914823242714479151102673192200422559669163019508652271801011269762615251193040365052872379427110412409498251605897394946524678003813146837121838461756887736680369597239792308671362397989527213051547293776621328899341514133898749690572604616336492181519031489774590227756990853917778909166473440848912991183661114283882888985502362742576864648090575188829000815850042699135414493597020883074162584547618831192924370543752252495522909682439111528818828538214475205194793560155632887302461175600314911262365047747858049279699100776850354188843537078769688483321267582546458876165146753377366095688063140507326182024326635579804193491334212875323221108452170452088586133406988700126514922984926669533081583404861468182285369783839371587911832927841897611602247550341499450915028627988756700639775041609920990486684061590598320073337304587989963592664719190848855582372270116323987000903448693329480413329030339090106578170910708791753680455712466900212365262638576399615946581411879261566535831129867012904435718967903534689498671908675388578296454794942261096335605760200295984608272711169476926153052613445226439985139276033573740632021274584675743830210309764171958143942516686607199153857817951761309647499462983484499428055672606533604541985932590854331453448877232356804215384911337054165704508553435536591165869967401195250574960954821312385240743354776460834745402873481044897087523614489111243723221764226637233182828558919543675432192246203692757417681990883847091392629007621281256367448444022465880674371335012866507539394816690627061831151473282820160777751546078513115717161896730037445428400572904046357366503037843200317247520216551887389672314143505372673158933277777422582171610026940356861446745868043589022039218611242449454038962507058158265583683595533315353716438192531979561392648511473414507663622678012366092350314390618783129493488453521179840328138864861399506343541909408636403495026696833038725467267539209181963446913783382650393180347197565902780715910172044629295628583250573077374918384253537083624771955363333402078405755393858463902734275381705814715445952882109278200419939829353344304409375127547983906629612225089339543818226539532602956961717423707805716585195467492537620940043316397962494963682855245963442807769354141618897856404935479180575157102973052637157380524701389343067002164303896346570017344078243877987473834642375981115591396697791044258994858593777323693080147252274630187760481749442296952312509231325684414843540575941145746687447433223096441236259364748996957517730624459027326461155949181051463673228592690324902960982278061457625739178742647793631638651030017626883908854987417202615505279062553087064026405277267224325108830503593259253766444885064985994627649129789637061800326601802875600594800890630296694278255432685280814833361752758746618891410993311919465409181757679456220500244849539265952307014333670805240877966148547925172999213878849908952791640294293741015722195792911586865615014057125718324979957956186325228068468643783752674919089768939328344477447048206561877933641809955968639268941344083174078372175044329433282335073089929658835089963722731015519571508219513070306942054037567355905154958915674102914776557245703762334742048863038133383367817305118945746804961426138742036546337028565758732345222101847987894108956640686260374594326026278066563483114915775953165504231861494215869249148938839848457576694404802452099022210696688094599424911929132881172910642513513388625813884565861744007309182986655838749692731201636468475392095428800790334981828554781421188496330244657006800843526303085909171804483569572069486792228669237059435965922976924875052871727061032368200763687199648927487877080507594681856168387839973952367726626485319757076968010024289810959380913762197061460939590143189149222557433818532184271141266289899395236388910908440523113562176052897622914099332563636843401851148263770919853040264787161655591852618831485715985377286052755210010739240693347811817391243052560371319215580520550474032759314619545480266717415391529971729609550706519211801251824839707768403932729955800468586604121900327906485489789684061648519609946154411744737475175196016225726224528731860840251859569682606022246401660418129165120009375356685172991261165287236212277806274670325321386317579999325526563249615201169948112879021408416460528198352327030102577708176358463721446123727190945457805045286970599997420461761224737575349942293367231278027899248159113353642018210449594200940818245262473831432417636085322578152630767700385677179123657343705691518386286355402422597571864580061073268172084786230166055094762865772219651615710329677351921013571764319704699576754493058455116334089694645910739861233875859954378891806200148846596354327244282972238138660417791204931897941037247185560088043408679051559930314612555438640080076905616210243398271846483802174578198292695905902586495040613604373008194716520339245520513804653720649435819484429713544039746938924458297376169714533714898290888120474761307055854910947241609848068387351380626674713340409447211534960519465225664625802063203353118399670018522475719702099340503501947812906913176302970091343059568297790554122025393262914016345512645115372413895555283624144754948533918367256816065252503069137953784355405069757102070773435034969505310299296059799723546650661808841018557266380588581787807072042705036117432691375074494754275918372947301012491252725561570820497570832513597390114850160568394189920100847680898713848462010776333170243677905359283619140448487695621790106292059450247008284560344526217694543669810833011981931506466923614284566176044666097172451810962400104591408485159679605262311561355937207593949045411073749247269274984395290858585101083502916296655626606168354580926096892212554661135491332865109220746793532136392638427987031541748161355315045736971154131179517070594687482978876858547423133411503506006104261599309396146326757755720227682810947864697099491731805030995090361806561696279332526983639871118241979977533273187721175594883381525667157446946067349928138141795341280370404467892247862950447549572586032280310018557591071919818513815460590953572489906246269786397643170477045729111239168820303500372809514005928101112672037005132695074130591175722714524020930343060831535938209807750745973562567463707780700571890136088076143119963486300298264388924230682125105679471151294800853915180308288626413110020066059516903962857114193014669852987942595145602847163539542382834776234936518065139670734495223501798494131844457412264629053666468162055268830220640169339661416940714558678926498309162201352407062255114165206767008638554547242185211700291601754934372868265467765980544633816092618900200557043516713539986176981047537542615278500143051411952784799831794290510303360509963914932676361967217603348591536859825187592559204235787934851442551655106386441455901650193411838178869992053857684359927076569921492140911620532482417897588845505828071682133112492128216678736349581634036161742717197445593188858734449582231313763170074903329834204238462626341684355270620581820437085008560358855669847890521169996904831922762271354510931627091072816968124369255636993869662740820604374886085455514698914730643128085821999012482260294903185836167699110228363087618752500013372293693708147387830262796294760866281590624845749219115167229750139844278384685138575260159908810528236365735827165233874720692209660939416674034131536004634538779619768028177368647078017678248159293029402335144998115435323281561130915189941030181830956700498156647979325745539324202987282708435031808875191932408417251503173163453509089384723864817467482381613423895468252729170915066915553574828079792074785562337621543693284292133302436562888766060476837149191204015461876850455968041516433366360814770516956094917769922997865268950093632409599008142792990718137262139891000136769004428593082932200452939169147943932859563234362978728861008514889946950075827316226723575240865162165115028905177249487997717838065367497994282092610618406246303936053592526557055729595214586595054291913609835130941336991270394482070476182967363639781991497645612193266776985622228863099138762197708527535269205102935324391681879980295891358706835045369031793647568801147112696159739889820186175918206785670115034138870878076310493511077882683711547166816056715657992995749386563643494692542520310758387517375286194913840270862882753091383296389970172067755930177428409165177399079908921652412766115028167312784555535894124413473104708842311213967801862840561215339121369336704204694369572544083497644711235331425459342016017159854901008316974447294636394723027250921821830515019654294930470907041433933079215148425200956251230152208670566682153437365564375304935908693837390337857777930483918195587166746938671243812236986312715122287163411735102061600970259538465145327429204239826196040499826688142887941993726368681614486656959179571605191218147333071097859707835947035052736549065155637027320950437099663463427408582463863674289262900174549864177758368030486695969322278757025230845776495085422890870296758898934085789188228319815262637029585409375522653664427776204944673191208034588793467952416825504122928149806177694755559832479139070935135659937141042073375926892566753825933941949800800744276418917196458917373918831311252906975147984805577693606872354348896118921876354284079695741681428058551689964068907627339072534306889805820001505618757811298618868218668704329539397590093041399996672479270556972990561161983578710027221625395279604502064641895780415054460422815230964301246455336822232648574144692467551663131825066104168540401863141451004841602433931363385086425082973120225236280182209192001652912207939955872183961525065494824155292203071343041894260794927232301765924971134774297806361490420086129653782815226411398971158171208135875403404615594361360362987013414080978889153334758255597767416736867884849206193156054503129731222328755822201734465688615095444061423448717601817039938258223953347779574162452691885470547085053718970570700655530223589469476814644377623682555414862216738412233173032469352376787942211995129569250921273837086463722830458437824603651288768322760319253167254957701457360669268615295586873380630795290224298277970762725587331141564980943102629336079333369513163659445276082386275493501131621832052772269193531427937099975133965452395346963468515604974960143578421730118554984001297431889550882645522702592677100825409630424299101164701927499182870774707972538350191981165617864734209282985513098976754547287493206481453330980514008885996544311065747845950101426539218042597859517390904586745683148935371449463391085984891844643013865131011808235635960769721964013652167946506677676753756073473397449420664683707823407538449825992245074862956528194384919057738297392407221495380950622939744556224548820193138369825888138780982663900995920832884291997669900455512515393620615164508705833384279598713676529638912109438186423582695609729816065817398323214510273741860870145117510029371261035428795923949607890207268099633921721310233958330720939036118733663539163986408923178129488812040465519717998447093220937513033316224774194084611785429338690708535336974493099580305965028686820807310370600081204746227905033489086288879347887008726748513381487742840964062377247426236633915221540273440175160253033809694779907662471196282832481691548858381442732501451262415691442954230709323798460092837368483141389168912750744718435646806091291634256570091270417646679576591478660285842705101800411868385424601847685560728820558294723559799968521972996638254413908206894902018962468906865860054173791925645566637911328230681483512412290880192598251141416916302486490579590545170554299341960379857379241169281288183512462391730459995351692633456521833684130641234166030679433717083218003884602472883320714286563570441502952104500643285125997644637540663755467684949421529869388827655888801791802820017272540017046910662379657608943897921121198441803469753405540979544256647192129169545904123803188489041891046138747737621114023186629312584157436803419604549794993287968099866354673526421929411371384349810242956186915206384047498618304309352308909679341092342101966753199280333352552254210950876046723538722801124289119927637644068375597386234289881074842883953186476771403795252945813335360481802276258500231479039609458798660370484369474587319202152905179137860770345974454663997332080690752873317892774009102307351838842565247282893548164330202718575017354034458642670750543415912177884169670373746258514409931564539640235265151921016479187654993082130076498637660858247669028765662251232402057678033024656893148503780034582505157031352202508320872163506040297119943183818324271183662967206634828715987475153556379199984959731585991461928006575258125986960808034978286845723156185749724912803323121212158300956272412118585709551808894915052134390176275873733956361695313993001140486953721508012761764949416432243366960360523783376949068474956165175703293612007856059303529866893082057697569511291512415682854751769046115868866012040759329201922533760776469853728674660570984661726504004325415797243820569790957764821655695145869124840895938773734808234279732560358272077192730642943534085803371765526905327329286520802069675691894522575679986408057346624338585566831908664049690396217956658933478710814305550384473665112908835218336708429996044790899426255572686978343467058780940290036298313800113911614548742815845924900910793948896722649499232504993014216786515002961548889444659934785477934642155917817926926470976089664058348652803498009258262966332197059933603106772012899160057102096817623103194710442647893479583467164461706916943377466142563834284725868925866260806425542307333131314218747370628035035250024998866421683502758570721600793671527031603368655630418870897443289928147614942766099514761202543463630643770653547240709806932741834320797023265869499739587701205621965758544771487269861433172106000065804641080207604045255141151566437402851539832461229663315981550249111799055478542763762219265769836676442920433872887215927737087632214944723149691447877550511104561358637622779132643920903826745723062281150411626175496520706078856615573686881769162146977019502737567101685622602155332381145736696851862943922476616378686618811320445823187561144586839114606561017394708247808846263307032727481387127972682882149321469619980479697669081566294765316677445702907351108835295971309508318237795137822614001567802422823742855643131215745315395104090669791105184793838434671022673892726936454133227510620278334341198976606893328058495601576536847443826340112280541337192333338152640853929594882084973757209691224172674840215741522067572234526405473849032334060408583094370043299573702126237077986735317028180439680749232129965525943066233232735739767953036429417428256009221235115471072548281105633265978395100601053734864432578834090876295803019647959659256061013503583131833014923445658472258390003543184838019011521298755998080676641456329405412690073145313676807209739242883150956690413996273438620482291219283816937634799590827773401224939050375689964093525317348042798387167112083674443183822280028687485359852985000577380706916070285657657314119626423792494469605627826992202414188222754922953836215022341342625572066503429205677811757100115399232911891927022725509510284954040054231497081066264811766767931177215914083569817981453924776373064967434100774726408840526615654938238172946619618545069632779915605568829230073533102324229917922511757984573289337775382107697233786676300300958921465183632821018381803309546381009686277334793445034158477155814824481100340837779670908673562051965956068227549631248274038554689081708936349177890274101040775896775768968946293132872770869703612572323705280181443607808392967351827530075165450491680623789793011472807532177846729488207553973288498640350730344591143448132527825301317987248127751270044380914703313540294325041235076310735962239943972219446127070640078864963760519301277685392683722178806019787827410597946644988586259955872186763817279427838172143805153368658292908320094131789126258039536183011119045153919863963281541455934840738325897732813759670535750026724339543799262603553192724383104681790941896271226768514153360821019676919613072353012933469470357564299826615419470166581988779926710972457995564952866204983299333451964528933109703505430190123893390206436766000251588379813539911679761895061635501434662444323915303086961291945549123967221302069845352445784736875504511682571678925736549967056247521015717706736607213247606701581531455279846720443784716327184359033908089964207305573043621512571487314085980794060789735569501731019343983699381329400844555527591796955790189245516645979647741695550399457317824952122104932899702850703143784817914830231884485765818182934676267575014930266033039489064338898019547951183533501464764442809943619329784963389889575507025732763377989651958928266462369015724824866160909077431533085616022671910709967515153913515161799603347072943589232496875541782004251878192725692158934721275846090584484218100017426522173985249145856354625067453675200577024036115779684658999418470612914875617755783464952548794900577361081591134793374597850042767203665687851203295365994548925188812045010330934606076777845041928607091714806177947787889384047690128122634761583148742487569276490296793541043185170693342986877681037054602777232161097367401095263380427142716116991885397697449693846335258189905142218604551299064061476780836253771204590080980087280505340928213311869206683869956988384763022176470365680629338679494011274091570469358396428677744836285652957277440250712066440572603093919107179630664472005645952112353928482027989684856438410609637735028123221738163793628644304069270681536646446680312441994142206708491535402252727216382132063671605170327518487986892528554983326633879278487640068131947829284979605458603920583403861113648498050298545544770131086102154367390860973754680910686748518190200431759382208976721946884035984546394086160916061998459125673207624375613990557158903229077501965747145897011787763178355467458524243295638864488078213987940759454952688295059607935362875638614621072209352627333258593826386074156215518733923768134122602202914787955460252536654783935183889851340243736632372590496285878087924490572731570616780193184745231902319418379356598987858200326227078748264928225569995970163114945469906034176107967229390059058988343120852429581980426112803673783158948440610651141270846278016979922601722950926368945611654011031128959704834042726212457449574015274229389223513997509031786318509074389155306066585792827741098391870890060710870247134922907899068083830756026743160904054083524545826255468512399298067393526633422818714523596293370940177786452388403573748740611197355055911027888725181983784488874682886471749609724805040230674491781842682322076225496184693621888287610173479462269702769942113861118502691955080188682932471569056591304781446259663315795927673873106076570423422226156957353588602552722767960188441247483622862895006699345937133078723995770561613281753331867057490253038414258900590446291867520597772009267346595887438316150992122540250004068541697973095903158335617954517281865138285705785075084017911548340186255312356684474733354145392663985398836944356178070359989095155842718310607004392687720647134391954963245956750358484496184967253350750375635515675037935101573837999251950188336766430523171482907625802437803084427625619979012774407938589490512568252805433215304038191934677880481234941462628172893381257299090312374089022342898505105088707558130915347350576288406985043089642330063873027041920534233514420916813843146731075176140878875894200097945300063868617338546654559142115387944143543529170092181003191972157914884049840566802424093995640646595083250579680528224782849611237956467549827506517593918246254360927752214215572384692317237732833890979971482500018242040214160122328700123342550689477372411499477449518599883887227213352651073254689271216354230764305764932591289180060632821064103112863149086981984815988602212102165133906467211308741093374701769007081532812687279564742534097679731843054403246386447345235937800963983823893212087695485006693331662650331032980187321443727984107965479653030540447576474470850977151049008054615141409009801821582681285145790367969577224759822111334306435865304314749046774309457868083043671234346164090656764047410377966034668162203247725221646095216734104165046075100487789809665290690492256309090071676681914664717239442706722985545294728907039773698919851686063233369948298207355423955980174682118997336768023816356125113065067478855240635902696494635284778048007629371819656503631783766424418281082810657870489835047474877931051526309043926926388986211417891001071524562641513510898546337968464996236232617534008244433618322925802552780411668530625569493324554232140903067717946566411778719541664707941654559734428251094003830381386037477683376806284409202063224690229643443656020235258015229388789975353446374949093414035242369025727953478839985094565718552427537720083352156491035152488184846023981926336218714106767069615416136466342907450905349301462709087566780709611819195730922997744556720485975732050045723065075839783534661579599402820416569188115978998356647873083089526604746844996092721644413834573492167877026808066859871934656584203187342226686494227195592679082661565416765241511904015140949625480026965108062095341474770180146035899074691469425559813538852073544147954962541308587192913302464613946174098651077858704678518203141797743896339233347643024296350378578465112492287663216655934778455315924533644836956938113738566938871126272764167749107007267466181454192129926615868570633326343986782924725568754183134993015485783156825597795754905053033269426340959803694411310186874799003112419828248268541034111972510494570448054773661842524086151123090922601322338431217512058921684598351359204678457844712412716086941251126401012808173739994315699344778083172255210864663687840327813120324917840259816411451257441536284468426910175712404925455399273622575089811901003733592654754300236011270188685306623991593128688746446609921703781990984570474974351152499046700461149168293692422802643258091319213653763660305495376915955285847749268008118982077450530805966479476339570744631900990700774090393867189655739192834177830076966553868480180702296417595881213404575881560465703059077499609573441101866533340638721781774072047527588976000784027135860657794573481124845621956355163782627453998171697621111639249842390832980623446709649149090281982992375225779066100957872907773888252508818613962067763328099747384385630270664926660354720873793904639393979941062920424285166548827031902180140433995745760196204483622596444208908726202530671265708666779816725570607476803652834860489171853651316354513832322648138337292011976398461830120824776205328764585543973228147811794336394962083528692337566573313385906897087883936602127046710854796186041983791282723857800213134137770655278625431505097163104770313901169690093493876755001448628075223210929877645445093332538632638755935298663993933103784132656987917212253091549884979064935770505055759304055189224264011172891209830316072591532014020649168302636477404129397933204971122055186601400902702165877390925423005099285989285059324117618664044118013064841833749057890977145862054082842133059986427302476368452089236309945126462028342742728693329233390336131393359744446748553865092443390172582228919404528975434848738704899439950731170073911997874732145508074338684561525147598906878902919148482784103961533659516484062301648974567431100404538079797275147270793620327874019186530041585150825572060912426644104475253596802441666415060454993706787961595725325748153694021908959946463194559489940333294202614820670006020805777773534851716393618390788718296739873684327479231827337870681003877999380190610311824716272154875541812536726504625933466137245808681331478193450725502173599744143931612612431004941086387899574234295698271767053278967094070017297651977902026812277234398536529331579455308350618450635478820839478598458097029188621309720717683572353981174887135369851320675703321061505148046674865291598879300886196102928963908498560119087840361426207534703506021928092180640609294769343288197027065464638915038348164713356711753234563085557761050367231162535580547836239720045478739115695210507269862808121490284552459882480557242325585586722296693676435049798732115161394458934446668472514877233458023564782294940474727056054360340791331732622732667030041457408165643701708690011926872812506817569326282249291878127033420964009041297013195775061867229672054438428423160043467546210908984631246451448180690366418907513708081879846242587752347750022946707072375835486406012037398125245182187671844108896422415605357223515190112868683363923744902063068288559731187311765745201210838001314428244657881478010380372876752320578432361601314608190652839263506217557866919348769386248324735716452639602670221858232640065963026325266912247835182945256678560885574320944156354072146886123789066803999298216216802209726571572624166275968805669614025821119140866979412978852271177216552001934568337382036634478119392876068354609903474946577862796519891354188043442035301849191848760061834897161168075338329983978868069264729436874946616317691592820462460153083430332045757428756568344678011951611169109041150859379954641479307772687660275403558569073265842003360082777325593252802637804979791619404816668009256366684940083062786465145822288332662164410499467927813633174982585149230811624673262022194636311035209134127412442066426307429401887086135475000263446231686458901789853931716533203764968073862114744231503290513634468858951149176924081384788382401753270101278509824295224682350327726377886849925448385721793176872418708742611437431290072914473529971676448349977485914873468724625301505343013294125651333846164824051959561456977215685337200494266245181403955801376530335917204093582469228277251650040116133746236864803037830471521772230837637241285196240639185782784825481677228023249744033180653965575911513414348752818432041547133787571443207067613690471595109999129149832370235973481113561181184736695767576960172528640810334022947451185850249445235889308968935377427062150680342692586485863039424945381831232712307657766517302150121606875076874471698505611010294706274132616705994631805589668235103116810715986463992997434415810566777807459751672072404732672387590054358745991348965636737611573484349728319151667068852695145642995405849290669966211590078457299350986462667899203271193651941797969890650218910557484135297743749416701280777275821339165887917619913756206451202025531568640663246980026024793179701604077541305803642600956767011033063089904008945231401700373358417995888930571558245669820459338550354983367328154327990383263221429550563408099630780889857815018694456844430074007353889402832943096946230107914478745321844937256308051341795117097842320336699086340784040453633568039102935670445448599384202802338193657268438804117987127750824422063279297829329726028916726589971626739583882103793877635153723436263257959721823237270996664189588761951098137521213728255105903578926329985587444644998140020004511442900351902154431134986371953620523384922759362294114899240822745628911787725178670242635637987835612000960754583856785232622374481860517816877904437947386679715598264822892420726523824974327123826458279191464484268204781670643796503127752169878758143972735265548233339378907289755149301549837815306457002548277854735159204104530729406389996610622340402184920022439239600815559442720324217175963193810248590852680416390482995562548655988444315428043016474224978127005942373662105061253796765923705632426205616998276916615257366074710259685453090586875580349045061930807197176661152055694352676092468049068866323790909515430659700990306819552908930297291668753824305099285544924704421193240738490457918709531530239238497411099293402701429544211722524846346558038759008443086389172284731353458107067665412203091787103499274732970752989609263959399310361910118466383023261519077058985652887305565217132158032328743347853935565218343018499109461127976313529871098201864214397210877322292459833265735764169131926079928746317793575406657374176845952531907107219454980894672259588302212025093323930049382700371286074172558620259385352578952532788243128331418226451534891390698945256295612947596715744949816707627093783336609540842986157053757328972738635307469236394208482576131574742459468149433642425133987484997988159811501066960813503118571915890619574388079157143635058460229708614764023810846512187924509236124409871260997430257081350281599055538259410767340899234762873949369336118754604710922688717348497362515611537827513412941378041664730844387394284540776730030115697821347671146823721202341196992674910394398971198893934314534884565194199382320279429011740487448459588038940692077722183303915496923059207039309128001196238642226203373420509759044551456845149744253834050574140836384956285108234265719659914862762455628848479494659036889166653891185956874166094889378383608799009156791029428734443343279515210108852837732102154585159937689054386250675015787160095969452853549060379397612250489874190298047632350481510958216077384601826372015000538651518703890862787889590556242309872832829171694870751882658312109982918050534760995680989357779916890404196917803507614274906353562371870560495455844227001754866603923137575270485524912876978456684882934238549766817587794642339097607775883631948904069799357870411725160429469512900982801999128500459135100016118396766577401125513591578335603663829499087147972170383201968598296000367071627757955567023590563484237802409518721155887672794110869485689486183723921785362428952257096137634951534134545231494522874290685014855626981324420391937020883881420448165561372129181392852638241197199153773894728354311192217689927365017070909316834184516768471625432057917102657886819938895731111751811795856136062871880158468352846448323406556903830616422151229755243159708179280358281537140043187692791930817716277926162944362304971314339111414096386937662524421477744371591353080913325054267559947427541121581870519046014524710116256313099986564864687245020867540246790547246539572444074021556670522141773212142695627976528475705203557692277644416273237981547289003499310454595235492378327156621100030041155130399689074626814901261973096482433384634161360155275704964728390404022953333917720817310200345794466356934161779999328599756564707404258513085764868832452445285386921226320631052065043757511210863940205264820555870485045879413870992558947043184195317444986217083145807575853970154156412730166444261870410100512693763830991887917638895769902767585325495147900712549960559495295586625001031997165894642688095985722375628829413352662611919120585736042979463875304616171011619836231466786456315739031631410776183693440702635083819127898810427971678458092940011408474990950892900244140733451403724398695100967088110616645472360779237325512620958353347252276214617481810854444129888444541296015401846767612540902124535664976007630103948156771378312999550254817366468094693603197788012653539309856152506494169561410483381841085321586514110858154931633992260723710291048151357651894705237003195169895317809183160219204618057896643981818351777116848042217258190209619952283906668553018854141756718170494635293559862469530232760998816974087015678076287378000176366628841833196835032924239599295764518735449789998180394162212221213063055329786822900824655012269328474998664020413296404031400214040735930838642361044454113147432944470921999976172176671846549788087200631378222145661220599186462619379778203822955689013668045123485241666091980587116928657978356746128751641858918189810027084310002193612438945904723336679455026369693291710531135552309244614847473038587124527769358944462992680577842144939315019963384894057150527365747110348868533587754344248157374211891358036055373842565823910636442420825898781108431605670282817545493379713251334047129682226678737616077573584763129264789691604087496583376589218233097499040275598514461757188023167968153182016745436073688780496324783282864759810299386050961092279625397346834841541023765315859520737116708438685757086129797032029391156270541468262367920653317300576887823834830525422648369840805497005071229513655470797816429466829244201483882832001297311732943279847327488264683076502372332179672477512634954172804962458614243947109239182562007106697621172311492212676594964936527003056958134102692134792480704927921670387549313112522698691213723659466731307304590630180877763767564944894921719386013873498312147192608639130988129135785475337373450633146842529782195254209036524736001784653711514919365776581265307894067627964182995882645233593000384034870539220407948289072217575353688415533042138232605166015600443429771868234910571371129538568282391749227548374771030302088981507088346004520296479809843637516457786239918841953332548377440409801302154012099765850190466541392350734981155716943230086386167556227253633218445280878356068228740855822143747469672679377898853485871195375172629672943334186199597015084473355212567596131959295170992384684343561062725348923323278113939263986712392413485776930345800685092996283764837591963964044125574176922928311756697815054546426391447857764701366607274357255646380869963328968698987177677014873720167768624868330074847256229712333503186244579468700841525985608905114630129257021618885470881033821554745757918995594450022127052566544011962191160987354565409059080246517257456713145124842820035817011454838665164957230334752996414392918873841455040137417076220412020015194211783495116226547208693650765448635335257992072437835472193443522521183240932897962075644233985529461349472303828903768914599671014306304428887746927257427648053590737540534831004315188225822616431647499605047973003961233637448442568300398984049564636157840695484156437032907850161166883578694571665632835245024723295301639623508392155115689492846295956576771243268389297034900635974389953366685190910875332290973751380085784268725744443390047035386088458796425073277302734144145652061707828507160331713799957817451166064254056937294416863328554984520724555534928412461241782481403613616941148507126187067178938847399742582813272845103082399078383129528073482589956293402205352012989271482449047669168550958749635899357108181142783472469610746243131372454063202335838982872263022595634226534208344090638318422970517604753075713114129066810630984720625773716003328130176105137736503211498132878146787218533194895282199601791919677089684253757896599594905889593367294183615600235420738701126971620959465610163813918344934191674043616670270733223494138244677761444543501597585570466124427104460703658168164127827414826710263044864292937361248486385380597679071985246220870545786842074828154517176010370170290395139810211002677423828851649082163997456916131459096678322350426223785589434213787478540274074164473507412714815937887739410280060379764837568455606097791484975927831243016041245453239778709556553667684524302909702583085494060421893074962733340913446775688057375484696240223938523610195811754321796323407359183328259691854243549743284147948201153102992618446380943569050682292749836604168519840535113125000683196682754876841919446972379395711379174428571979897804632489584254491689445825485630037392758857906396638817343937508512851460766278132734680997579844073203069060329703888783908650690060708356038973897235642125792228468641389831724244526284422963136298922402672477914457532801356729222537022070185329128916017501974694023900902172432739968757089952168307148581157717478228015745264192372093316419794952633921389747580566706547735354183748748747575897485061096840067982840481828683273560143022488200739827277649009868493287772399309987383357651802299108732252081509777849741026651480936132831609517531896826556302040537464341221176247679780050902219344786873721085593384787752597453462902010916056388940097097551974155351633356987287260335743532898572395084952329960555951977938326858211135002754716828473532298503742015037587637871659260231451707428140458000133118055817218032087070833421245325183757671133126405990115961820929819216000168077853921153458188194886256396319322160042888299760943760427391250676863973406324245880132509448763478583592815729870365830764774973486835989217468893573579870822985277407845226290009975849383436027598927967283719579815153746327081174551300022756553843798176843894313741980371508219154205942695243823952972128117544292016726875750748770587558721780644614097083785650335250387253517757469486452862475297829049270242074916049213010528294802436614675910540732183198549436125746896976790689476710591101294351108735132735333539249492454982018164513498742257525404179013509872301566004938110900698649675251019804852212195481889459133797790846196708030197432099548149296021697857258153689718256871251200978538419702285993993361445184416585866328261331742653961403254159214736094357656902173416020655144158656755462381482507664916384609689478795295338641766090939927569854004493302006473501713476689108265391784757058944439869526211500558213112462580268538996852403032513105053075641817698996799808673228257714668330492599179452281787632883973983769038113618032248770402071134761602955590699349031947217488208044576046255913900813386531608350586301078991594339945877346427687209235752168823690504022810243240421006237870080300757671766494317032881795243470872559991932966552641948595437020394529764449405277990763345289683155094130408547729009865110752290415771523038170858937062806164418122098260426229340119326598740789465036350642524436978643889184508917302255747670756643343810023904607453596429576373552232788604246165034390171855930944259481131218800062992353424559909240745329596040799155182245617915935297847614552809187703227627869739358156457668079590295343821760604325847664422997419673641143534238830283690612459009566297109147709984101092040480150487498775591670162047866508736887983359238600775287617457777859451392867184159175349674512398647619910371022673592713189520179484973089196071546906794032890224445043677927476611466961852751808095806480548409143989341331655281021911968603579117379870372525657076926443568849235891253511158783559174363015144579636795118538573539714817744459667505329754074731910732001310082208939604625597192864755350760796815127672967963511112985122264130977764623670062825545476637291645876149021475077323950646044441582490572600770085696418327366620942229243465544507087045964611848031178028669105267158054769147129183505407805630686399514607247746047339771398422191137187609898664944303274705249722695672391771457956224431853881058554828271248940924158878235193357758439922784641773414751824763240806196355593982294870339515328208487943357392571878835356177887010022372044205741604401704674068906748066019902554109837215297727650555104132598296267985005529611391594083759064078151453373408352970264195755709021977903537743200143640731410624388484279496962496499235088776055712608317734117294514443963793429895729488386315141490811934875253121664876106657729031688127056025353342292451328880359806680045120308860557214396368811841252484792306112794103472981598453714826083636423805848120579925443325133694113820358469039430399248711117652626761355971989462016774715800395407307621467289226210564502540374429704853956312342339757419619991472580001668472172140491376971832277354007247448838830352140753287577803217679864325848930076874198459064652677444877773117950230732502434357740817185723668082083032750041809499304208570554839345240121300289021603748896545273861011839234976684785032604633620582116608445720741827512095824098135251344909487747094636631475008577821697015236243636685897156400919836688906845333095273352197704226870108546846590891897649894668798741841598644060007925691464169479878005586445379668108462220571358045294272327600329862727747933592420658899114520947511071127356476680776052979173299641153467535211585464315193910613599325283573440475371893407754855514782101658578115374031474042619323175467623603016872773895104661464618016257681208728273819956174054077528955263805076858010605583103285887903590948160714814146079020299886046245304779923032241643031150156610594631241002890619915124476666500883366924932306971015336190513704813726745457079799256892581431202286748685378973383102163269918894601403760863105861487579630028961914574196399431120421311140974936525719086839889348486153047829589087797267082870393444815826819025380059362836391993538950029581202036598722545708760334794752875353155600717327980980053152060238331679883844809279494295092103238650510453350590778907516318107589047021899830819649625069259051401122427654829688017212806816588739028603456433782743109248082780064600921583465967541924874846434824652335193518610682182374454184905891200706340915521756621957086713971233737239791154841527660350497660659630990202200874628152290823060687889194767980617194262722065642759773545485515551366680984789825718751314021064615974850568356811041666924359567158249687307988399783417794114128659777663608884634327684618488754916231908194805800876567025085591677886620792533766029664037429824429582770136880572901026567504533748369611343926646186593789930120553823094635274763679810246427010444129709346291214687283001970987116917038477732342568773117953663639257476229706688291155053956805653061216611432391833940673188100325519548789282399549987174093059892190483755346197498005578778031516356843894761203799545572523183676722361611884648636135804105847540218219214500106529679425529793986254345836052927766095050379109833407044336250973484372425679704003611551712382200257542297113648457525268400979295306141916516421961732990570520376385811450112082848166893059509064816238516153248034656354029168567579180482550632073797795298022931706775291365239237398677015877894705385794554404503380952107698615747888764713688689263928226488111677384733574291513733132010337329730652788276512327621447748581504236048157160509156407988089875354817982129152545379540655413976153749143054924314493610501049182324238053944580391450199402528883381285165335335080776311923235688704882002798771891706437326608298394283612668954886451318308644687501505933890371540581663751352586851181756156381769140425443459746460331421816341889342418892391831700558871875489182690154647242586468611797003096254338350055207020702347147174786665954176312065384773639916467545823698309282050720759055391118474939121495926434834447062885054565679650454738151257404827190357629745469192200071230552607449394130860586797802137634175932306524262540735334751699898985845743197368164520751297160712731830028152247451872686135855466253129719602173352320077778296408744145763084041363309498909999746465992774033896383250325419491414478830102937292063925221144387371338875465232782567643472854005211643270655784285929199771450512260492811037928323649483285770779357023895506801416309452218626949907719753355759351984041721850578512053927501959300537357443995896043470628476022843278002582256058280288020988760549825328357023689077215930610430218186442390421110179460945499406597662557766382098262142778192365054611246404335895666142670903128886030502119117489918328835311452125984316854132055638568543477873427515601983639277773086746605431516942485806341572519197886362220063704374317307675003076920081961196835165273458895818881692433669607595969905780497663906889104139010692995203890438219201523397118273301618524450215815546649832259005225438472517644301104326316660586126698251520648013309869398669501070812297523495161934899549485842318535877669170990926101061507372948712169821244562719243918348317273609466332647344282964663026026728389148788825345777692151796805510895757053178785405776770991319921367497471693684959164392443760891062214369157262993247137170120838661596868084374372491079511716822362727079715487888852134071966648867388637480926539370091576611783099845116863726686863051705241035649208967265549930305866982293611951264697986178125230335696626268481165173755695184745412203101234263032944446576225528558728744420234986129610490302225388608473924788763563564726751184208835864523111219514485007688387740355137510456544182743401083022430383644063804159675684830017842600156415926617598230653141453722203568829104916428408158719609076669078448764347907682977273805555098057647278917421315404800448409216095463614975781402745705073768716569636543427499997598209243435680818881256640350625382996993834008020404420344444579688763342021996942075312944215041304017267679600860439041547773805623878222294169845954374157330319866901304264624716560665377683226118364227312869101581167490581375155792736033079150471080890047866944051934854242528674155905354080587493516166504350835367146694461216974642391502110313864505076435239706604709315703999145695650960908094854228559031615371430246858642240746908283706535482435782673135741688461668717939619284982866174749892055012145692137217307544090528465066997973530558170736515048058943030446869373820194626055135945232839899550510550985978050624074232984724442039091774587538807637145701341415885629907378247823424912665655930138291594339022696586953449440925939017155249881576536940343426800409290737445710785162977075204572568331567820736743156226312434384957297873384951133007886919924073740717445394344220017909280045172825716604844817786918598934794235445020286458256519863637453221920124245878978427158695364463999519104385256578593736221399061278514800818721382100572051152590106278701528346308215920050191497634458303220091403408502260172793369681364169489103390872547484283776317855317698659846241823117496826688128177810810450589276276784152356594717698324401240068694640101181164573788367400484271020501637623287358186094255773024330854095984950195977509086651491848230806031272886337611855022873082778464026056659349849776609392521515551095000229694752058695021329617677089594470172575372600640145914458959201947796868920232810444646362122271388995527327250107918281805322236313444974649469166185361627155296094148574510971516159367539824991702593189472246991839701555449540953630637522003084847512267954344059107909200693089317983052135617002405640081094217454602496807188922253588844818059408030286839397045651370087630224716427012293094881051305562101463592231224939959816740930675923433102733423195497024320712973034322339197168556295774300947910273363503344036587778964404635646010335299650176067405115676963636911831327832054939201161753193430638766444231817210199536029216975298899824704910640317377736782146244113321546146680220562611848946499526566851419928224549001749517353648857330689315824054915443351700372028964438081570968774549920947071682933087606891051828060179203597033819780987082618977313204233787504864338468428358959485855467206893989552648742465390220750508593023418330503675744166635947847526044614022383202788510115037972404082252543902871653055366711423473814524380572160268426235087177811130845476695720327172787529402002547513171090438006082724828067412300095403366412134753949388941529658473568161310774541723207164906221355954680840606423366074622049002891663189546628458862591854626414169372212371206698477875723501109328402055467317150644598336685151784190491608860398857163076208064040453135066987201210596678511366761481712417814928293550979609443248906094812877753325758371443703659511975814927194215590338513045992178268557964989090718312827623633057251343362650209416756701212429575974925489116650013364056743948389242944708859220765782136658476269236461011537227006435636064396010651404143105437793018918214370279639504626609616986809316090996072867257994979996699169277088685631604141238149724889063239726510856986338543151507739712548180772368477739534265549741740295495290788410012458657592534283730516279071542862075134103325532890393158970290466565757927286136639279867101365515595945000893877557557799492186438133223942544250182654973902870461333870897803569773157340014131333948919289603716415946500993811901876318306504498764287546824021822789247675003681366356179741298216485166174081444740759311286316867251350398839265468559928086015051122812225275797999954125754010903219407176232162215310097634617268653452203182363182440461611125444391784822916249075656671819388463583253211391345418722300556243302127886773475119853096859048580548045572513186610246172528613226208679904113443016395017523345943151196599838045580998497421241971716771467452597991920801281870492612758306203654363792718404719373529401307610691294147420780324746183014110927498340101370666879991314376055231618983242025873623972386449061265104351371019294472539308243978435485358470387156776814536502258618777384818866014987496958859501724483682863874610546625006047876075924264052691844501021352941948309523644802118739341481822440904736492390455275718779251202667500768686808570770036116226928329780919023003922086062358445158113121327613976060720209214064356759683070994957975768448010359713196434912130997508334979786396002240022348045916047623727997765535373009348153281534062561625714337316323577351093430250093884831440505574269139498172588958780330931119819200000433553082291581096033703370758886725213065467321284548808798812260756271255522394322691187896142842452224038312234831660943841222924428875805305301085243557281875771070386731475706609433080540619252623229331981406575415580228638655608254848314735383180409673482880790578431179707358732578011700591655338376519016883243053269634215363049686316675709423059915845749816637753694336789247703877159900235269237220444400107478139925400934223762120763448784881625159108351455048404634273444952881010923485376042491079194405762614971751142241391794524910193483245673162683815339586374099534057869776318265747423629504388211309353299577590625238321224154300085731335390993431885185658627690791254927030542026954566381491095390755210603318527644826718681358754704056964760124981928622022084524100880024286664459777178089795070987589371126877425674789690284627266399150758350554204754288318330361611484911885808406962570228879767545030860594616956911807602671341563350337384942420857993317669685059948848425168974468885854176347555155395089604749094473469530836111343676561075922377535973400938383774573216608271401761474822851168442223627757105756184667073679254551672091376727395107374036688648254103129491155532510216501406760291046889883641166206350011923806581898754299326698996295731730818896612985014102663715576420472670498874169003177221213461542430389351532079824983970736886477729687196418993924710689162121405329138764875763234827991721932120595330164533569643695271694029816324343863276180292108834812208867327487699421434340436045482713341545958402094421792224392248051140276913361662190763217177181855955142674020073164916352219451908779573400347356309338037313475068575262139942743968151816341466420027936777576260984974278698656251116637694265233734681834139751275591652439883066021583561667922997157037795132609144286407566117711418475969814834487701605176696643932441010516157476324110401800694321733490517850084718155602721300241377851583767694662068100023854989955057892879541929392324594619968469393232863059152084864461552181904259042016761223201831804977661343376904012365001657129627708731657447536279288747553431001636376015073144305841101182404411570207787475301490323756503620973743279872919981461926442838486307330930848920870301740829549458974775145790363105070430242783072103992309480861107638209865459158277999726198196523550383579303076056463970672489618663257046669278782217863805135690822282057449172563503858706283669152395649431455369689870869439754001486723267230125280831252693554589112720726086601923163244802042779177204250351206540996971955791993877456513069644513767146817283187220611911204783562116318003567033416141618833537444949977241284618086470608379814187090970364500515919381445711695110721038473553948484571924189342001318421176173170151452668505622990559753207507402202007933119456321117789364914024706451190004923078187677502960750250538247074189033820018375903351944916708988719835656407681147544469193655234003810051551249904518518281155743653687497121159090464580932107920185796147057614266453816611381756432433900043677558291424063837322008727946216390763330698936600258453400519594355854596894416605236714417305509131188495841653705108053237938183073105229683188466231960703716004859720148266820310981402043297747530810107548608493642987007339608421624458543143564598535598411415021401373794027924468397788552924936761644502467838786831312421756468423834771217196790545975023606478740938495223403280732161693348218971972879111027521777633317923237944210833132614065464347385061107268779258551100192660291769597826737502695360799780378696312807302408084195234888298186241207684957092289015414522774326136576200697689511644074844525074361855027382209089219892168317837725937086507375845123226006388476004892297223901476100031132153798383412872698275259478001172362935206734572714573715470425530941747709878565717825428932500670419821954393216523073300143713204139733931073380137926403444964944027054055119838024680469754486288474420817252428552946651646316379628256810686296315040117498201360295042366681585729512044879666830795715270138082615634379561008423380561756462971789241587404244627642653824604711248829455413829303888764550410969939700694910893571541418709548957580902545573400376441966059971746634957338674096326704869725118268633485443210425000842531145411479243074162853504982366030996407818851271147178087231702951723255963334236700162397464709980507549892854641528762292587711702326262926353178198439312334416995147176085682162240156850849270155548324200848731947552686620102626106273148810809261452090270810247519751422070775180770546710186325802074996171572433728676608181730469207268226297022976430294086237549779360062691763455145518108482738108040871476253676939675426156929240145352316770222416378861583298040040453820399583960889893321262671850256980943179320865518173025685062468307494208403839847690496994358268249766573425643652328215856046184211486216990130864242343484221611511633054605621981534433859161663765433853684837722814565679679893823620472708970622621401882371081034785801148258048180767537107227023166281513964926952398527310354495686511733116141321293362529479847237125810883447562002454362039303298342167707765073790129496531301155012104011887646846923640680316906111714437267460248739496822832373554365951668502500158590808686556982573872296281385107660802195182356765607534570411407763791438879994461650457437733028739954784958036693621660943705986366747081497331872233230904959756816974287589824448802415822495152411626454584582112010672436062106676031457497728191996774215376539813454936772874088059386463593765459630109022920656768851388313733639912736641375421171489736533773788813848499625131060232706558630815022582054149585360137541379139881461813767355722049173171086893311608597332167330869635297088752477973553649860009014105999841436291691988531553600731701397488304284932586008099256532598646778978317795444217461845767383740359549153259158108105157313931615796617179807168668120077834650250458448057349542178229675603860917905896805093070110878156735635785677396258239558666037411579315708262569480042727207857065181508219390817785324034230488678400143173791191759065995911355071365239581705742227756910369710618034019494788890493793172326621345201428073434839253634320533414387328636380780109679843668003993245939268684244648237019612624879363864265390853438932913121695298395793841786024172549630561255991211511485742061858757067235206276621885178038142875747287891204948336496846611545034857139653595105541537964224652237673306786476698916609525972978128118844778169584846616025821640594776403263161648543349755193356205147478979980893747526768386764866451879138785611560465277855619273819111803512597010918114939873616635781990528511993318416996315706775557387689240507067036630430510798918889706438200703324922585275619240909662847366574413107854575058051974702952311909869638289308316673784655499129152092897976541238593283165849075467305425212834552493156469888095095634694762133862798626235100090175500474882619317908630609690611661951665153909846224023918176022013015605587578557284629392633022120480080899754931270875779593386794940132869712049994674234241423937312020376794512211364338567865555218711283068718464056594948480264326467694211635210194956078721562867282668856909194989554084752764258447464690497265099258089784497264745233937255275089737284018459172414708254033075185457662155320437885290527111713680051610885219578292361485814439508138449983239885029889691399109866556453896418839646006700474516750577043728222132393988354298444472215622708062325772041351434852821825579547835150723444603392699680788570517900732415229303419446804164489871731026672254171913749858639888760713674898367552246180867143675644451961810176152207187650874587267678626324739195153905919103790397078292082841883497010215827632401888043700303127812043692089627127890809044338978359134939354200070021883398505985364468355976449396496677546588508617174852577261009274050941663928959206700192580197004308706026686689844622994787836568495930299101869160835925295433694303774401996487348678583191467059748846175530371221252889913634480925488585987108361285985801333662195279329238902835744077825234747064611776441349242068231118639088750552215729171087077433538205507439763643630524040862407508207255372343733249618231118417897316904631363639222019807755534598281424879103824256124550909171193341989591145922174583609489164707461965370917543364694933250702871261518161076193489157980758953053313832186688555650917401015682281378846277659637333882606789723278524360707041079563798047385292399805586170527606007367125522428544400852662245880105908902467233298414021630819508932244085265598052304762800394207570312647217702068326217138889383380434736324994597406710118292254834062212583034279727972967943168731828155610673278161414023485011554334602294632778235030763100379285406363228207510586204486587513748504206964583825512910117115992542330151464274317107456406992035799130427703771238429934346372030333401465775514285787899612169286756366092789055199691949820073867810780204957326050260410978216393135494745003204654664418833646430753153388882207710715290390375203198283678949639191321290506721137943603367989748574724091243117430829183189663499542853350516156582640410859186049205713624496209389956571325710464588303779560839810186232854514293307432420211214181964746493285874599864271598710207219056058406365306672372313825445955163494880560394532173798000862670456057959961830640438498355345334181865825105836259322505470167225975467879509988452291391228688953883351451987733851453437264013326586453787541182551121813275728109118725516933286620697489018596166584453489467969166273075411298177832355184254954052792461859150887592090602871242865992083038041340108349337933295758153292386614571604513773659450230117822227845768867881205330203994783414577163162469623064106312580059932106994731778604338769942166678551663787763328615954827269983306055446588115958757079573327853868707512023682167378798705310240771286270225612021664796761242760516909200633811903026461865421206132802724525298874385111524541413884435157983505770515063440805678108067217237609634309437821427442860466881395354170292990672962228348569780629745139448832690173678060370986337194463600322929068900359565973281264279270374756984457447887410011133369034296074877798503673805520005976213320123470114566877369424415387825198947332465918615960961457243647468134092631092256183838651502396581750251350412128928583906285472156961074574539540170154798858626964066692322361607693715449700793540612200993582164491934868949287430533575165166457739413099415205902644694102929107059575474915255648245290455639266054893260013886150503344233425272418083536609607704438819540071360299114652492434172028993584981692119100234543613823381723006755991420809372214356773577681948807378384047352588597550816839980638518658025715335973000207749096386742280159747482790838007541100319925668519316403169430777652333950675985648939806678864975201127936472603540378294415983614859810434787274607925876277273849578371144983839531904515932257564229057033518366965594260127461793529345376168836774051261992909644254743625493312022469977849719735045673836192080412440521174557892719573574296670832663785600360868234980039045459551788670166361879101314498093855942245682245029491080548961095852505584262618322636734317519781133926141896070229803942601549942152546804370915355984810324394422595673452708824867657863968879182696381444644670450246913536495078017986027683694100395106549335639986545932214947184397720942390569959443458532441432932230834759135439769525139438323812634755959251606878553486168602015432562750549359162908005962686218712624399410175878261479392534092987475479243548888110109657032902127394496843002309943652455499207192450756659612582847522976727053616948121675287547392999097839680078881812956190867070418469827691141807522708180143424193828456991354826320742048703060279864837586135423340826625468525648170273947622140890484406208521287599656062007778337400708637630478882122028569164908481188796897184678585225391024144372794455215251110600823850620710186090219687114557154904800954151554149248299612132576327311502969950794180229026238197756249584538016063865530279034953993633891092486750791201237891045710285795960953524769566312588041181126186216315957160830796924179691397013377400853051262973612308768598146951317287003150885433641767596337685098382863726135805278166556894238144286123383742104482759148727199714641751378120104552631132624754321197008953827359939147018024614495092353258613127927927688984087258393748327002710464263537418893581068057630066248497016937840904627528598787336586054475685663930288274380113047303066338238429979808386646089303845513300776272297642808257649570571109992420667536534240510052627761128083706681139796986488193308235958604226568743835815159338790358771521011806208521975346518227032058819928473135405190234344942701554490413062541835882878739608075115533140003492844138096937292284090473384340081134008198892953214609015819167167148912188615714632976193200815325535463564010580087567041155894879193624364305496376904292499534641339343106307004073941351993816927942393751982688341662851098779809860828708663199553612029244837618854160716504660781991364312194631576837080737141333597632108960189799048437014413078922065889884552686841960611361214357853882594238063491685460363586305526698968583995247258793844614773932410023325528319082872031905659001422614551138099384561375665359464404163491069660908938848830065136479481060432216175035211177802678267125198994565660177679295663038117722158638592557798404720422974177264685126643777835180561888084020130812723229694384657257401493854926675670092676960621030854638689165921925487032856583126379295830978215421845213274899089486329362578494326482752023635102022451655065168300749768172634070858763669925620759420139132561208391236191204773193215278453250013975955790586308716816411023874332475351151093567390161362295745733831872178204625042824078994154543474410651374598130708713969063635647541060560963286207146344115569313185543959501373584941056546253886943701653188692646446929409396875540985935680375987145528473244490156801146343002851982647937281942964127592502634325759851272981723101866972421318329058241201615207894719391295502391889466330117834156673458393291015068221332547406154874573613217556605511218371761227424734238747959589924325778346210518036677927776268976500795362212256629072585080888263061100078116074566703409804147320057878581130101858179589045053186150467104859650647221689198779045762149213662696610751315920604371878299357552982212982161035247860389165143145013689775687393232904013517174729974097336341799663398130306282496028169030222895298996903993032087804963210276128987382606103563970928883519331259136610734463865199302304339349676486227918017502772547657810720046242081442688070338592447759731018404663910905986423263928369700006486387419301838605402710537095597262017405026868886581182789880589586315084171306806579061567200094376060387915472126791730255960545069130155327485539111916899894043914369693479428504260256931692155234478911546314372964544339551728653650708326031019777334744295956874961243535834655021042079674335225280133364482284086950062160728876185610311420611901302997245269799845625761511901514358434781816849504298964695449780457293925033981774479334040928760098945487836654852685536865057118961111452905547831179541825217546843028081359526822839761029268014005257357079800904202905215713868802586426692573937123396088446277864633823270533439355216973133037387705643145612621052517416121292301481251272128246960744709304211034959585200584529395145873116449350359470925963787974313309882424514112613315509565527666598921503483265151998153171028815636338557091420641867624667909556248736364071459424412948913194367094787655683190450760789938756519945846067186078404299229022032054060924646725993197571191365759009040126682756984846708724724794368230281491488937342926510730321248959298377581480428248990274483369446047811215708119881800167450541832812799954617528719289511151033156119117674335987703020125815396223054016865454234304983178456427871378757959656450784809830872075406916265586478104632370824880488204045372665493173348244719626708335939510698028869421229990764078907133687062328343487587149847991422914240257985343337840545026839093620887477629584138550678873149744394235147030881928685296101912113697975700049691374153444906204633790457917998770755302085880709326599104073600833900643018791192737494778045770995935501373734797125533025869216936533834941220183833109118360637768148008701917972760572216408669894220076080643390334934429119372572470594215625571045181136638160279089957314447310901366189814037581672930717543176827054696666941316750203658136306054330614803270025360705221624636862005748551931949078949597218030047498671745679782021138834002516258973674561015596264833288838491543347834438701972980396317227308235545184165133958543017666319682868290853079103950162539658285848843250702488811493587601264360334362684663737944215464125816909341769429928902206261743789196187166213868142805562024466200649867086399392678523678867803789000839167438841544016697837160180880550356235017553056037264601936240981345528476653865765271369644792915175186039599463726967744859407898968916493479241340352155249582075687388758183300651678092399129165210625241317553783248028737278261962619021741633532524856971487525460021641367438744383266122530549253394279809979830412748044795924734979132865370844520743721710321630993330193204974670674486342117676313475241604346008370791587107394683197757861910479874611396000749033422366973806397809904682796484774190154183074632608352963291283509821749116359149431194887735237501296510283764343402580426630995089161785245265581467552510251864929204279253210220263090249047706522492331895950330569027031847929646041691562768168153736051820791251125540436691375614447066815371774092220041060139034571460567034150075838109959647454153308769627417320129186282317624574950157962449460792898709288166310877744388183843600857905651767582329789197008096561141575151029292242051560060336238270614418128482137776599559702206089106826241134043869186930755156393060428482396768631399663736442768714239750922166713358402707338774162216260767704711219957525947268430101041058235435741630642437868644683170770108837066323004907014163842693616641531962463965444809722742383880416756050261073918548867285136982469468698002210960299263924206831739714828876724195630150936916851681422581791107338551699379449041213931462515676692297486724855004523472097518151896730730110797187918560469409808861108055486581972341582824417122329902451388314596282349185425928813959435084336412366096341417608608093999534678168376353666288709768076233329154382357895982351258730330990520155222919635130521557583450942072475237607365587810390595310571451525703894343688850871646920069314986570738478669941864890958475358712785387439473051567607572876304743683480268996416394832385264229371108021427903444813873148025575090224078848858567088726574645480971639554535428370728351306433642811478901510243481638633540854398652584846206442978637641176064613396430080701574767772875100358317900113238996788415546200682766460844783859360137740038172169249791770047807772073582505519774887356397344626749335124536902765200033068431976032663648081249378261776532648337120842231242888109781523026550903613078453657607040784891423169698881467881646704481923329808064560952455021769230474238136242820196310228848814211789981292274519148233614432865092655914242196342238677197496207682564203857290946442550025685181674847439726421802968459721901745782110795719063618566847268993425533454781661764778279364584214470223521448978777710488784368186607636456599572408076414371345429242892126569992021295489499873215750358443500997676886145263886034739487929772144361657399075274664650313016673812815120581964470686222490988962959671055115757838446675902859196050372511393052522608033710615154510760081827669040680126329436799014636390345104403077933000476987739651483092043338130912571208319434730494536322490661718397988063770452150702968436114594026138770674535017055537101608230716333847651594560985300769530023266795062876172209099023393833289010709954528208442930995611728533629812902302385107095475132651666174254384276853452531837360942228131959277865529337746793321107249770318547379197160379258454901151954921581317040813689327173501103190509774547762982621060909532349183543654161106197691783166007679493789956746574598599976612004365883072874532263928207774580131997024069538316505846531852850580527339231210896922818213058440547312788270318654642957120088000522693605924033862720947466838374598293605037474988030906027581035940072944165032055650426154616349519348603143364526228508227195737949531469255871583972663456344774824778960213293361923828675146924696111647675880044958606137016151391731000652931174060412962467588120980899377683223123865328223322257623560652844111823151113262029833071684818034033709012170889280063269719436088262798459826183457501074470326557923850246712311430185046122069053021070976977331588445710690807189095380476526767494897840420938398987848816417904850309522572480238932464238175649408032603160686082813635117283042540954177646888939022582557363951611033749778593913846867908867139680307832165552987655342527544754367177236881552173890404799455325218402492916217209144801811393586592155029838650072643647188890543007421843746203191740303316083384206236238659882936015400436842466437514512367338129882186931428072845021865729276803914081680239178552796670625596436875244915000222833353047764901460189108678706517344081648052648513256136526428541549209057484991279778844405844244341511580884568683403933463655454527349634091558217178570145386248688252501979396496070648155701891439713039361770952021109014725755058015174696436268295389119792697717265468178383032229665388474395629153409489819527522332852997708976764808301929957058097109567761793274247813193564370987731492892659993591819563034484573712378382488318253447039461502701568122480597746116673841444067829849343907524347009682893006527365115731869437995253391407221703866923617509059311755557262576543869899063336401463053246807690659110883434093658042311402466652547875869787015276197469774548913380974674624222117336208561842049682185087410671351720807933003868555566479049183136574306596954983024105031175743654898468085373384130413219189018246702874422901298945295232477235418814050602985159892728518121790337280400615057012973924385314674980220081483190345459392152831472989220014981620639824798441521598948725553305336492816596979702209437029033915304828648445954991562446546837336740055516175970717002525781520259193760773695498491388176626367265282798167169954242717107554649520213498883262537144758487132446728036607220387056139922258905294263282583474936633621925555732485479990043800482592701690776540216740424262717150589247751190207407014418109010088656673280766662468386737405343268380573822276828673012387183478088906910711632976714792210877374067667780804470874343809736817471546947849501848582529917931791895645779868976987456213225504701806042937131059047785940531070204611015762725912911041325856493498556633879570402551097398983266229979615531207537136623012990053970924079949171115101545114574684531559991508190535039833391466359132379011609789643342026590915261359814865850832325207356504972786244545275656538788100254154590109487939350387754994567001946295798485267087853554357920889010004199465289355071931980632495522243370604703845274184457045052994379625978662734221737058784588739417712937443058972195256520723178160960464504662290477081963367275252868422179556371905922433770858552470269785873205310605698699236490739639955353009002120130663571510731042630029747321734728080062330925448609635894681920069040169835256212494568252235951007323276013198628202404505448427975855223003649980692254740950581399389173595196084428932559110679033551358863546981333274985771557523272112776666642959642280934543652028299101033990749734746172271522172336578122066648945386882534558155157033310100440656993079212560662229536091383373583185915024103391860527411541372171512767263519514289691356532405317623835494203912968451415954278209847463268235079832830941416063400518201958374413697752012351945042034116364987786347306570011738747295720133980485805790947614704871209822125703000474028196445153194032246468138697290490669695184073957538860885971322058668087328632888475096386543028931531825896594097922633270323189870534799622926692007370407726930529078316204275006011151537552805183584634939652408549142435022363690269708970111703062749509294084745967033905123944062268314997025194923526822368202170716207702102970655870855316837023678920027007435828121739623607391222861692506966929310632685902227378516420709040627562093456160987903225914118915292719449056860434841496262744329653362549027271066051548285964734396278450578942294975225373063350540617849671451070238790605070891971165881704993344961938037770209541774654570218020618522827129685693047428023595118260202677744006267331578563699178769499587304150947799712497543627800309315440101168144614238825769366098390801672312420862045865784108635178698606466328611746238707328626537584174681083624362446754469984238073396234143405989514532282128296463527128113031788042257083732650956811087041417234288377359500524045022316887715714101302725872381859010084265055856063453381993440171632184413757515256759082652414557586796384081886984856638770343547689280527575840313204063680349052073051404942460072506790120208365873144421769852303774592516680351305698970935282855870129116702471005317078639200497705766912900354153026608702008847556556902046911429029019226990707669929265759048204143323284854575134673974995577133477057409463572665566845946613375524516674976796401576670615017744880402595607895000826883840463114607374954264079941862992113307946614121336205922473713109353754495023253081819031618621143041807728207280263563092092337787047499579637984366267901019639678310578387233554200535748643144255704694319685489925076807324139478966863417011101516976636991289239310712597075778332088576045893630962607473967011530688981261951918405858497138694113717258959113739246991242066223484534492759299850025035378939435564481176997712959019023429862199534172170999211017944411412292330260975519830097627013723808126154039352619379802095692112531914351968506855732947632529767208176174976932758862150300653295879909894796250859078936636823429557194632349322099182193805383450494629140047232390728881954214148725293963591761191873131159943227222243014213039206120943906215658972451853786293528902072605190040999837539869787304464934575118097534127599489703427663608879898258731502443904039829499895704956350837245752092818048284147406647072707831466295608232894570312610583604225401449265156491049212146560727534773705998452817947908058149133101107315266112442968317660855634246158154665011553825555037026116813285945876861034934629282862230119996763444858311009873981359871262527538774259373012260739857734038222561168400124905557498515926645748854743746455208405223849002663789715605135904780769659316350216192249166817807369942751395202474138077762293227595115546870881441746124693836794227148974081630862196408065636885056272010557821336346741072478435501553754533073722741504283710870297281432876856520529970232669057529385443323448872426758322106264178857677286853768839801306353794554372535402670060228977387206216906421460152126217248316468206510828276380298170465549299531491432858432518773710164147021835856595744081565405443436427263908401458201517253024977534435596101987310823153092548649012868927196348990789356752178192016136859473391455376859065723165324848729704992207840411620793180180696187350786922136125634594822637969697530709128456323697055389081735630853913291344562510985014361771499926481295477814299244996411920754598797862242294434477761100282713624396496568049973531023572590090651221425256281470880520172369764377429955600232039377423884580074033229303363889770999434841670892927431397756295144257446301980263979587939314646291283765074966353372529110237148190581040507640302621745200092723209188004504182960108010903748213257328618543065387850173327848296656778802223352255912077947246669118737249937997078062693128519094009032814974959983364578983602894790332462631150682056700106047238575017258004972838447932986746615895280809422624584000493250670717446941131422636824399983765939989800326086083676693349172898606952996462531188095057908485540291123066757439713048503081361919492755771399054051689391144000014132406933136745790795018668486099761857608438575265293030877309574126727357333951743669645095740729120191340233455865230749451249214436156714676059382316906981828109523127071074911683063219761311754121961530791020920591029287859149387968979800377173190631157012532900288375701913241053100356690968103031610290753388844186717508148200454083365707966389637526478592724368686618115904586409865159133844453739569929252751779325444969138890766820145977988484586095224857742794667145601161334206952437726666412733721300091074432100407104260517771343511473461714324933988809976236824137134329091137539571439889589175577728958132902363128796366672335585201826258029847840720687118923638573077756611723954715190678445664891349398542557147413484375077000330038064993305593384106512545994851406523817317459958272827381412646511142573845513899293035976872605943084054927636282759605277898983342010433379708984820896869177854846569807204856483893756922127721676867391338114082561367670553545540074821379227194604239737377920727488517745413341063789391602937636254559191074055611820518411932669202928606154347780898959465097627127462678459437848464669158016119400929267354752494180930889296902537882998718389229720901753296345656845803782188458438445486176494936661580969824527525688105393845805587762638635435014369304752440622280841921500424041627597296082555737897004171759433804359815465112743863855505070496223031132858613951261835397709974563551495956982772440541816042620797714475545693473528228395228237234495865113651722167898090522985855041674924856485718169871500984648448844296282451281670707373342394556938991907530478020383088161117280388426854607667875818921199854677066367874807854296330501014935955425113819647090904822643073406217326241219591222721301772409244082728361994150721800403252939805047217370399137419508354092173797633389858028420796534931275547014211791852093562932408757630795303609803312205389329512493900546083449459580768133427554099986880675378670678277774270844996874272856302402166529319788720684028498053655742932469782264103605907669080166772883194773583209973423694454501016292060591377135651727332660055357315479872226742304928052953085056968535808955338725628839447140893511181768394337278456563202991666411273046819021827686411030508890393714875970401265724724359656527163866917492028014068897213067687707630428266961508720914411505275237550413708417094406945180034631205551449874243078344117164181592930055522775334676230982381072573098205583824432913115500990844779801571362641693989587138538617774046821742329576040077662073569744090235372588715238935015314317494042767327532279547087781695809561038588461795167846411481720506166665685522064388660190388991019220489425756941130981096684767177612961215180655653086696821322045937999616980673182398439124629659295479732788971616519845923811612389878717981274825824380865755638669425547718613470939742944695720348560967642877385828157160283722028405240784276995455874039991701293968977777499707476252934831828506400328891757529898677962003197028636861580484673657877290214204459043360302710010604400236665693848266141701185480675073595816792848226106218522919286987321654117642475831718715877258976586699332832226254196484114301721618611105872387941474099522600385081710144190927303239492779983163473665424448418689610040008217333165047201654570855265043667596874581302679357295989414225398130349151669022784704008457263149227727043482523390837446492531236826850540483316896130740042973858572978553261366454081264320644898320926522862371923595844757123705004486363773781898486484053842592625713130323968333203251707447541750613179192523369240926131362178324685962839587910159331921155464145515091868193267424605402681655882841775295676865581746835065936094237391662321981716798376886881758685357334447354626737759879154169701006693554742309703372993062284223836527471364844083213675383018359144719435969821966988430711245490875929673933446789538700536200198746473754785791621616535561163491264430265010745887812663412776095508980881835213807062513625406833354285528129758461084508199012042017372253566415166111551911061194204194400435286516717856628308507401684759790762444972489177181012695559791935724576357029470085741363140018455325505635929624046351436960989528599463694050372993141213122406963413432977206024144612421185293940130831380297885011868971931478953376583017073926269936179863400652518426253585250160547175641046208229351911964895899412290441455738824247547019708090626863163894445758604184112432084159887684592831365020441736953225502212703852014415417743114137657082189899037335488372547502799927131628684000112550762814382947172380406431073542624972930822388906847955427561552112965266289650325588450912889534418215551186375408289318379231193763354845914342344993003680081671883932257430068431272145283550754528669032486631828721373263160012519182780404393529314643614747157328103702238226967264916770212928960551371789474696334732980685218713733977820930369897993364307507362309431503389517368741716315575898468614889092190174507742806044324645527140562868970434135647941782448244394216558406485476786756468362120366694871369606086981818613996718986396046889090272959626139240612259896392197681336079990561099974735990401122634406511080768852961317982499153576060863015130817764336963398916097143566151341185345706227248924851081971179099791145701676617639539676925900869849300635267150313721364881308654803766794813800763001436549143824964629885508115206094985288603867770183943219115291944776793136004860337897464774093430035519658107366152450871821238187704036698462525980308888007871061017988781409513775585879169079901761771148888126566938653664508847672434268175263660574533677816748571966104004833207122454455148944677729847394586734756294219289208097772120690303844458200136468487886839499570840613960387872798526467395377051813591576800192255181162946104375449890147455708843864752110979826722858275324748445086556923207859599136976616275203524455948913727098916317413544631551008104657384297544249482151519347870552590089541963603882921754658050454096917024479976018050867778919502867301526067034284615425890777342964920739920284742917993054931591135943559899323001036249062640114633195996231711040009592598760594639832313452947907842232484472318962690709629087150701295984740777895296976219365868691951566267349942294019200881657893954008259421056301767055056642924168217419169739121931588679501355136783334767395614029104909753320157723864131395890092329713248438254415122887703630194241607019928927789413574946661329835273609343546297990931829464729025382235340384396441327282653559353146665884893939355214720020601497818145077178908292598843981666092346538803009756295282565593850890377757098589466594158706417087747302095033803050185845912200912721674143398197291243471126086394476304359826595205607125842098837495662598443024620533417364711522664038034644686674558491803422635293909244407173408931460534568868300185287863406544346986228865814660232850636471136816820189889282424324194966440015115834430508257083037298563063661200727427788548648962324501456733316505304405996962215926765350767938190326416486305045733295439932037647709141577815101229249571746881826290470884375002705905644499987480313511810392213936935570607871815423466021622732988813277137980483110684683927984761284720306699864077189645575932327863419808420905366007158606361956235292234453805668098336741994315053967217471453804700999903686142090284128487519205564529357628842288591132012958034155417472055724824048645707928709597738458314151432701920596893985501553315180297036630188438908957801670522239765749928240738082922891073148029210736445576004756917551345570546675399857012434044711436323049016456682881315380260775010890534825904403048866036391341258053650763164944396130152374243578057853786481341576264097676494800920494685375009394392660452616721315878617157424537120338362554902732442480773883235132487786091046738313460043110598017085106110869075709688304789605791729119956402009183063050432825130487353705580919183481945323894052635922187157586728587725457936607752274164575177725046341060092625734337557281099210669372367740826439102242028918448318303297840426289097922831776919606114950719053268297477918026127573765650154458635227331191425311711856733091964768470927810146633751395724522686118369304176933191828538159913533319731371832903589956761801642484201492042766774740777566629293742530415568917138658090115624863310173278666977658961802349764204539927684221098697000282900920496965917693886071638536742582612907242152917912475740977657773165330447592936475549714027987058703093644034306122214059360090606426990579587585288449937021124215192359377717016862696795011146785135372482157544430668933498319786189298240198981531476942794884400965063978079773139209148663285783579358917377258434339629960606952663193886397270101619295358602625607522458361157506097744894746169406177686974340860152509537612147415531502546329624557108564975593630692042023819409078754407307588686857524217001452263888082611439014274736735921715992309373467744988623142771552765987948157370040510026300864212512503489915045897217565648321332066397518222589535448329480150933421682049864600004874288808049628440480139980987873704226867811253981031466403197129519182160879050908262111513391939999290136257733134037076743490706627430107820025401294356041094015968234623898771684690740882646068781303402477905067907970109468550621293961417040610284825060650723437037951347609412588165959641449444440413141225695073212930824442259082819256846035832466847835457032777906759375642359246011962027159271284773997917343602386166700319245182528276241093689884216614961172584474195720366548334066048108500642872938608348293446983149398099368706323805834047043809062808308019471121606366878421529151312997462129082577672943111073167514964170021740987178052997904797156789798648109767660043496872772034074010139213960543612044875213589720333068093063252860670571731002276045581381697224216323143388445497411132988907018872069850641544976388915453101178850750128441322411699541002522322828250931322118898442914371268806796008028182395545495739201084981787919271905286223909696682270487760309603660119307194433348175825166762872883619327210432664376147025531743534260770087722662710508580297938558062354495583440994492527134438728981515029515873895175104674649540200669168802192992358969980972887318232336227952043341824105371029162739886136342121193380074554842104019604051243662133044082136381435216361392804577435001406001251887814681946666156976146853363208619091412265671034517245234868801099151952642698824682951230961325568069656135924962985104047224503261430938900600070821239053632213718987707419229283663435915027223958382919176718094837285332853682307974804784318461083634239733341088032928716400253253434173079107931675984487553543685694796230815285834023385099035129211543474643680569833660377493276511860113128056348801666729906059183018780216143208192831570325311167179275608647249294543969680361151231429295461402451573184422639442835946655834395175629437561467756257993005605306994422559617188128153403872932313956406570575970459897018311282662129763701806301625682238959804849413026405769822063466320532340265142700269352488678253085016414069445543962145944786957841339149841658064455280543303598018472416495124804138392175539891045344738320826204478069395301323791175451082805855989630391130407640767759660483265212664120153664934846709279013387186409090242232622950618995801606925094274933662429369131521650858269354706421744781051741891994613840801133849486256282965396372010900470380970520832358718106078185339910465157097529450180438691639525318884730928934200947476348973565164163917598228808301457738144001656810394403895433989370714319305361623549296925036713275194942796268165908955432509811957179830438955498392820427333807306013922294507873446783948907920140498192474980908058802589670700246386206150654076064712070438284989257428977821676776377589965459400444812916474614155875427834116065264877366234743333433512981191696384678654257452344037609228321201508126463417591605670209109756880662541933121055493108384992903020705538245419560433849382130570979502454157831984359948409399060849276028616103762329944113597205820552428792541698738287881949048757671859845694238306944895663872843302366309868062476411631346878109537807026087439925067685596235669594808563296971172897011666222277939612955406157062135761539986275582364829258787727976411790378310845514169969523047793579664300497106362959397257463603019764487411426385934886381151747872618140995881171134065243592429803597850137886553610315632105789951734285885827533978336719312776482884033114251002457866674700066060432249122482502224142827235883388343644796062135748739731997768664786654714800788224076873355877921613472499123860226552655123453042352595989831724622519908453496160424909419158787420206796418045175536417202927729653915369401084628731418310896414429849018695960546379747894781061058107217958218741678103929324042436997412514532874476885742938983785641000464791883214782077294315619615116513115847956689356534344220521333694004910049204511573025045283067044920295191905180854669478662046469575129157241899952857347441503883362108264316902340580653336168626371996662992321087901737643551369213972286925087904675130013775489612523932167266273618143837603990818781297858697128993186170913066707995154315496822231631788717257399850468389005189097329401470066865623410474931652738849457120426292211062786163784096880836044254765221813888828574775632415199796997005108062727087652656847432250857061053581246396579806164553915356601226799496356266769474094766405720281081663497896266125831734357801414078214382271866813025924270309915888361497042761312944828185948914843043127883290165922746464220155905736592254815312782734996758328945799268162672855595714603403809761147078569519203741182330208417175616647035426171422212686248852638990957288338040575077765069055551875790665380209660494670167466342761770198903633029842834473951942010613287296438980068057715119971778713747534513610200900517630570817408320256038684525612070770339073337494735814041878492263945675788491653952774537131142265582895936237069737056300195072905666275826525969564352414233147241028040213971683193954961541690126498368365925129753419465132354608317244224083665640424191119873667697079294716296449182203860052271620910510619144988084996009356536278749271527521638717758752899714243454450039245295781346882894679050799014499059995438401003787783222850023594673692819065526091943768143686605853977579911981083987786472953408822226722692710870354106763474807159715597476462280215613761609172647429671501477573409332014182187825554481165981471368006874052745834426761862786866651402871118273895329176783393753329392029322756174573433990732573992872681916764966084675835304655387293330697881628250634296608556844941821671909022006652360282948952602901199879315642157828758858294099934600289545900518430658691833030136604364891424730249473209907840781964572994768435718479258880150496205862043625231771102145357621947088349915167629120797731989121145427585415881680184562350081337074338418490017743066814777438150962788844105186753013173828353526363633383878687440622216630477309348477728144794906424837269211293113764139012185250754533031505697147718301315151067092550414644501318011948867858105422466346854459203311824408372035207259718423485946900288859710083846537467937145294461890937528406838688166304477007883429519962616149708269712175114477012354118688284178529182865686620278866369587603521606708393649868296452925062156367312594806879154733634784687372000671150417614893867348213770759318547965293241819466254756041191432154299284280580561128289882348942910731510690202630554485624922864956692572585425735591912456924567604006701643384648103499930958210231565108583721460504783225547113223912643601093668371059958705116804153611290975514139130079306467565332189502136252479137447376239177642907822800458353813961666534440699307181994351468087598991225733498485698891249306820894267496157724776897329058849638671204525139276127191643639000329628702830944283011268852486027100166828985343714352082991543984340699115460768621367095268837307272023827905858460799297545570547095199635801419006580650882222274639443548061597014211919479682489508880543946135479664002536647060718551796607651149761783612716591133159525617161900214952235473567858996201615815405093759142660713323736338857484598764089791506800571408193716015209724619708085733911178673441910241778201512350194465520398739953305482712321522831538032422773542930767345200964680018284878373736012892921433277907640497933112210726187762018822438258183148075751860899421985857572057342852723852543926692319991455371406904376008378717982570178588384088262824679784510072784476789064568675454448426054631889142597826468021758585500724251106825647918645381014855252396661592066767157929076317138943885099866497131209792741110713662924169297461781453395481626052628161585593563053767436335018111752577818015068808100276229544911230717406413838361481328503139360688855858945811558583035155182832764364934669258069771549885876001400155411109309532744138811354207337240791388508264784448733931175439859801044219928021228858977923247370410109718695421214853149259157292078418681327771311122733555454793692703612783116163430329027750219644312894854697230968518855519541242386831094724755225524624673690626000897807035820394197537335225095850068559925451321196162883575294260736187029341442325823176085676301336923053658161950584260414694371524282001705119251006324798801065014565499975098416445029651621657122265297213047665696911168486547445120128223181538387491292444160174582133304024591916666589128704540569949357244069871781312772642106657476477689178372267951810968090747984368272933606726697586541030842359579839905405766153133869063939056738974208482984903496504096351782920844851784801474255763301148395568387311875368566687916628481159947649282483293419927176579670415176682497607151109538878161661993351921308835707927254086475923456423861517740861622479887165067236094753783667414690405552083994638840728704374254111379803541256388790108762725247850275420136746046661912721252759805260627623062763116253636218570593226973167315220072232155925886505798190058840294854193581681530569861098222634671816582162896257892097670903198179678040899005747512042154709206663106604648392536857577371698766660546183724880946170660708607166746319782264059335297025054415434983172689524873171133063851593257046393321756235297258244686567325406552104346885305135076568457111458535886226251586734928159787657550980415313584394855929564854375340758801197775769423912064168927397086573512059798829679482153978394209483719317382736044752912875460817772806799036134970110372066092276608733080355667270181861980032953482158527162426166035112009574287668361666253441124545174907711949056505703559508457245825023811533878381430606336200178452802981031501464211639415527883387965326727420835212079524730276011503621482702769735772314777445986417450007602194298589761371779926846841156301661440345116765220548080420114041715400457329144588272256680854578199803062895233877486736463440936082712795277934049570147201507347330997670089082206502381261577079032429288546084124167087468511144822689284245104523966640311991412633033144462632219845974987874535224715926475077385910659030948539637366997083234968499319867951699488604104473208799501927803339264551694324289237566780402197318570739004437700292713000940855274912406681290510199301010043486260219235433772839204332792481814967677960632879839408718013808821399388983604725599973960021590255689375795525605551287628021596743605448952329984486909898805441593132651300267470499052085121081102325524318045453491342399604600985376296786170376028733812404051346957710098757571540995013617698001915908353123914416784746563470164135825902190159116147574713687033873135221972434006167917600638435941680394365479744790264372102215927222502535359522164492999104416731796991613214144867602733077339185379673383850188694319926313311938093403125942459954822156502318371025153230998324825232295817397226028800721555681644781673556304619896026481354664183023381857435818812004887385546729316493793724311605416270267519889215808494345993595739311833390337193537271665356730407168275049527888393641717361366763755472659927606025538603986662864571267482663477799639901652572390328708789017842496286802447365586100170099705218878509335445178446793320132050407396382197837154039002777800485293518008461858051940080544116401373628008610139422843825293064687006583795921077804340266308755654031462554105412509720095502968127814185850195153408879777712585732609764277216341372303801751585933639823805058304558008846946350263777960579465093534952897484410401867361459494392142033126298745087842763533146197162380740360670851351252738876210239642279023985609103441150851694579370725837270887438123546724798000490215077740849939362215560750928497230022102636337016416006729960405869045325799844547770795610841606602941472065709290050967838585353276930332564310940069423909144885422369618838756250402334498636767452384868116093027368040668564630965500632170589140964791398338676485463627077011629410567299882157851456808654541963414317970983360271993529989956408567934721058730339962547457951679351594618053989438462597916181253183834699459791614278104889034846775712136250790326621785582229242195415258465566695685598317638884886631755255884602629150617180950607529114085506120594604999137079167825544118164905993813589661119234150416299382183206758350756171021136139628594296990737993526744592287322819425686500443043053498923203736060611171946883258846612130750105239331164526060564478547394949152284536677562089491586048312309569421997902344815124171885395057455097476299727619115093339414973281536468905314305228219018770945377171095206168680635513244929145571860257133170354911738622751454461599949388227211827834525998307271486197218289096727667330996465621716172474550382360565902339533909657528048053442366941144902852263193558295843294487867145392644820111399735812122016902427495115834409727511972310582338769618626686671012392846762859160343378842614069467823534396877255398070356788245339344094317693481673963986786578871636364108661038870879642758074236014814834581719691827952517471277711773225541911865237818522702261436012230463548015442121457019832508791853544384349979800461687457423807121431785482800551105025316757557655977967705478855610871534642893526702312384724791525157181252811621336004907492498981306650997451946778267047204332574822996246402162427369033778604102643326317567781224337390816028285406948315574758315496952349291642405380962377020105958493997073429321057327343604042545770507486941521855167594912252037181712525686924791984118120114046641624324726358276080733407578307215089321452487007141029456348261666642164960384797249662098892355273344634671709858581480685734043023849299843904116778483824012049563241643434879743957541318618950608608655443770873899931183584432756005225330758368671507306139139252106619140991680795564744281306718990959218467342131791854527273492266787905544374267183601177148995595534887322258383244981681697003493320789428458930457890545042389380983437506413404742697693269257027933949054832096222682320283754353934310331739330699965322304964894401679793632743340972870920297003754228546464065647563856554394899871146494172067769020788113361037103166935010712970548017724932773036896928450442767271296705116870717354467541243716986524345282390334046312142975928624309170258790396320596823461386109984514556318643642755341792976321791758725459167827203613767536758060935553284209518703691855603024449676846715489496121947124818389896267521293482848287155518376332017873733831175319367353366919572881633496886664133758254010765411793656862119574988495733813426539076700582902129889531488635541585126946919486159994362432821426928332809622205885471183732334857364294312111322534080420936626507959302293837014744767579338191480554328378640940123630197774517321571141426774051032204057669836303628718728668766725370202741706661150988227434057626480356861559081713809641661186111892275604605785303967347296738644129735050834313063947067620693716241149245152461595438800658023845143959603182012050729526085789069487424962202472063945986132831565468557153365508350846169361145709925689583426116789722239252382558318484139576388150520729609608541269947698276374234982543190122574229274433289171777663069197437900402792235536251219768420625652042416866290154202085161738317131358546791421799977948993362116540796768605777047349304200070815896848071033867075968846791710824795317253104289559573054920071920540869006978699150063919155330940579469917188074389240562884951323889198599262580849394154562905275672294278357737223294950608110350032346808955557952192536430522218140447264876299170014232885613646962838450487211155020588198018660478303869415887137946343253843955282701846693094745897988258259911912700407543272388440708938469275018812306905893626966416524285410193222128494338051609792940758338518073585618750017653293827944153413664725713791533997915258452809056951037222492567499244634521221890286510619229375169389194325600489618110628838061494384525186601313452061991763890180628361362184281086480526428821570258196778652116463804861784989206762632390582701474823262837148802962726849320031181027750265452152553886380784073446804828623998581631818537275478331788048871543819628741397395324768918866990275224991533378103643992835787517062040602739960023740046608479649212223118470857659115101384477409491943838227380985780739312351132667025534302991931697288177461293588544036446465444705191848333338491251663670144684771757087788051849436351713741544750798089435873567377578714765817762633775194425289131888592071541786669469026348541524349217706326491387932076294120199291509932024272117687445394442457794664569103311229564919739089397441419291658817034247390672503853568838682272932626463383384628278921334416293369565392103651523056066905625027037631569328685233709263187896081342136403287536769787101875086891117544735898438579962433363818858043686782463580778754152379248548762708610546491123238940368603803063064831113829632941060588598938266871770741291273030401372048707129317073813975547675064459764407650435573807778930422453195384795287302073765291903826004621720902036381192618626775712315607926579626962966281128585403802644321324403720726046241652024800399758103418660568177724060211761922878196928651065055816538991112768880849986352726705367186207942208396326437532440913227728772125427213431349630484651828821957749195394375653097360127172182939903226538634234655630746595277853851982278919294768592009138138038554375808557932911441967323957490341273033199580360346028890863822656692064955369127461239105529916076300462337347653418894795009263497374849864556078085799178551949329368475107410574071049457081403010687715444535907894943608320735554828138222193173257213822015048303807089493539855862715414490285897121520220442510492771350489227082891202736762835044179755072863318370587142733854480782166911790109488337456832245255392727152740585626483725051607301922287300684131962782465306878147724370540495149930816335003449366074369349201890694803187215301958188387277999467663918512730820228119375034419926153590908974998725739685563738952543006986115650284450422052748876087772480741815764019541327930517450810521384261797901210471475277202075490947209449984873695049234735055832289120395271857194822433360107043468754639230465126279867939633808433912388040999323597032560526277228274749101395037117956215356131814628864630641444034540926200520903647981148491387419306320127630065817907789391373252169830214184726374892563378060606040914886050737747269323020570743056984543002292617653717162941898533357204455266553157324657786747664509068546413583931352448960386213641326402591639752711631754660730211577702711754327387128717169162070968671849253291907084644726110980104169590404778272453501417671907361854300720547088673106574706725813770174129894573424601091971469453926899781290139043234232824903461572889173343401034197374819554053513758460435200853944344591246370225693575312926721879457104085901946631955023623660950449149432338037551095821710539974264640034970871456085818504708661059713606961847978384228516017569584781626933138916972008728967506668349461588080949624519092079244127733300672212570483862694867632030387258834767596422124742532447347472887959281593119654202838500619495272045996935281949714471306283507389234576958845370896071851195143365624557878682334449279663101052746593296490127023257918133217917178149091694427158200812425907724742525765590924175502407792547866378886465773857247062463027914231920783134284527976820264923422868194581536736681633776089121361088225361574863258259645885919049944472212056401639922678282618129779508298465753950159512956058499630072491821155083313002272290129766426637063666205190524920071818230763738349623632086669249588663891166774564142209007609052515108191008725698910134393697487059588186152208707050829731983195219631929894003267691526652313127182183416730284658599012295609473623405547716309668783533954333510805024025466088291188001213783541825271721219404545008692857990061469969440788995359879240549389402425852735507401454334742297451226285719119878334114915879794887546362461924622716401629088813537070963748164659353383714715617673067265992626675192655409120212364891671481695994477021824205142669378644481636706600319950393386289835465650916256836781292617525594570625359941573577335261854371249351321967688862668332231447852825297825178029157711979902433836770240613076883751646097101775004644604854226235131414016391983264065781357022200220674148995345414909431084533589523766378143047868062652982031317490781607158129076603838673119393892527321056354462029290817812795904425440714778877241618742658103914016805439112838333737432723363363319044878476907911511703184007644378360510249371758080092453997193561001665482324241988594626029683908304447403089385345677427065254694861750184695513201387448726172946671835063712836161148571176522669182170090433184034684461788185290777535661714967475428983082048169252862879957374563974302204493389085650903302295393296104934805167859030779151651172972386768715558747314111762573835080653581636646036147851277052549152368785798510860127232718153729230127687120624998736719318728640507581245695095576256993054061211926216474027258112415454677471363888671651087988173425890833306319095333723902019305436634568942336668762172438379949527736329472384063094814773871365953723378231759011518203594790968140634959095505621845665838901522083026307070460564160233833843807430842105446147178732436639289565110116298796056703709423535151932437063340661219031259962521147503513932189651338293023669077437648534715657436928280096824009996313491893205308367250609930671982060768698057858087569671060668587738956023100859388934228140444829664189850663887237739009694364319134670064947183218313184013355772790087186430849815246785736382930690893523969507303662614988349316605597801342840345491310248657404282510062634688975257324076802467643256897107857039654863918633167788759705031816738780805268387748151412855022258827181144757114976880193854318392173218330419463516641376530390444794631580233013956084653984406356147728972050290951360793864756004350862129393561123326494769382758032522190608794682127562414889141745083675527828855545403521676093806128100009871895580638450085440426072720891928956800017232370445469071385148610690386356176510042733503293511284547014337383501274081143717425464428495500342735843973566653222103197546446959860842377115820096252808494140503077671262117138323975517655921053383356895821013277188854356089703121692627695896690545115671368285777478840951703254423388338469772279511957012726374433819026265479805836420412323125334811258607348867326572669753024267809200193125853753826005110960383866406863355058182061521101503532528160920697240529542783284820370503116586222601761385031116101527882757954648723870122092205653397033044940685837666431416137740978504920405873987038092538878917433162231689619122042627887622800104833800398174837276659842046929241238702683087773351225842522755945222852693112278633793490200240016473800748988708319391509853494772020238334440336764961330871175028502924705690103973487873401432770304092922168883123501391887488870321541880574859031117182882746595911346066676441932513057255374273249240914225537270935962008723629463392385379590676401432868523817243045885626195084293915087889800324633923877379444276839326725939893060516707103553381782434126789669392126291942623580024603294072415336982038507279656843076448726769211038850052481381982246330366829209209229753449202819374849971089605407927430590558420630047048101082173922597496104960341413609365185605007872061277814601774862572525603465045431162818122086328193977891809777242679978789189780589376292968633368265628360650661753526270634308628151226254590058419411720827251723955764860410250398280924924480036994317119715708316514610026592267365539609705413289772248372648115116891330677147223949442386728468810701146304648813650127338408647947442936035012139349242716376037627096855725931846640438344054424701574229529714810318337390904002715501580481226160784460519404055907064853533272113986555663834572387684376005490962954869661603936272212142034028370792434058447277099620513309190683886769949747462509595869368234278057951598897327187768421014774297887433427342526279875994582560486156936351473630062431884365071055821745762817354048411873788284826239287045116978457598739273358510036882728479978203568500102671636632311592677358752601953187200794174417955047538920906121777612459582696008070655495568204915376826209842544881189524383422804705488295254657536033043966715683118943585201016235350251214209913286067772742830797478259294182469806433457418796637176964122408806582599618091943096247810355280811484589600883991523116967083165843635515100363016330066919283244851179908872026798009480320202655022106771597762678977953050213092233017838333604007816466234901661668500464562957527548563273357540461691691793001459034914448523474528989780242186538032433028639746130845235033737241907396685028842200163118812379156899910211685954336141719666843004074126202934878186014773256968363615724664192451045153162409871134141426185117902839148196295701908241319748425329887696113968649791655680894869010710385581985214481123443375257463040969639032422993241722707256532874309502658391938176464316826948588053288833964279845712795397812664814221002276750948850230592050716471545008194433097715127114575568737374914832971950809152016878336545658169765132767072250926710117841901428043937227741620006013445772841186620509778428182050324696088311146515433384015654587901678722523753962576719323641116887224223468681297455228062083265107692128886466683376898009287273054692103162392361366059490537439833210026668920587179350211362334575554134815388200617079366931707120631488146207281423144150011378533122960489515925143841322599847965686596350365641504055949766052541515430401534444903435704542952012455652878101483308596654320544817307725653402249922502315813914008734110967210538794619336776133706223918692584368578334725139148421772353027166188873527431355881606963009595158894831683527778560967232675223252110262451847459711914380954760507325391689221947428936266169802056178783731139336796289870445461228829804837565296527212855880155904645593458453998690997219297416598786181178942176777226061358336195520040122849032728241591948548148161515530662609479774365662875564566188694712981168646841756853043806031582284629913899263880292530351923533938728809247206919987723625966835783200194948602933479013850335087405787319664574704170707719737813979504911126438102980655247919347495068158240999397594057954343847077711765301954280253203360634028238189162154785130260092588871510122419100470704284066900388613289693548119205847801486369160784311815578492106134154681340646946775226456142262093952943732925385736328272667197491536719321156194100071315096816551689902183227902180245405499079817004734449948812560290648165819051727554969208642748061908701943571341102494258283646326160605357304850280368731876445475527212613219437755235623834304489398494306960087728177217520864872508981381033690770899980788725727998887652305639961173464560619174048029254313240682745103158840535133967174564292437525712284936810067997326533088280847532645310916467105723941393000234049413422361955147091144428683891502274083771065543318564773767508763078923735726150147587432305656963817999242216374646050473622997314865666367222509614429767804778286863261576004891849724390970874791448034056519858580867364024425712424468188806649545816632852351980130924907053087282927859564683820395490046477922192887953541458182281366129542985419625815273006689658057710087052889723701438493122627452756097312834194228258349925117464466626032952327880014739907089757704899778340606590647414265414936762067735019843049916989697446991390501639528301331933487222032182529170877658357983738383430956240833682406387086331414611012114815900820294591990852954316846361372578638655374764649676382521946149357112409326942375364542969539741787345449677811032504940331785526075325046331382402400172730077496499580954921914051224843090862509195405045952211103178587850452057114140228366199775024301992307843291575618314387114316694179080280252620302972942559701085097927838066163535548516335335390864950218802011893003772699945135775022040509731555793808579913920706554752367388419350368266766440307377417114663480256036385712219550938119811950207587003094469983568479150418394551631165818337612033693434789914866629002179073833474336597321586532598941197989502839775989124007457340242404318100364147017174181495367346302582472947239404390320705078472059676784507906241927592871289737390101523893709215025042354477699483272279182606611834190076648879046347890350777921631159408674349637451489819885477889174840303146192559273654938812847143610878652147680441498273724216006601263171358292429182167524393264532534770827477416601598003118402771939917351694955683559026925759292875991870259707675395639288153406848463132953806790342125751596296045211730232755096698977130794875554429363038690574459154109158995516778180370009500865673188653325761749753694188862682770662772608032312521256477046742830619154449034611480433137631124019231994497334121800098797537208973919245175519260383797418072688503077913504031555052898940511258257907161077528113902825973483219022942318265410772541974755875745256296539248240262276110832778098775955460715086704420552768392777034292504742158491135411223222202379839285011351586749108757196669336882756204647314381204139765503442923447133161292784016342297507630252054531602979404248254229890511641536337456533759551499050974433963060591147303585571934452549569511692210442006969552884250421034614359074080743610182806543630784334525087316485700383823103731665819117525141517444486724971138622389060290236118334558893770610205876124959404687277300080233892038941599878438029856928421744902333392526842402535950434821799721157425780007011622457961582363385570065153322075934453025161533621174738438335163057188714311789825180037633200883534198763091457254630141704430659037913396820559269105675562754017951615787208576759511783959479599832782905130549662750612918164135724560606922830068809871729978984886132048715874291321497089009867310619901732191955901763105488691028706913837360641701144387782847899208885428529169589199197375363375077956648233850644269249176963485970771412949705712147549687850104332681907261108464441420575396788632323054748516717655395210362902860416232619186278670731865579011185368327193619332205453413986252696143909741248255063860410615296990682535632109675547896056164720538275754750962699878918401567224547765571305022888682701306695436948190013298962085483822232320264202890821233415809164165093860381382393366726439933184668405202955172382819134447032059054906185202087663150317982406205375574252927004010413638328514660506132855720150158973866295715202116073746995608903854027405714369038203762927354173943710086684785237655154216138998762666994830219525773695713473670413427923795419461291637566570295599606253801271362029854332713424000003461183377879593168285877324130089086971842952952237243742570627013441287632939487279575201038032231079507220721701441308488484545685126641475213622269293759177243465962311445403665436100679620843580203223808616638103766423454975604480903099997700050446054647493045449668244918148878625685271078095267489050109957190791346210757982958056064062700345382301661135545432395996373888118582637031117364340701523524632892039835620659907057068149083571563202097106966330052469661263851179989578136138587403141941115919069609041601277298462665712548262266901872987495751427175688461893774263514233520716735592129328335984308455763437414274455816482453388151508838198670888519338611747151380222342011573421112068564716579017415415870773811519661324904827096180397946851141847209151872262431815035209803138841975191844215922965866002241736609535909482169406922015768296693339659676154212520429960056995184222353342656735295578945334885372192687525436974480237605494976906298525664697587105058780123746341218950633569503292607648710163749272545856778288349112263389526334287794931040235011564096311491165857259844791194024406186179567149098400007359693433527598464135133626794650391104152323003271222333295795421973018455329950280496477110577338362727344162504203253128438518530946630220721396442883137453031498627320624684952211837739677991684482895891973631629288074883597694861503945553416214982123441833452242676261779692796511704619449388741239313764779331349490760680744796179431623458048417752545327798744904745414071384957171954230938625537590797024777869992642404873967437916724362608268364745640616654212098295416552620393242301380287117898245552022005764373048792817905217436391836496053755282891068240853269285693205462819096678750013195744952191807164131296758807072824965139180789360666957408588235445962102109146213172273577729008991151881421736847822630050057387935432862610290636204842130480642824905799898996665619853586775682164389260209291382771587784764244967510490471673622635897704479192027796745261683581429420011939012819358812442396717334415947912912700478628918661509517683625134882118201265516024467011736447968708465893130308190493191230609945459142123219272871812330377586391649135234719383004724963362012929907873405233125153653632993602772693658512272882121917117442391373162328308336228980766138265745008725137437746223254863569198894315828953940496002503513418248684720957020767542210193411634896221819641320312584013584926648823471463346995600555125461233601125212548921710735775632625788177579229423848202849628026722699264316817599004205210245883493585658783098778050612935215132990035955732623344858944987008687951028149525241785326146158918319302620269835786026183754740756410897912755263347463492677802966061669072484084470702905909493231778727319790915964403804065865072131719247649763315660807379114242913295952655706534962931326951855067034514555637505406662428754006567477420575219241392581705932707060321065304528276917192886566189216493128137527295434088543313121003165227991045050265600149483125596952910038960812100316932113744050412213567276465999182175365798353442533910440689665919019019724115017854550814567934611483950381360005554624993521748000986856828966655076586487618133856361921511371773757616974712966413232905247143493106736933598784972624801309498580835664511040857623017621492683085727996660160004551519769412333160107485842376681433441793691787354948213089381257254657031028921097171017038506516316519986634703991703397604892515218422363662317766589154733843731357056910335963828674438276102688503611951517971085700081854389448917786057988569024447182059983777742261728355293791539999367143350109849916712681437313041504601155955470390978562813506361058421140654235329761644333700504891254233900786138209431955725355894626973808811848412878119742932036490203168912490488095643144809188387607421040926373391262582285355199755986278096477530098199275529397112094238858894743158185084119633633289669314950834864870709905049553806125166722621525957168542578663452915689862039409005087630921612635860662084939025861779421403664408621054537816789118023648249243619226644374348428536525830894774582572854396845816933656949490356061748713144163571807581350981198335033889678634530651023731893296560773185806482568604204612554099432794084955487362466123158657210784404979509030110867518305918500873735248427219925414091928389422506197502424019464144875363330381967054515985990272306655345415691323103469693559802067415045908208450350511476818921471714237323635849192679626375363829247165780791653914504407105287226801093234094428367934255572911905898905425011111503566585768386136106875257519735613387871492098555370749216699666139211881825937603453198937703075269883078473493780973785442144788670806128340081033937196701940517332286818694515230083239017516980429572506650988529476225477556048512452692811573171003072428140963306251298268467330243100614409586970483583188200113879779442773015281015151589285423721881000164395818710648993101031331731926375812082123487344235744317738945429896574525584593785291195291583700988933235987970516305754314422163489861512597417586168344622088479711617200920302121869576559453356618703999231066788364722668897745713606528973638867916865660506154939052597834404466385701073812036932196163694833912601153488599672980944690976491006571704109604640090232533064931830701182693668177368001741922928421904018588959654107938528905812043860109323133560738084085264393635391972888546011724210894862782793865993839723716716632677400519437256828133109243726450653812626759233408499821100419311914939323333805733690245597396638767889928350994797503527748146262529750248244374799437706114681835852977698048802664910155826874624520908419604324134103908951790030804400515763833818895216966981953900380554180325802052002979335604739480468793192865362226965107714490515889421393707045901946717466088802584553293112351451163408884380128033875217252231146014235427896893076829683485847589949816285630719470853505815163773885414687085929654679902364491301194492743170971495899328214906963616415734995910987638433810236699746923884988501338238806331864597975313151714540079495313990248618878903729852609959435715678251242778331362557715278413752338551300651953298637378444618340630316718081614678328534171953816694611144823490497914343063259946888386058138658709679780041041798208583988160745839163689399056503400948513245566360306334215910317848972044517200817674132218896518268952901213581286628161287862432647734172835110061778881875910033298460013741841518128228200600771960153402830210642294265951831241037084690262389673285394561802424451015013185094762463837878447804232641774771241026555116972356601408271914237932587659935060741169095989819144602194390075769049222026585279552417959050413385460920628904413680316471407947217028385717193519678993073212451740978843253185548657930932981531043061227558092301417167011472097492415213251295747565568287458177280910245888981017969809475732769688134403605985637401316444744957264236105920405758578045443330404864411677079464175690250031673297907790121242620191120854932061133203183669990718646629431186686704571860756014250520673610871769886635626389284367573906121967625515701124862542616904191612065053678949209257156567007797190311783350515463666431670276146238667150232424555843260877094735306501694147510600322788832267280080226498823335666606144569471897604531379838273091477053179498595769645115090749473465999771186596719333454150042554934363792781316559414262916852567409502072668995062345082116623287315940667090960308735381905140641242323815009393581728480893111023759526398194161033610747440336259287131856055077448326471737287699634384943725326003189047074840506734178570736441341118985825644978033205148285036434953678323670995099985874488908301374058214930070882003883581251718290746145889401496281025456792012324005198715905827802913002836306125277041205627546349927846254381426127320489930431964177658972336726551447259491192633712290407494869707487414935017125257301066749144075019328774208191838283581109909653490887154449036559708604671424114008029055072765260898705703700150811849823407661834726590218841263608433329293464238081283332872873383148825647934244790426187980326765268671826835940197291680562773716336637097672747015079184652893861362762069676061946678411329025576937471815251107408028514140405369183818526875713263165541422236327699188102140342144895969414827597431397738573368444278125808972196541624450634412281188429173500137235369240454604267024443977147747232865410545720411434064327129323918735040316908790076316943261845145056749126209723922225038858940881174621977339240820091021652544092863833987775816152919090064735817846069998169220820551105635765046378532121201961234724714207560771114600391015499464795554957223705356248754480486275163181817745861139734576688276699190369133719577913999670988795667061434515314464769270544166401667790910473716038163090869241171556408155881509761177958095348362354025101690252980505633099344086518737463019622062386671872262073321602748646169453864906839113097104410608715967904330666700074119378541224088461599244457779581214814492398643106789242010739549870740918985694617922443156253676424037122726021891441825738004163505938583370079005147979652970279888631540690481026221068983203269510494766797219882922580358204117762001632336048345381251055557749330042564685254261436646638680730071732086199359740624896949698149016501652268724075124207158768515184943130214907952111381405113097753709057537408971528140055388963213153273955429700716673601275926374923452010649263062030786871904752156686433519227596799272864634708600790606155481567474264252637283777912392389680446998951061428459257615403226681508122622392170215272570498032553228470170455644334887144619373733514315542352326850679078453975261267339406656602302544947462859263111793710115977722465016471091801509027343942747696684615565723303874145619560098025167117176566581204618130663254401959038695800055186008375277598767652401900067827962320203863332299346294913924211463631220589245424087204198776185934938352843103006604355713673987931030770660924982140816746819840598505993195181532172414244503451654516053626765628048465982131908590117424189427854401916516129205797839676490741919128611526559177153539352768960947383552540713614045979364710927391898842938036004657226188957038014833866530816333107015621170951503665820153528006868879407261933846057264041340605769788649031114989451715035197440157854818605201475845366316881708474924684881498304476240734739105521502822180900936043869533516026481440081953069055836328233023658350985777564515980690945031455222732933313946181063613618939534717703750109033838235440831000544794230831489798662438275604202933948451321992733968230392833455229640323747656984395246187049668968242931457999309324841731025086144752742849728468401106649715207406086733588145586470206146205114708721596460074564233966421658421887586440361143868471240276215764899635656142006176026089588603160826579773182759339524363859264732274681242831383189412870147870643798565074454456830646041055133135857001192006310384478833804835896331696979224391863145733434414056245405794300286288863311825851628198534997879431182041338569796666415458930003358751131169703338575215195734324808368798762945298513740026478866466709542672341802578521492490853824519224148768044748611523979463604007787107001754519153572226025744802433427620763446482122703484702225738963322294137385792112544171253938788063803348129622151317934583094270750563626833279699378652388494767556793051987223173273137061710197544878355014971455898870733776572675419499871768228971128477976620070391674629148704895673281797608541181625658052551704721433752531564652322118418887040352546591912119014860161564080039984594832977124907069316022489333948828523273520867360298250428870174396912360987116313539235911781195792462637873795040491032958518116794231643772954389455336501412420740567676485277211640604416602087289320360974409773627148344035900166402737955947875331964125653326062952646813341594341309368357441913434459581916343184667690395583823741310248592525857472714830584906671194174770695549938225737743869177061538720447484437995297810747250974218602756447386088043540868478947810148773522745011671601462020387256930278488373255452470054947770062265731771972969072281416087888639530612521689510492391067889012607475383981044444532095576893251067116577752491929257531901845111825963287153119392067426483371226522578297874466061863528004861998743019940067242653112248925668272581635403738788864294143022742663238283825686587960666330286045073729810905459795696262449165530547088705436585088256327622131562057343309194100831318404550218839302545651065602562951940566790270267648778404719130084726657620300928554835202692200161429403359136806551659806936482897269928845006759967187155765304506693542240611018355752025828868954703399303026855369209335031164274176811631129326387989538611305251068762904100121629492702872775341832075247923359662779978938455298930919475714355772197754916266710565376338163961875100473331681934518425923761710067197555584719612773437322166914014532503467244502781849427013738800400291442344366475720732594398050931198920796005833679917838921406559286221966618167388482997859907613820789605162935955737005601684015045934482616769264617122028039164284427254907872452274844933906646281600842213668673381072005410571498112249378863156414971689394814561504323967890160458252795491163021012695476402185984309016152876486964358597335011483791444978494556856058183563462110684080012352012349251678580222396371338191853550603533776809481293881888020691052136641167874251328346481004122980706908387542746951204364122378296923801124172322879622144947817360905648859422837237499205984471387395352676498229038073651011909245342089091364490791884773348874555880849418562378246883540028353003550343750677749986895695767674471354043972541478421695995731692170126314176629966838868674652818537010794122628273706632611595438757496414726758977778899964254371124974573922769820247882697969267983194274150592717219580276773659480255011486631015296808596124261521858282489935846143427785459928685551424212944321398419071777027697167268033758373779537234860555603231230939068527133898193029209549832904266145317398657557937841982368585442560394783377115132743590278139538509825405084180387351334980451959534169297063516139461982845117635967730499264371620050194313723759800377527637812846398427645154639169621247132888811193229859223421962807106644632408597371549366624789182454710630312856238885764644170393968883818016525102707954656368267971711007198283520413946170314803797691673874115304626670189671398880056299983904257787195854732315390563377688024851176410780204623919324217421432222636419592283548841456423290093472016996351011765798896988371296518446837418948647820466196949201024678799559720607010965448573333763391542758877794005733815799910457429107802506745427304085168468483441769982361078106649427446268246382411938968603229194859168682941883357937432783871571140353676666865340307291769068416020161852529172655693461551081194122823080405830532956128060873918607629553748324209637992766019493174289295651508258729320566014434859976158725879083014174864209271036105226544140532021946461780044144280591418493312205209594844929608751645391901268936719464098102907032608683044709376241055662700466900000474424165992251391015408574470130818272548763943702760197459209687590474291254985428987829490037828192974498397490301973390136021696943434108160279797728450713918775103502593862559507623528858737466693190246637358042877953854249881447955365235851604836017907800679945768044885303322296420958294139481926240798011311727463784266077480087934980784296223747911872176760972800295021930511681285143530073541999809554141896146083631112458482280517813196958396486280047734608198606703227718441361618108516051063841192382215974549866229414598405207783737628254298822781670572801953172273733447837398613022331089963791055580003919056947444401746025631883895726915799128529515458250156969260537009325383823036808340713626353899847725338011267834072651987611280006113022953628436707447180464051465086382966923558319230400079086545046499581297692604366168182895408563962501783776968553381878749817492237338180852327760852728886719065902973763425189985691116563016987913418166782980662658763325494003882288471975931903009714317385511761684156893250002941305427295170446857964955016118315964070665064230202863454399003363121294823618654461766334601503451766080214691178828269007897953500503936419430097364532795415521032926127325826803583437960622724136753172285110235296941919108358013091465298771772628990615256061576730204978515314755725359358931828779530927354059600847232302594868468828822209411872809733281576603203772004885823853002120540280774434810171884590152286446173514138979356125264948823116440741677270941568259147633453997637596008736941803381343818287694744442108602730814457958713987934171538864620447850496403292670065268583565754016776144986944776033370961788238158891229364760255967803009126942952816562044644436531101132060628553128055109855361155577092148495797799465316243295483191977312348737815467083953475924738877482822601140563201855860211779967971101199626839663268674426557048209891489831307255079597435165235773697820404913946718894898339729001168129742754898193983949779793536159314907593991991917405154320305320632729269666871741159541819157817585589955966520796501796427991811681993972133960453866515031697813681394297137937268823625909103219494070803057455211945326176224079510254808805425998789617523291971110964530845322013809172485561964860263712800775669356398234043908384366251380666883657160853096567869596422255119214649314910073109318948230459919106941062405300079868789301840274734387212111736374010432209179898961259398100617274417650074792319163741019002550405773470771459714186693392678365027379078604241174661537606062960179593488593174820557939780521498684804494644872940424589561755647556888817447617132086933505438167664397968674937371160960029336407515308538472218036095988234666474301703703221821213688395811872027452664033734333450573885109664597845056374505421117840854820636163415673309172261464809041567744691871144278035591431263149795054833019160542618884204303850185763622713892047133415894694723720219281458552476548935874577019790033554365202770852601915995672642827414445517501815990549035904770042566958138558813145810244565592843720324381075182942453104226228143932089560414862790698234109500458466843031258999150353032991518495088132272413432761899204224650591833960921972371400653350379933697673398565291556762075683948152516808206690827466968972480272169155001483114109590373247292251011516975957691809029489289059627477497510935221071974689561233161443320806091816219741203226152393262910039239887444950938607230380203752191552432381617685758415738929677705515849878617760906190737974935606327594460190325311624358849805050570574142595225759533760553876410892356034341545975692344862830653984088210799491607383511278855238744603285040878617828476877859222461239348764214480506288017628142202600225603506229799057030972068072063493596004959167871717485450035452973614856049884738022557104652571105079149611662437797603287411855700705150140345853009101850828225411227973492082409175290211166194814905721056160406927576164320859303716885255520792446413804383747568473858608499783075268485573750350772944555431602608474549060189079991328350412813589753655357322176155704480568274572696142574749432454010517436412979909597469313171504869333393166974637293633881001717719176832980643937770235219153599227088909749085321203731505089045564675166703089881448436385548795599291064634154714100661885448673768939187721885650619941941768076147188725759095210494675793283634179419245127335346985514034774460172598983976301664943178288605453950343089302075079655189754209894518381031341627161488320196080739912988151800591244022363393465793347728981858885993900807978049029523814818596187609325777685791219925977833584494500718610670079389078838844679817150556811990097734569137562128173292669110764488105703541239378728999382130348723648939640360807602974952082792731825924341560545645977928051267128757186391061542340521845194933230016193049958800310953763746434316401713664788964401400779069162256760090966357909256056954072522309890454217658343052666041490394396955097750428494275782538898009664427263269790084185387472906795466829917326365781600946899453015428967648762508614288816282995396590548296977998363032762188598164621379084548383678025577516860702660189900306328166228024947440485618555715278562672982821497283961863876236420128272104294529963561639563865779119900632172046362825028599157840240441536539623401743902630377721395263877086471426187618511279814444591327921192894309545138641053505113336245702280329831732125542777492868361404097139056445004433365485275636478720602515053349400449247037380668808439416957776041487164084943830606622717817682970645866698517823429736365582369752643005660831741926150274671767002266854530821279289807778052301222740337336353300137689460783586945018755218481885572432131881545850266493715723213168125309193270128803840544467249579827384176984811580339435465262042092415570847906029298136745754912757118209910806998535446160508068635111002622785167488068529340511199900576591324623339337395026961543863285734346329557209524628850052179782316987820833050975239581670251389501891998367894009968627146819976608307762453496502570148937961848530447741243156617174496318079768632164613156919181240726415994046305240594110725335342897534229254610512049804463045263308848142779703493737942750265972844295010150174547487189432698698316487143487159175360835813278380530834834544891382886090836255202057457293449208444674264626994417184066536571846266012152381159117438035326075778118805953798401097305163933822803483715822992798858444811166501903111893770307975243632204938953861923055235324854804393852298946802550708842883091544881160781001090810485032754979995116217695287021749874825227870390091861893618111971295553419454809408739351330119771352394456035795862864743159990126045685558899454116578464521630308293053239435001418695394948759568580103398181679353184840017552245502226582026279666752884336347080022301108927649581933649153470742093554940813974437936368496158017943455780652530583813347503775374787295901409240524804914893960016733104769262121140771839481426789904430540009010239670315565512211929783760912832962278806993516826115807968937454079542011014645921102631378387900594786887484119077896592701319898689286138090461662485627556274718879243749673162080454609898053526857319398468682935166185205611926133110222640667128368231185144164079307391393573266657667035393516576894730810021201324514861066142809762662191698249985814382359945286249021238576901602675584377435805607050280465906449824467739827481837575151109758134361474290602604545740716566665536625583957237114918251422738868035626535148655053970838449282015988495280445578154585874636661883693893887033347536525294960353265492651803949306708649064409858176390712990810511846992021341643503744390442131405878262212957567611270446235110071851771248962048089012318048476052952013052978829008006028679220790589575829521190254778371285388471837166058430007468272233448876318971812507060172031187929942420485795836060168033449903386336622513519431385401697922296358575531735102455757438006020948534544916313006818034103173514060653067472778448205441477329794728019554552882859199129770965216404804406023815648246826952137016325947245262804102643344068596988441003821167215061779130428524829113289608559019122757463953793703048117347682110887783504864133469780145653404126266349633686487851841850986804404024435679612106025089472112351116053741955627545265773378065342766236627052448001215007925188441576512207163543804826705021713351656864535032526804663775962056012529746332780221069425291030643599587586916454677365368904869119682870939724654447122160640694203350831288220132527429041584009855238389350092219924206280715192899387250820068074296477161211896662677002725440714902372438969659712292437198526738723754470782256785532125256854689901092138292440705355072059051753417989075856870484180812199997031726257718524197659592202063252627317212881953458892418089105713658481454905793685161792416254971525592042445257554243478502566945674822187404568361967856524384668519945630236010833236010301191150229995131077465519755824475448322451104207311360075692935894052288385634868794718742148989770250928557859514569153833211426692282325171886353832564859843134580618765652872941962536663174016293165201010844127258864788535173874400367647386864449174733201387670972455310528156277544854906201619687442261677664265229287778833824296233352341508936596694900374925317839068690140088810981027951919792035287822111243040135490494271809835281759677463718303231720425366328395757086502766842101074036717402143245219829414310115707594592641215990057854968726353799605595225715980457950792417035828542587823329634995748185928033434192107578742497499218582514867278721927415502127906863324864991420580776725307665241098777428647392523644862490735547961448852848212557755377239766532220887995562456574580200002984317131946270092923448816069165047232571523735402105353738569127500211411491412195755716674181191836444864630712131182291582576937434532612793030959964879780333973896652601420551883063978936915610995354245365153492801891082488358187499949966553866208911752032383579688940160770782241458346861829917458410774230835922123396996609715525457376587315062077099182394930531668092389297542122066603595645832685941213095827407594589935813574667098410436665409705985079203017805160905422252199412207989329649480058122054245971901301730226124667949823506567279763770272856987579394764303622213696601196107723138815526053920634192552748518790445990779381286050487518041242876028865494679546622460846812684311934510184625356620427391304134174260774274293294634158405260542488432956204035217596388806589464263529162445505128045098008320706335481419510839284310411266069260702093585987460714167519190686975922982683961410253227780890916581587658593676166677016015735913893049196812808515397368871912298291243068045833806208212934560845788590380594088570621188437712095818803094453012057000408309457410097994549472953001437934050094772539113284895915193249360168855704167557165721960316001270412078860390613066930826676792766901046240057137400677285864002425591119999354923547515096523476921556456523989250382024638176531485280556519005821828449509411139232859704272862280878416516862271697141347116189721031897851670832338678866730485881194465750362594944247329423945216700095480133121514506625241258120256586081280339308004051556625379248880826544694566615530280950698152023948753229459806102731011811224989466761484903287510508413761267245322453028421444852256001986342533864937101892660144364733280069166386709737424943320155413991523110494965070851850898659628835109791527487957451083258640009980132141187268870104167706933531172055333784151020387543242480753088529349312773067349820395510819420498437733113468904987068415234603382263551686553249544542275261476469903753420499334952913899579877732589433929698119608003353610563423653795234241068548915073468668709890424766739618806880647936421154549121114545223239281233620194154111782023746850526328204485558821959741835330511489738896840982933377411556606020354352081083054642066725199616964867736375450114985756664459048439456642294985909954175243906763371261381283852731691648092747018882162695817194485808215905206669483681419395386060525075137396812109015502606798277408735387552821194415665757988854369313969022335387568735294748732368273995213042530229986019080583832019660661058268403477229735435965223803780814124717317603177661414509564685001530540763932607140742876892673074410385966313887868594100873743767528341057434365412030241366884912609373760809740407316320777982858647691644514726324365631124880013307136274650777921105888335142476509677080156956398914203442116363988019253529024091575171295162775361640232305266324515940194739468770285635928911658530799356692397522453690642270666701714040295573935818838672047859148519787175801375479915288261954155655700306371130081941803196440635755574682596586958924093262557955504723469282797372141904803236227097502445127519450434873586758615998590415594100354417251033003354796475237397420659525651516008509385460787388575834054496303688135134328043056797400797189941884662970993784727365233202925797609475599021264129090051007792981450874725509356665360201358042067272256962422327459292842253547421312962216606749254956646194807751609251544482357614906613409845087453557229105527993263717420718256123534456183867681705585100506417120641444631876688683480333057067002905167669601047182608227127757778605986131710998582985494402261087524836498382799969561473910420157108945988428648049532499351289012666988469326503501144866352413750274609999815850965497901051302872209961344544733975352940921698333095322608893020048457720734696601126392471945568331485121826732868599957616899514475663994520837142042393827269137978370201231888863774302079375021982964164001949721003646462789965056725204736797305034133579618733368190114618061562733007271044098312554872736024324495239467324307471957947847327951301854142210631570480103497513725598773528882083186411621567972327044013314817641992746437321306441828999972817009764413247927956175150516122992889410587714380435116579587736921208053505358524130923374296155599908722734645054958654417311603924366959705440876160776205715603348244614484059882167544063318971692015026234418659798077510422378578746528139114429450611545816683635130632468943632102878383988841925786483019435386797162147357153184669801085088295257693439831564515716518600450488072320120372357110862841436982973298765309818993575152839593372175395516724254821684708448557777481454648492188117584285663851786482128114367078904831463599977309035656495501620463325556880948500733638526800218356372835421290635507716971171363267272671223543204855290303836268574407331007235820238616498030954591524201823610878374127889078268129267742805807760820609738993401933701773049614377055304704644437314160993203096060035532809086493778966748515811031729830705978794589248298477328563843304762816759419537598862103633618300361109202770056844954619133883514774649506854801913783877073278497572859980271230890319935280156366264290077434612084050279554399279295722603594076302251592967508908314189449622844440309798061424749527123303304041272418189577282517902486719386771535881212659231996354710331976683947588374922659942330262367026764792454769715936967450894815084054744389944423496855337432555284936695483852480029437565353532252445064838699968344807619898271566370500132776501900446949952657628936502249770246246395788700908313440651252047547500687606518390575252935235402527612826417856088875056795172970709094897699483810835634808603847368125257296918256089384262943831634455010243423884619747365348047477908049709009224064931006723186939000915508029458862668774922876565970690053465375758086164552403701313173752738685448823478052664863697549584469294560094639491904823216768867021628943056026571782222661621502021363421598772876884335428163502636953503910941396540505837977539831395300957195163602943476192547128746370212042890805863270099997025595986041242297636247542570816444882286318067696109453885786857201169661299668277196733417560806826749545015325158241523232618536262710705041639343398733242032511485521913339345425128260480151892875502336558961146241814225760579228999024376853946440314274793319611267035884705308005007538567074889418236795134986402363360271020850922198359253780627833677833755901816829121534476762622310924673623350796941368004144080648980673722325259405611390576779975381485240305944271956709645539629409720650223177536040009594733927358215474962116347421611850224087025920944556078397442150130418340220513733778691857869456471365623489002241783254594832634167726062452934724985180368762572811936181944761842013152435049203052823378946914195529758901788208175123932057969718192808396512633243628463550613346332761773630174866296341768557052586808641708143707076858248955790983555937177778815943027557914610749277451599283284526295072460575731330958164408439565888013712377039824462060565611518060913139458879719654329956281222952577493228116114073890012183023214727236119563968169978007299033463069558835567243380538615195197192602633748736894347239135397509131495858966415222644738614549055719200380163395376709842982275967440074558380518810793317320871280894868850127754995318963706577063109823421277780700885567821861871718417503138294516898121066403917982061235482803987073137766547887507313783645602912349394007641178297110071399384591779257477533054920319703535414070932667111260766149845038106136723300137922824190062137083951806850587966054508638304953316043574698404132083834482336658763422083737523080200728616298545511147365641885255126484799598811537366094631075939599262447785073539583386181760107570595045764569393844469203333418341238193079451412404062785031297657681454753351102289946157051309169459924033510031587348489028279446751106987330478248530767396167504264509004731031110656246856228212413184513311104504889898925244796716461844307516922787718056084043875265683390620418475658925561631482603805487886009530869527658583491751728923696295260779991989182745572480536086198985311181557928515795215184002627667494554419620077723231495665509841955324583100947300958333974429311182039961724548600714316125954283416342518196235417781295904254481073333885376132929614043754616342767687043075398166114925576442406330206573366925220987278183545033540870221419964067882626829434503965185207103461168149672285764074886757085263966155309665503748536862309531301112913766439757833941226127530180006951398036592241868108578923493084606896104687242611662016058496252922132995175043377551670201572642658902369582267719741499267291146196231846128805371713907715986141427108946920931377072221820141394445868751748327151248520723078532615974241458646172956727332787020797870232958006027926877585449915350034758469301837250477119546772103556851710360669775850641637103813684264513540008766770101389754152221826736156326707816995659289698466507269896537093839993124478052383494264540157242043934205375242523444702246769023934760618054259458077231136736447929860185283780214026397652575242929814233689613193001426604935934911955715485207760756510923309289052340131032355014784339613878921854297923582279135556580939826448296993105022936924632384452048068456310032199166269850161389264227639272009541142646941777116706252266404087052432598361520316883896035195948224459868050882138395013964283159492665640757738318361226438563529382708327614247199391309798832635943768028290669420394314386015988664915437176391027602304799419303746673056025475048311718868748902058697905079459168655980670136228816986802913577508973201211388393681930615896550840352060458821918382608726035423220480329304580867733737899884644734685303150743657111709613186968891437031266781286753400444852891841697975428314473676542909764669777814154317761684084456452941496507660042035962230348921572377516090469817169183592359822636313479403016959288374499935863636613467959801968789679976932426629507751406646011238788913931270956760525770583377035569264775671053838775407695063905422474486452136041137239203920651451372334489017764304924040600350274209776265442307874983412239207322486843081011312084680156614711040303046254435008534194935370024408133902376754006405858644794650141431696963858721902510540792610130540437837512642369480184902242325458074124957294925820070179052435042089074428217266510353250869211820864878298361291238599311126793476109569043737421174603946474536971500493108552507238531464744799125308330551718451280518387263998706785083675400022434723576205040606972104798194076262576221262457956081799433909829729974817631619213639797262704727070116964481772817069341904779144512019412502013118651561037950918913475585657932344193630535123954302349616652052291117573687704182306083376436336998944671153419096461047233950374097322145053223408050513293995945561475399305727446667951374391494094045883242700932140072378660119971339822203292186893175590881045762760207482905042346583929867007265570710241488673514253972992143564294630201740692820957842105899944758359786906118123162999096450930717250115414903756183046382219200509503386027900264671098114455860147349002099477275664106994170726374757991257933939639175729293420567570050848054854502124613331598743140831402933597614180302090626062254861909973447973521392221321579231238801963268639808074698247921156235568737340938710348354600067410475401284485567250600964541517724081257858771446671604637755701406615264421435867888762987752850388514870096477952366079846275334179621879722830491406967883741802126938985473897562594960415257160756500433873790972359697848796504470142607617388041106096720793805876828170807337851207138323425861222586441467435156097684046829246111324091562595072211489180287448266299518279564814167788970751457135795181754556346418205141871387499750748235430375971214855642148406711990175892960690937326286072023725502896227590113290393530787986171655988556673076484483687304672697600385230651981056228777141043113314150077638835212127976354106560494338419302012680418723542149297459938547741894665778342039321323274572884770668993220109834906756063754222338836682377591899852656362686154374497805919548131768755526943509896798093356269591248397860474402150314319534001226135214094711444443649659916168478159987266579253581080823636410645745379335285536401658729663848857036276819792655445292255186894247046385837262612155548021216863669851484163988433060820491880330120487960181858308939936051763368534763848669113857231852132686632653049398515106521332503490059723643275494100394287861956464406969782519748256111499616019557362660873102504184380902218404407077236068078047454165162378723711594616444134044199026315976872795518583071433825287838320318583949558999393669173756052968749782291551131205944950002980210630058405576612337545033707119051231414591917803032832019305568394169662832170251786865845731761325531361241070504128157160156158363893790911471823849341254915918737738359715554246957931992396574026674948104256934048334798624201416642719707142577085675390864696824621294175264765763786519467898284493686198782630574780852293996006110806841922750902560494530348080565578135169330601882768209618123631672171006630752755269245711790517831810068249140110908236052626359937739414287885521696714235175328586265248346655997745883153525795325639954716920351048462465875008876748476602185830931794013279458105240277404941201785119226676689116197333015234216436978563768282573038530970368786934165461551490483733571259784933477463760209030442866351456851989844335585442286015189850353724593833457013042479378225131541773554679447393105613693974491196221038993750898614927192798698770063126322987147264749699928820859641222010894374041021245713689326715020405593314577661888263921331042139746575315094457756498667330333835775798796588547334306556297127443123404894854165262423875011932605788060683475801955479962033350455971787641393210374668227209422806074577024462171124189822843261136097346865776201913679430891961751729597301484303316569613956467003919021313154922330799269754530348682796845394951716070680479885652107042593808108071141126734018891628860547175225471643162723460476182756141248588476939832165245770894285648871104042684048923015300693660547981570947959617448677830863262825746365152892422076438594377727256913707497628706721462224816244102393518239673075647180700402451227808394045364160821190235866859551431587341270806437359447124364923281240489789463534755244084414508958498934090251770093171803762082587852078160778513544337431784953876807127815206231993899914976237542403463224905558475766267867988730850664761806161358945939035465398596344058322741498262230619101004482867224824742448932396226687557055726024504992933443169857662580650666423841253225708286115347764625502273920350475940294322470374016033066028970298802304987613482972264823561268074373119181327788928164810906122483919217401809585942627294672520807076752606292643276531682757663317813527958385467039831574353100345944819370567506782003819905352776339717646153194542885009002454468468027826159345435766895508481208697746090395395070214711084494822724004133165811354653382380187662319278663723195115218862534623705020587466383036686045060923377489543042174249007985891639851761994773125111484914784830268712021416643696429209880996565228987553023888373168274223897657622764924613091815865170161206312960313098517043785372503867509687703553834035600541241533859186296963086902411290073050425204116018274162830343760431735558206817352854296214824401519654279441725254866425598284489230575549563473798569744680515542035761121909769003595733168903922294737495577235212189101444470276705675132827265365135170017576514070167630392295300164297472713905014883315916855142519014547180640085413220977988852625131382158807565830024429200426510095158054961819278518626004399275341700214668913925007651267181852937811793517310515045154925564314882194975083100612776024216396435348699479217456107819537220447611631719466721138501072871505049190323827670841577741441110834778003447003796913667035630245421319088485688751285689634746162698645719383655193415674226507677586770136232249339169568855492932929008918265132742366317643087864392946076424900216676910833134799824664784196010354662765318423347785574683586906519743752343667462081354620759760055130698775084026168206829600183250914224172924646724100440611080140733780686200130208081847953052057707939335928618114493298115143259592125089948683526414840122805336828134251906296623121442299102667702109037972827668464585108688205721482438122331302664882629461696754086149013180743183930439148995223268895194560259037801361542154993657757569933204282561267178217548037323487999510531979869712110145485744485753359670344513037798664993323870081067155855809657919270552005652194670336223555305664826927574564718583492767772084980381882774256736085784615915232040373046896717490841528835525224248057682013085530695836091362911099150623418472520039958195667947867315620510876382658419018473521937555984894218067222797081416395109998532722398590639586297955426154368854069600517896533874595040220371910233265481515771534790667519143495091359669220070021903891802311961151045342936198142296325443181612789450940036834827659770674399992186286812820258032728762970328719457399130640594971119768000177431752284596766533948198197506192679426985571211665218580113799202449264519127275500440319638413855491843016553682384284751223487714767338339638765956220564988797138455566476875655070034644508095955070667466087929026811509198431635858010454899752146654281696056938795887310944802019856718570554423352907254384520180493484693411494467682597263496127092721526776281181800552025546564522536222831909661503099600178004664351588616855810849635817090537204438264278806376894406629885467072074038552732360375619020397103797934339568396030730711004459532290358492332974610527900523517569858104327608472155659900712249448131859031766128390559008799850289645666234344507609217669033904716777152397012566808926300469756072677231768052761385680263738853461354900020137615783727500808301976196953222252492959942511638780334519385127220083976236840024755533055332336399896457473416275752868078066085016731323017263403161183418832812468668826197067356506152526024902435917991124226419474466284647346800143095910721780248744846801790972879816130292183866819469976381742755118700728550498255343687596771044806841724885140788942476644263127829401566158567074960099549082378660113638751050016413176632990830183763469590077622658395147004126470760954476567057942780146012446883349618398700853412141288456614815973830702488868650547821098276846254655189302820430191439037304672216445570839284082225012776054135119741159381132696748912751618280314117299171332175956760811522664537806533078768488543823136727706486755489663312017676980265870782576041784431013850016494850029370920301606205307812914182921153444631744479286762779471900733176668081637680337768660446626946352038398226562952740758191975563844606622296453692374825605239988486038519945428347002625585569688782650709620990425383176890060502645374678656857665038116101513962416904030374766111644427403525456183902602327819298114250789396486397627033412846489625001924372638074054444522965782587122955986740887144258685852352151244973925579262704688749119210386378598984449088498539461907770308396813256424934821440553219871654609450071287493543207646329621666371975235576380921859809059765050942907410103889871951308999868095742818377557341933012459990925344721521843042531144146532187629634206803338268418244269674145570842690088327585115527631263378698856690912479243443206664260671780467320482315300770945832228436627556416216669161394727862339745639095490165484547782098469527561859051437864779592362427293251522388672936193745440875880523107220619208123410323443661913285748800000738216867321971759580730261879932892314814544860878859393472383384727150213831249069384178712964802945401144052748316982930760542242842540558261130610261488974978414737569713724189128704071395124688048537019142124295236628277260517307930503993173373567629629229428762332108434647638623193354022053260675283088931229488372134113149312013323140098478901628316305207449083175439631730246423220710573094281959204860833189051316022348670104673863061660187306862443386491031331461968713606275257654647802278321630504562931239623153357675290584690943499882497675602421400878164191235408281422171308467512661656547085353227614655545676589910827447270437914552506083170983961057893928779101743175791226220266609438622400882710571048058329219484572708022992143123583228088446947083234983077434337523058755115846039912384780187190193514404136783848638468821311240323960795655126384525023773468260436751266783824029026809486792539775672631049046953412298753619884567919636922287038570067339082742905700723678137282556412979936336617095277196526867527956792839047559585906620697430230871009949997301570486897537754377368355097457308836206616316723320629437248960585891943621727872075595376048650226796133747567684388263801843969199382822110564018238297177729836010267209946181401133686682642515598660731478125035906689434041085061162568223762012257584157286015794243766274068182216911176954282457183358402520815085662434329169971788730826294491970608343534132068356064566369006608095934388576148316844048182649315717003649769035575122337215066091937539214224765142950174378657087160195155366595490251018954875653898980533588870364195801555021470667675662773305965595945916544040433209158976147784073780803296152748436292383392270616329813556585527826348497409429282026238436858236736037826239320436369079325571324306605638700131706968893302862780373111009435657117425656482881593678938030723528962124192568199772716475177140488482576575536399760229474360997913230505307342222807942717347287006253491255856526793122741364835289153011843398132564374935965971732108050961800173281643038304782372020001796754026593766129334142349569782203640442591797460027977834207826370306536383000284622207192473741020633616719987180602874889089651940962230052672743243946874967479738456880465661469186748037649647315342550612076216002390393790068862675407491579816637808943846302994821354455406015691759565531484102315580575194064343674295754580592190187041278917801156714866143451030108838272093402705449803088786665996111670160275810962664955179049267906872330178462993015921907264939944398002427068416056677914685084810371753319702158047716061284257145566511283356063104274557290369529802072499413928950318954064536553107602514005676537698598713953616961805677357397513364157788845205856901458997493410385139409290275151803630416290859679429983210109819830131837509409783489894380493208039876504603776000914205661612414086865318163040875377485427977216083023624894871374786943061330031641124862949067591727406304972239801966825061244576888036745936961981706564084008807185932031528242059859026023090863245259250736841013269301375558652845551785619440702862735558492709894243435854855091425426282931204490219890767217438853071386391977926420206454922003041682376027180057885467046737610901565083162289530080215794204632438296520895113329683565975957614703419981870131564185724458092805007638981331500718262850952140506023217178363345310095542293314946308793953758970668543800042829265129800294511358588761442040365574429709847559636790764943078820212101496353483007350667240794624044326402478387582038008318028266720025594855209288573698629658786651449154744619345981208451096207522922733348854576828275025129100379418055957023550436289461614113440106276474738056454749796162647958897455923988100485926230351582111970746354444970710572526183110387764745902150703576426186461213321694145873408884466649447346571505655240956574893205641326920607037263639009617500270954422647387204367921683166104488514029447799626652779836399169159438526411161384604253106728911323905768179674681443562562764693335537487545615776372608249998258868852692664844170679540983235593030776841401186714922641357974279015017031128576402996301351728392411962312806460589704980152399247505692831222385440112830214505086082800988086031284236630535392450788097873499834239790286910793336773028090732568946961474232093134848150521463709701737466347300038310371983373455751576964004250220534269721877429195285105762566222037646688047588901426100467645348642469951021261315705172695628025151373403405519353217373648611557336002716576697454565298747254268172391125117602281330450261667773801608788331820954809320669978299705844127240571668499060541122934786301032698839007898230112025752323719115884928394153269112039203216884681823273219920772589884143232277080718602751112085089935220464369730336879176913788757664428747366965866805057276881222851087935651025556405493524195276902348897259654764143068304029116620473771505481978552156457051846904647430737981489647814088288001300486883916052001411147952053742655335848062007851541976087433752700753873718218227744444381770065996868562746352750321209525878682042329114450148430750241254926535642676879646262610513997710977670737218147934583620276400167259473136615790133401470584175322160085342743355937343795619724866939499199927158713189742630170450418694001349561706143388252100059134863854003506359190451316917601593867039268994766982496323812386323757165693845476950366175081997538183145599140203912374603238493317235983569201059123894655013453060482285880903756553785141685468429153010209152371471366976977356525084627091877584728397074249087887832747827992353425044293888161146499946032586544157347213513522251716222282259276543896349264234693769477298686042595917319579889728699610423432379610663980823940757398150385558233590227681481099911776061411023288278446501460664230432920656865921652650841997507374779720906742907343667777450156816855984485838365409489161147261870466878562388241329239849790175678299958767873070952355063395487392264305604547510585676157617537956658488135288391400077038681206339471589417150826924315961312681632281369659908236677402030503075148570415765091627891492913120260448726910571372940442969484511564493896908816267646130872950368069275193698748454127279329972555290978739546136079593996451744330272888296992160998550675503418986035044748138701405492698178551025077765369890878398163883575696154458768604486315215524445022926817150794154680566476799711726773350854198083419220184339541341197815366938988475720643316651833516541607577617331441718508673941526497572382210446757973239236426680107031886668859309717154462827129387310016827984036353424494165070678356321601759587275309544417590915901542663371276345272319704877664546886573498490460549374424438884417082433125864936370653311303161689724470359406524681850745459478009979659980713156667472758705560528236823744782917870074144649266177221588949995284984985157192271831913463230323495566755678242786463805222668083522428480080186425736316073940074744435798476155205850995614021481359755978104710081226911880566117936241194663633489456559741208099341526522643049293761114333621664495937359985271671525915647499585948161513559557861894921783455787349632249512286434967394949228649626599769235700046633439673678484447700719914861366457118032746572227655102737984221740031365878481002001428446053215622404628782075745767631320660717167302827363624024337081596218158767471264421456667530503269119111706255707525138896368078791745905922170392803892332817353271454747918199466395012587392657576599314551293704105638110058321515716856231781970514558247964171340094774682733195615698053561860368314181054106394310598021805807164146301733836702551984879450373519641649060835105488613188003570110726110276036507643482825088480785555380929199263679420805628281596447571383349270869189710511750959701269294165658466254163821597090689252145247195648569456804277106822205310422442058334680852752440778267163243866561893444722285967176931909305670325097610406400099139744373255927460999696834025524327321101333147850469871793034397954105242322052292273898868056326342976042627285424735401664793969230682045864585689895898801231127220444275514980874550877137150674907501905502550927636651133025662906727435529433523092952617543355731950510503376411041924847437933989524177997815030786404487767069672944839549940256674697704525325848409157113976452150020936995268505649925706144067479005973411009284239010826765012766078198055808300043967869703906979915658055633128767452299612498170520732190820648208933571327429748273147402406568083601479634188955145693533358622288366637258712143391701583477855205836663814082401985926372978411902314554555723821029872254389341617647708496502354106470638589427656592502316131856112297083145503896827939301689910093495859847141718411161438716139920830523034072789426599873126042562209203364736235282023306213926983677199354949892626777247590383512100407580454575160235805258041991713102738374746191389154596908845455552264519651378385200886098658579442717065064376444235946435650769866239380622327010975557789588440309757662952920530004885721746562538436529929985702057021827138561597488517896956725884985026785379580531891066803309869599246881617261340367538785276062195639834288308645703977208594322717155477011579353428934370413298287889759039922832208185317491040135172726277054449454766851008791150389088174664678038201334836710452239175551252482758181416635830448139883395482997057186859167961654321826315866058371914270023767182981372781359996180495005891769424460433640942926118010690352286219852888577815832937162083472991900603546254346173446099837047502601775113031044884120201542373063560692238156109999538063229553337095757097199203008889679845740916454229818069198565617608459717092750672892648982227945476098048807219126619752233526725434369154094593056001269844700188166191293819190066217055220152298921458626758244778817997712555472526612316668399501962507197105043260287265899517205509160576082950379897596956007563496984067865727691919728251296704243601326540856932725083757840101955092386607577372036543290800281422647778859065611027130569647340658670313160195070941755737186721547001721847871637467282837239949301891108851384050279881461531390395494416884723692583817344823432520508940121001927143091043367939928320807495279360823834148353046844382978862440977997647761776508362421068843827311291458128081777865636827440033135664511649728803143050622193144024302058497278588407655905159009882165025514759741287026214781651084140506927551100209212741388679289170767059117102466429171050525131181678136278875125749263859938079220867152046091696877501218845064290343321632039952156442317625693875936257555087491387022951504209004052975561846180932147573909724343693558208482721877415457326895970884816663690282209906443579970701273872655785449370894529243287509155877959371993479987467555191613136167002592784158890713114839869990754464041961357080983728435634126685969576853642981338755705063300817008237167670578909597102049865816070016375852090368665765809577842715892125299759031736018739838129196087126375733055770997846753310863027814738466536621857133800769634315100523483949012612133997825580097652219645613077865626799797804782694249442459811302042074135463259730368399650221148702811651985821665443859358417566442309994268642528679799421514617560403879886073032092476276746623599207560976761842253757503978473844498326474313673472363481714489398422100607988157088643991285453796353241352272187504252836305189558065353253764998907001661231383565432680412758393004302211954171779468272249329915042863396129310742257757829265420846247414949859719730236812513853751443124477242938356122365569920344828449687973613924264492349847084747300625912364938317895932453767585796499308961152508192343045383283514936594664697681168789893007627065654347801221873834253605540894943676576518586464876026025749741826513720032767302333238285680926012919401886950121334178704868004047186005917276249789468956108212484786634233296309024651856783492655515056332255678131617257917096199489037623853715010859854832590063069194377729392699287334376733736835102902864896562517430992194107864923236790636890502568154419804237263932967352211316108005726083880131423007451982836648320349741156115671763488232175148357938997266160495935836974512813536641385754615688869277112846594827166950488822236638703186936864981576177374023899734899182085135449059729208758288500845251448792184848499402507889318382326730398079539423663940005700499805914595421274329601589520299692721214765797045182628850180656779319047022733487775824867734355121855308902194422078530746332374212419454824727352677139776920070705370997174786165085663636501108279017222288605888417495746636106311571443236908165046849398616435647523039987314830119712836943230468648582908005506614807323588876344752808664152540023234922757351498113900282643872494939907698362657041934435204541736355230930866221229370712790253688627529647401525529152021429000090646575985256333770534396432805631650753422191426538371128191920113127264869524203429937381702386919504325181006267970471480871270798953082001671793492819173948053633578242703890495217839171164201220709842237480340700620232476899158173774413588115593645530595879969458851768644488574940003249443391129006249398584514443574052208319610622660301955576568243937260322590506568968963015459598829322101561409753795542365458253235634741635515901156091248143086164547380978506582928982149815313414897684695534890436700667962316137900674891761510792133447438462498970366441123376190783044000710759793553235186510014558510448248939811281063310971435671188622784515046366550230424684921489578189816815680852342047123252634836302968970848798440285090655158162327245562574832635132370063886602345408514376605018848504028626490718604209641812429279435001614530177759906503707494829718358023676983488117960781907477454441931459532676632321530622465873824574657801261017060895752996118271561462126788996566356380522268237599484243350084137236174418037568645031306420307355885530667421895742278742631929140723280993162077341409059581025294988860747267762560534218821443053900486707899003287858147326386530705472891903448061897616935609462487240468544494065488771088326289166098131971393866948056918622803255367615445993136278871942392831678388857540238391287883786408183969437442838098590732398601684464598771410961664751153776921551604418611441151989662831382688008860146820938742812691127767011881748733038461448232220176336812930617896046814801517004814916850630273809197131888200618977711946104683853620834999925382802557081772305285311017272052001577956916581743621426932309410334014656206793857588886019718195724832356441287749814609728317359083332344710184238330582546913545141165654416485029461779138252836764985727110087160886338651328390573695248769093812243924624995377244478155926115525160388368841599936590419695793857636685538003876547828231035582556048522476154391839994692618093931932806893375980841648913749823637768402457109669246714904848578948170593795580227585457111005989121821440091869738040350016487593842121039479423309565198823789109439831072910026590969003481785113488149938484506097875917320070759303063136953728392571648517236322605899091305564063395003066234422762927004107281516063294925298948155977155790917642603379201802372155033031351156919853550030555517504146458700037381443684673604772655340311541938008069731213352884349625638773886815135000109873428542478340204167187310803275872170372008670322451973570069463086355665782875676596148194068351326750806094570457069569280508995479399866306742586297275083821406810944780330781608004340427497973054690755264239973056829222630432121128158128019786020404462941364327290583081035133628793379779612125779924823333831940626819225173424268426105587545371688788874630296546310126978273695873165896016373305679249588505617080745308678408975999521055058338687933127636568654928080727266019238222086539893775427720460077342669443908103569440020532378922465899053302560904418994981687304658582911838843877530184281870670485543272787491304010583453759529155440588032919323370002554908496751027287290414333166895237216470442304645577528273699391943493531072743088730932618837198250999819318505293642866640747334183557870887147104866551580287804579028439175420296205082241594267688978148469769505234565225532352978003182662426971193691999172810414584524577887101747424074245045017037671675418586981002403883148234884332095053313693961821073663927763763337774182053223181114541172639871341951729415183866325015579351764288575244359928416969507798836040262743511738525082751410717051042786124273391683515609408201290352685845594231813266653569975990821017013732314787744619883559514449136709763189755818089345550605502304770007074606328801281382045985389276065322679829441137818242887470213363031955634495525792429639138891351532949775522542438317644943778861054560053504899587860328912534511483357274526095274490982460969318400088110339880859514383147694795826742424963707129134770457893850669305043489242617547684530023826226005142997877343336503880035804223820942274113856312310515951798506410655927406360000840688159617799488275741446906502232035889304052254007332797177700283946397228801082478065582715528196777766180281688012818120558454416121147321246973677196862721382124743622776897210986184074112430316480538433871899249143765579109457956062277814665533796322248653172281825442945800373812100994048995017160663153079576809381763032914768274347207924932920951563078237378710303692001481029410478334740091513408313390490881692620519829079639327966613663864036832301559715536542558722272279197433022917455387079590796283878702921921212720082265388717758613204879706371293973732059371463868326169536299557634060849989264998040812169932816042829038519495819863509327261607385661743607628585306579969998474602488409544581471153053699772509741396627381707279472578339130206158390917677295188940043518482410339893705248812943764111092719782545213832879843596441978172037370257904334947841751696765680039405359805240076817286152616927593293336596443655033316149433122244258185756262012092398736870165961734175218381189269126758837391605870168116070495186062000163920017274138559809203779527765784255971348823525995165583145696880168080090823262180958039936830372337735105782330671448481627464751059341007388049277755262241738283960843481743057974634140132163760697852948222044588806295958101891277254332799774054685012287860471443893705970503986164569944480254478333495246105300133180007628512288657373139852214540380338185928074634496376849735614294595616970079483166398639048814264192153825056610381328944306220054431736529932119165999073346820338500692952041758399996591679664239931890884498293413080489456400871042897053054768574979829158467795451136615614761609654460494304222334857422723376348381348508965511503705127427525619208758348715010707749959906905894095146270937577215870599886732712644424132286046351896640045694037399267299481693294845192642591119651243766307349585915961199678617465594317353060344736241279490335398973739248367894943220232498713906440133493466766452017537466567142986265172448093433384837303957561757118557769732222930436462105078320151733341609344003022512066716328773521464639041133319089192392123254585529117829732068239201655316378118293247416376896743773798985290720040864713641645821476265396113075532237693805733551253971340320178264349490041006294558678211024263456938912484848479611343059555121844580656220088780429419653314976907794928702828346375444835054263260208495055634261207789096423047380750621183781671149336172936634658318345463336319815499107751132640013700313746217628703495351444034611256342199379049110897054204594381815573329761710490173508577745572328872300682694841249259265315875999288831800500136591145656876765395371106515149662841187768459696986660790120402491557321273082744191654475858101526450863828293659584059434742995893766100046379604716929140346416524128907489086833032223689409832704155175147165397927105753240400734731665376810045394833124878328152650423685019818417902486371616865286885399871161597980221292006880568910031920493068081628122246879504881093192465974811651398598546270776195269717948032875693868594608739732913768441173525833021365422723420784090916167590565637201482177587442231126579320059507507505506316195762173471078068903891579522391913153128538780005264856156043829161250907257379882820510766390782490329984283670647225182126993677820387659855717123784506794087446623448341092014197348776232308504626082395915000109238880491287947718465795879411405514326015272610955137317296722851499682354087139953220578127762179595565847790518104609536652503802084586657122250557706219220919928204718447100078710648050122013236412150307671159727225265269115836064104149547713375250499530954666660147194193279031863171990101576134363087157226254387717078970914072858365552051227672030537234367213089338969695552349215792288556793002505897306145424761010514083543675223671494595166114288603283054233642754484789873435628594240306128220189954944707417748559999817471554755748160988126026793282688136634114722479227837843370105365527016554590919165098918367589297781217141030352255073344443006651873406184910202067062381017568128747389071394317255500561363033406531983421553065189280899153675778717441189303120191952934026706248845780955300560452930280159490427846927489490942470431489544541545462828737428507334587717132786301551153712092913504950879231584434666004854766717273278365535311828322426910978641524533704532933800802840388508535360839033779863921615965028472092806805657443464952674443398592547711792525114178507619686671681161137103659868745646606483301574794352522398687109845117367074317024921863202138886170390423727855614822342665056167024612196323838944152125691811296557276389944516684705792061724566423803021177960170023074916217081609301496858222512417371824133990675005433319422905934237630157688435369090982671740260435092612313369510214036489400921799134965709137173396598921825251078832371422447410018670490723933630856516943078162103667351829605462078492313227685303054648500234702131435634844965520539493092551203380042974908322056228666317271262342681167211940098605931075880828410924538559060550382073788635137155863446648288999155765672429175318627365779467424719955965907186492079530160283347759454666885704373780111757011062744988923868471425574994465311881617083649266059140813870089949044958486867797645256916551807525220737914244417170412586700106873084612599602901462783756621903994709799999036571596937377651340564669548879091015034962516029449045747576549923152625783571253946092203738538598866682823949267521901610589469182708774346036079626297707123619792194526589252967566320818122590234365352856434005004971629487056281799352605854344846306623884960531776977275660721935613996207231751941766015039466300142122636161150157714897397085509959935336892948008319321720090297411765417319465650013425554214257936777150515618015924035756084953039341018141167411821433282871835686296332334529285037049162426454010151980944766622451230387720804549384106160718658050347967294783087506036863979844119247770015609665099531049258742489131263011270880201813918604301098257107239506781255335021889693300558206542422925075586898697317226416897291099339354802911618196338609337214845039392051331683906552149371926042879117549626104841015756778457845977194494077276824438210164122124229526717561525869097462705437898106259235126346709138285726693193737339226800991942953023169072040938524044474008809229650417672653451028211977846570317754036766972588504861749186104057477543591383868031487208921098290333208340728583011242937622928067263267265861102003219367872612957578402367418608014994010655876443750900195020086865270653229515507736124126984890340799967213020232428085500501859382595131992616416826039052967855785305390850050415145051220096010883069104018330762957695892010264432782994487088151169330018727514903962732124789409048381880902258964904373740836803477056575891571652662980487478348745432623733196879033988341679134854274505817572299132598724669084843507652686943955923546823164095881821722467772357368964465122987900207131066369701507699847146358701579204691026011331879865304203899345730196875523695873379806802812016078610575133064707819785946585363785483665442249170567773182059686144069667829953259981402461565862050977807604474988726393036234572622068279328693831509848657092125340620619853334147354705084559068503374963364531085277075671848811845947989675915075895716816252908104848897768987266093014144205798732000162679535641505753554924530758284125522483760911371524380731460203946323921017312427796416415799450304095721865049404990830180968396571000866846810370986795054065807531545266384851665970853395578673160602136622005082249181731579729050060740497153678432231697521503864291449213455300921245357358577567850654597885759463240262545897894037723944724524846345584725243952308409010133081053395668947335639657676540664861340271495289142828094861151357513900747942344682666944037824284727475114650279647247137144400602123012293288363376251501817213268768483013126370240909754837728092868093647581167721735596960509163720949182181160752085681869093425787475051873409832878043697517077299599258473379888756228077588437632106861934578135442501305813501682130265235149657409419784504407693127820491270159703717124728097226416568661631803775200136467882303236957948392615677417978891101820900802972130025299937273699069725338836484972370909687923521894310713631858435076120100338014813138776582387846085491353934420566051634876673196707725361355030551851038218337183927075986595611901397250672613756680268276741258704668569489262981212078962517460428608788209150819988409114770124815444672664353424730440247343334544123601258689497802182861533743748484862672126251103407880627630235645544003375221056541409098100640401537920228883124316427820520606862101906638517738962829191440060465327125865128258192984917569981087648220870392068766180712492502971108029089961737217438543854717782215123612652351856090429265164235979069639291310915193976075350137640246962581506638369167724744089656558033313956257524357757291028988379039114500435767701470347321037056187583064554431815584024576955575653167347939792132941010039607146718680868049526060265036891477882092918729122208328920073327231589193615636648792354893499726113990202888835232329561346103123455258458549953811000170049662435452780840898229289995426398584340263646845118471296334929050798602445206232042330782252529226031407960704890718634236472173937197003804503914127024576397958610138121862663955816351227553627939900542832131205289293574524685201718327437589324007857528942634592023261897291275377924561465812219902276210648359029702654957482749696420087564498249012572501245249119716453527350017624655828744930536761434385791386035422534705019983692716956036685699319957694294855905304827381067079575116287457343272610314115833606741152322200848530403828933949422771309792827309057764809415007569352963948118023186884469599335905779650512072382198063821405249250526472915131666677366916739583376809402121275770861786004004727724818638748519793299087516417443156636394989041678584170539815633643122845718033633344300026241737903331758101797644570902755746759045713794502033543728443880486280293871111133369871104614621593449550599585257045587619533130158313268764491515787709980146944754417393690273229009167487041342199935065284810937308605493310468378949036563550657821081352774179368205014950871767197786154196783036989901038382882264344273359259901684101125949615967201543588767800703523228711879516398199550084621763266020396544287740424289304485233105315112836134461489706956357974152655313032486484118121416179686773075145656927088557696954755216012224111961182890234044791160277813094467414817058615870560460635845863746164781286297436480773564391202698581874341288545542155604924430914791219856059263855193987834613345574399545839563325821706498571274654212481787637277045482846201391614196848363312933516673963801300339175768925000688350065256050011798297607367853561140871671234382438624830604507338380496524871078089227801996784843417733996879322449971309429287336162687791490619955427445080208122776860989332082546291833059305186653617177375202877532845215116065905362986633941667592289251314430048885118401950901082454158312450982860381422880186261976842408351400549691691232583006455570593910554122011628354520771477494681979207132507658509331433678877815172186745180092165043756976722096080412735968535862952574663694092427407149101407896259970259760360342682034038497202599395053841735519006308686726102176906500866692554562837277439391225701224243449471643971258709059794097035301432412077333661344512016556600795247186696691171038834134703269584488762039369021300134969785451955655439662271717810902227254719856098272679967526254326764128535047343291600933905064350538438886839929012308309256541903815018219294211129052519983880796308544519873513468723373517771149229458143676943742807056302481065084000575758171365023934511400824887955965812875879917072492748531555397247123650659929645033681010702777468052538267728339135967031871380985918977732610941789425482350420949632390749127685680138991050935158615987083425122157799188702530634102373251746833291110888442301667592061664288117706822754000757956544733147796891870893687077344025903476110029553574882880124471530369213551213651053229767296497564299600168301716708865413562852935611337278512998086913641260608093716085472806579439490686454792961652597860087070753561418329982830664920058676295089018164744341385557999098523833849155103992083001616522812666793576578648906480781426315675612316657334503974509598972136461617752738040773172721208001210534830205050210221261811254074835682956010892748238045840204043376948281171559918803113335447635494153651803122979723617804535432848293191533995200842549710492077198300400066956840405054589238046108006738187307209192139387733764058206524491208479164601842365830595899420412624899215335612575179240945990180640385644101096704659382972579550295634987516438196946944394168565816892280416927462274659399003440217497835028408641676718474215857937520512310777906171111281954983012374429018884694670573497713115227638867882094635035136966682602888474889033220654568781195140488037923438551968478648771272266355034540555266423632832054110693380981903164611746827852593667598858314650996704749410320583787328144420029638955061718937449856817540564101281945464710580477585882027444072843682317039925024959449295203844002314889412714109767711173242170416543119713709214750240277485137366998255727326357963736083318452149734452725942790432174919558067514380867352770722464009244791359843831118241248636278186685442073298943476493295252682463669361819180767702498175278616220069901620906512588326666581460603037806531435217306958135099625642352838891370034209104600775322847322180349801261376715855392563138259714499857368116971584329120067752204657166637199331665495378796342357756366939107522538475045479119350528499728436863396912139029434075818928155812371982313737595327746059697708323005134406690000473904138774280025431442413978618331888686021218509212256251967750085309144034228882202676202539155167243949139992608856006576037827007574622851722450715021237138849609988576203172215405804461183697889889671844628637468098328447173184450781660308236072052858340657157743144210192622172957128407644835956179359053395031224828736100592487858368077929462504640861046582572560639673886057255071158878024048290718572375621087852294199091442991981371552318124389186815657088560122447833433884521827910348492410450572563878810309316264487564785593935231851724907447106383369330603957722596160457479221387620025023422090572026965269807185019095750107775761301198867240188185199346664810078745387834037064271024362501682736687420520090434607388353771932382515586550788963181175957774359449164767590450909514468472059790729730392514964194648282217317694812950863646477705186179128802758330225487715828015249347907466284619487833191156126808567524326778715150234300151407424808665621834225094263392099045531405177766913822721063500017854624326576667136298982457778785900331784538283894164123081048388899890977303273642359662357620054220262797097746678137967427841529532888490159304711487860049203147105119956227077298272313242660513373743660261151869722954516274103425348519563902148418549221061303519023334200220387430032328273371981238089359251554251085436312267487669673434708845237279308174926399139141025382755095897884662290512114084097929429466726897346774035682122440279223036232083762280227149466945374715383095489720753118173351174206305439224828064011172037856132970032639559539067712173694786479540642242439420727451415325380179159959032676464606844232251239743649994653676838296724522975679203353485588893401682175023081096956914279373892878779325155250705557839456394267068807447413891274265975209805087593844736172305969186369034099737840082134093889430138278684264676590790511339194031323973986464503177506397554656605986622431933254517877802672095220170606959601891483138785426430650339711006247388979475478634368061666137695381827306484655254101194433789206260197032690892306655143708000118558216374516877610687572589178390974557127689682412826704888540197118345163977969772946416102606597455850974898355403384026322639180998708361169195350325456376131742459787866427355941658749634021918309246276304874391027234908255449760848570440425891951193250761303027095248026566725686653391478303991821953325443417636443417181130227922426001161425576676993586748263201848816149667752927217866986063517468369245802961712804272073237445324434964114169314138483167438098922463568210656171837817927962642280228225561002617618564450955617743739181030732917058033195865264633895951898617046223408875059977798386620423148197055721104153779023198848413993226762474076027887636761602959392074685142465700836307939236554272390300540599848327281388013236953986541865629122742406234667692401383920148532202611742265865008147083590759162290633698682161155978370193604300715564693007562820774449954515313365809624819363775622402705888537500099298265830597179916780000337154237253761518793371814218292695668559763285227344161569304841443387693624800869433660819763145640132655682206724723109416859928407508574758325452476005477680982773418996341733741986763346349347943759746034969412920503657492091525138543639903788951445852239582573092065553878746991548469274631668083308514327957746616185702098108920186181029124268350205602651309018308059962437795862479446798132810906028688987562821474803215321372930330845822722118193786307414978658197763680088829415870634981602862960525540517477382787195511955348762084848295772361498075837865972262377566656621013871286614698212893191806569521855528064308561525340359521845930303837655750790811634575015750205841015488404969959529294181643041143979820205005134693824704448021887425083893286237803655454556581932452696708008471630709857827238227064835300453508900445360015302800215077699467980153454055394269828803370768581485132850009742295723150879054879550763432589088624637935189135517353397250789122198457854460433541607064380959414698955322434238465367257383064638331541050945484680183945268986365012033883842101775074895929279238087945255577124390892897759954624740019734516053776324380862542345950626884305613928405591776961554351226218934533556163177743304773340611030236182537860041964332074095779976812861646067555077347233741525119254539970200693495892145895438133849659302232323179547404732187922894229507923081736432957111601373210177059698706273716377544926913880139688479094196598830029528347583248953382162453358177891287980600994944921081829407919409460093395256881777576638175088743527519828904489710757390773999408461031278220697281678631472551630040140204155443815177452386761219818775280232414437840802991809721357901032441726642450568052223080234759670956884023590370713617573898555637473991436729018393693388545014361956855545851688966866253806688445310448227550420324265052668239826898012732994197352566676754417822298598624023439846148152161679092009072050467151925492613133369471411034559978715017972994150448739439591981889080905873168378065380645807206807553323678710184167747611942693037043424619217008127625146835256986840769088176862477780317237566150839660010643045560518965810890147093371022168579102574993886894436555426118351536080703410779786557866216111824400592644001539043659747525985191953648132435170140408776524474350104562340403783130382212593330223022070685283266981016912156466443252996805569593667217292766541596150936646059645943525983698017438132687770985219060445699262190368716905843927123607784506686570101811751879533715471351597125299280541678448129360505581938653207752198754450239785208459466552658103498397034344898935518038201210513514167604068457769490169013460075684812448908712582563445995539493366803394067143490027125128240657336749533344088079806819090923243960743547892821265698240900285241530103193705176483306112423784619981242569402738563656182501138774733242584524496688550244301643333164123142135339238142388490124849853030881162171572575381955738471587772674082138934743906330464397306117191110216533677948714414121147332606197958029873200695881334756286083663995610238067035824703124820928208430822345672692775447641226724457400830439104226953213349705333172505510467735516484875148708960756334336182225422907335233082532422034615972656307599369284500548644661433778471970677055006424193436804854015396348440282801397566862833013392223864887360233300618651215743551894622421037449968227195995470654879214843142311167046665488112164348509365087801266238832866363432104859570872008285743866107443876944398238381742248652879512758095688622068270005890457989261116136109027922805170848231204752274345588499966980392198739897709266272118075650683273338247043320261177009190143753421348230537772684390828926784217226351932036797435277058620120738919557215410563478858387076689267072490395602404462159972273271921648002473130854514736638030079024279081762460671750971990240536346767239163260959349982017724814935335658926898989709747929248674433032484432661881838863770418425958661710666548214588117468256235139050383306420138589866415784660326389141245305538365694990477493526040527889196101648626815239306678072245369529102176805888620963957720854630639561899967843705110876130935727996369333078521132320853926169100175313775191463436983879624280153683180066611189017750021774363739706204265976825081001545071682775059927007045978613090341770706677754599281236672064648836909366870145168133673306919754633154796551090732644250010451065296569227777680745051127397002539644249743008245511024703812631439093902097594217937600880595833056833527114220354903470287693031581018381440193446457425980617653394696618663554256441421999769634546427822855157002536946183757508329031020343662815805997719978797290197072343319472421255755779663434986882547795769202149272030637058086777293673632838779093925999845502483892365282387167603689284573457602182539218272667108928553579305831536477741749200569876518878422567277011898867836577149700451924140569609269695632875028442184778442563148709025077832841242629873062411826945427422719900559408374537093544315680972350954438197237636803398812277843269780965214440175798383549519778929262584068026581595584591598398476226352403214082860986707124809911260102831295987215383822535904498760743683087318836215516367949462424837542062905955533674515675776443991868824142480956885585103037929920102412776769952540807903160580054419062886763811344239154931855591720666405992450061670775903188700549403553573033993187135775500941537904909442821100524351560696719882068770863328380348949862247364981053846460099979753640514367482665906232058257712880259571547609361050381647991760756851655659208942078307071583184011820757670356897150717794688772730331120915025145141359873012866875084809512614328789147690066284627986891595105962613369546059786396301136562746464681991977514244034075905821041502608682274872880073315321053606404487222905196688703161035538930603389109224032787199766884173352662840638266145900260012399507355538754303287584886953344336043394739927190704799539984152539564869621866994733396702643145629297549277656765845600325217963424371411959065538032406202981123461446422806873378978685062527496389081183010132495076158819082855446699557936761019869402096384921427047872435156692681780635597177355071219178417125306187788173925152773270415068785660109053537878445541695154368830921715580938157350877445000236351258154922567707550643329598469250960661338905067164754872164141518366705088389975279198208124502791802650578633667987584291436931668128764953642378560280714010069963142033816179509685941213277628032867282208591495539051526306467516016501424227168149403468717935482287879517285233555150211451424239965822974097618118819345964319812516384407134172921435454115650727912193321568343493855117160117900133964563013175934848830221186913794688435464513736207198938072724161469052780590928594712762484908991926255936839517987373159576129858518845990716769947083384088114375037600793569703619306494890413842398931262923107180258140864785803906509845966310710431273060177713789836750356404261471363745924014031094262098723088656520794861967298543258548374987988301926314180006029699161017602992329199344721231350984322865117959601150907314602771121240590980571098927992048215046507242961804582225209911325933447727988864430445654064173974318040529850907533917359655204737431132984387096362967843341197343622123171803762769616883392966141070025237413687302214132908241747616149956087500307928823849238748538534087152392967560867495079587037543085280778238574620855868986108273644471380439383885711969117081332411680319158641010265968567815848640327049464593744346196913103089150001670129941608595877151663189533135943718492730271284108527927187789885365235025311271189674692322197984350655529223184280883667132410299283048974661031081504927823474430775876796511529366789586698907963012425140014986154539761628957943763205875331248636347758973536679781334394753443993109891971708088174449479112294697647049081339835783466966084646541183167808758947489007314364919201754396453067065198782975915964531140387020615151732372860099008544253136716873341236446197487633463190702231679592250222366084386162745730882234208742207169348253051269952664234880472602447576382665548984252758113645840018705892920961383316543398235764129958765653526405505848597113873345615440078710073196365946810032852407161480339716438613687550910204855152439169689145734557881226093520510663458791641244131634211412570599129801034921088764432778019803665746982067784634219456442606950046104695519784050260703978873073924129896383845198000070468454850592971811923793239710724925626042356410966451705527256420533265044407955561035624011947017754500216322335590053456047018958514970610885999154591691905691811612133334274385384880879115866991324134364179680842141580701967668355544416991474123327118658356098157986487937245435035133262368225130919890499719421239471434056239461746536012767085194563445824874220364133812575554674207704881651455346083418728152266300163107377506460646773412368652314408546605677945816552445193045764765747205748810471978578396921348046026552861226620419023529633117555081077561152465332773555992070496348130587994677001669607296092259915389652747940069720252292040695906841161720642907422519315201925084338572417414865768605518939273065309068884106266589011977548281614776226022283619800384294430686634756744640296126738242838318881036258596678743019792931823576035567981909618078122824995172138231112880428865192729923958516553967833959602202363442844605188993624754875274289122086093019906279264671550094128155255620643628473971607103928483388898698210906007551157876017367307436585615337553655681379645699682974374376738957683764504201294696869989934304215325187213683113961536219779128587397907258269598529614373983756301734401968739141587508842261933123984087304852584687614022590846884015445611769986878733118460626620828553799406678345777222045995358427855020142567839656937754413067813055058420229801866431525809000161479547319773670965950203694271032632037752499593064616005736444162919508152363308409482888812179876616525022393728477550659913749099106425991167169217155503313034526864326195202222330091204609111925733523018926064123418589570851402137631356356649438430243497063269229842285641069586622341284889686075790719657521491590620299585551993676303522412582263218044308111139149116153159970870130087232300425097592158888936071256753432232819425901676103549449277117093370913650426628914414959562939294786620918075936958890682865874701833696153765920618138397085285231533676238668567938888396341995134497010494324741769161375393578571183052721266142886668572525558245104740582939809039135524698578652875161763239244896984855223306580308799471219707437159012442389789989979763489224100948590399933178504893378903600073752196933828400843584127272982429204147859740522399087009575879979657515233057041165586833552005292176487617768804792813830738263596804141285851551595080358074714186478153775212285904681898975806851849590607537696546565651174454015166981525528116998228043455031830828289312489185905960451237103479330257115588793360060215703805360771291466259522468089129722622952809036407049061648590803747578981199884194026921536064113140751294655139614171815280546302332793165267728761776401542432856481404864952000206714768609275244015129270669993671920811048431055644529751503100479535664873723243697634737567498736237744881828754995531071658053455423925540551228264688446629644767992060621578612494672567490286963254627520729328717658575505597672842649727840337391032957600026173746845494897652381474643608946109320214749450157438495710984963305007035838552013284355951144596329249467065081566363879454801320902708364028608107721516159245017505343068702997513700165684294397558659512631544379109078828440144338108261633501409304116319898982040744126800971560161670418320964734679279778472656393613828384211631244819525145949868352434072892146994362335534447578670607379298734041052473027492986155574674697978827114300019084711615032387984405059010141680918414162667207842276008485999713612387035372947727935139817575078818014327893411760482701579377131933588974537742097518535383599663356741764115930761330325202238165943521191153552970805700415202226809883094162767501832531501898147420981394121216989418712676839726377716249243070073337719913165430250599156281621439031264686277216775899964185919811251096020684257511368361675782382034814219198740750884335625845164503613339492783709421553927408170224966408606156644883909526218387083561196418964530781673519937729358111485878115005823324827185921662954351854130140143317121481515026777645248369019742060126522879616889294744444540071278724051915288617617112798083538750085983928175141016803223216912901059772249162624443610944755262193553203293032658000903176411013671592774834862685360374320935742643370161079952295355773491614088558689592651066121595033524872541331139095258523746971909621250836492708068958824898485059481125088155506823802117381268849304893841829427168093128235329573711441573356865993976582856523997895307181924834898006261828435478006809608616527586433908066080390787368220140573610211865278124866050394364663430060480279632880943564430452973694155068351044000221295731741611573875952971899913578467167749462540702633250162581692365828696056939984052563980367294742595250312500206735379354992699528395472877946593045152597813426001946427622445035809798650416069429353590696549466346543046993551885016631418483020456140743667820364934239981652237597519948263408686321196395548506654222912232790550913871176392025596108217274006204221073300922085540863992635007570174502810156735438309580818930452136162363463356609352272961395531728344384494079040240438519785122430829881731732569975304164652213301394768711431796325716717191337537408669405367854299007511197160015107088896303562255474739515769214951218113419218359700610323082349192983357177392715970306692494142713567316958744509076451371931217972480112006238006277559600366997792111162849914283284482963649949420096721337866585332691912317878126064842832377334338707544577469748104391705671376235593870220748122555827274581860197733959918596355207382262817954268521380734434839178752254356614722895051544267468648352721470234569963164150102130123472343781732000482920546554103069660881521434621840679246289035368930544195168944912355108382389423575481720591483602606120729381269470401592301357287982344357009004613290794941394410631169163730853863275625464917047398323314696713693688132404181203219295857534579552443161551589691442111724910575692438825636429044834163034845765677262687323817707803337728114302419163593588297537639000995009028666547315960396017763611039865345419797188834230564175235164467834775106586382903891360488883798400814324768451948501236490457902265164891497318681199200721682225670149276870753882902210800564017839824566400525057021716949158301317150007521443701694974077659391792917462734418525404302269795986689251346931080214372995918461000180720972284563043131800992113961029695917418658001036395424241181872358076160595854632425795722684851798744650084278718290493906439758540754118821547900746221876999641877582253109625379865393056211714769421342078665611855455696250167705464077720806825931493928647527370826165182519796858128403365674702695192136350554212760688419155787093049989371758936565698312094179152436493357403132672937712713866621255437529688319833812646172942161208632626011166657283448049568429731246439994775417889597583137159682063733618048039244307292561733157011492860112544806753036351432665548917794340110501352091150725466248907701913288495143448375748527184667985161253309482129921547189407159699759137061472031117109306356941472634747368614258233325544237590979141173683830777045035175420632325819950705796947139560561155333767445866861668993791988137581491632189366544527419269749968578832186111021761732780235784259737207763817897571245667828935558443968155962086524170481364421141186033210070193720818010962301477280671065456740775491715701491064771293983404627068565330921351174519428631303719866667797709289845480830526017902658792639660977985849465046182154143659893910245483863125461387280685537693697599666301088638917544140348815500611492761360712123222778708428109112420096219380898495899898483073916916193074849416386371610106001788125587311228478943707667590816578560504864257502762716870121277153807877286531450656713020491869645257769209740944003623277570589553026634890508819912497080601229741823352666355097832321290533119886139835676499114431931487196619245622455189218622080194267310799706529300533953631228871363443107980519929071977929263326204416250416553601933921860851319684050012017028923309121470857818562561415403160142992466309703437526320944772569319936600430759850496517915069700514779040719739266497600886604991801715598332069796507429928994179800495081558492709593795308425380660963744920792005255578437947836880908641240990565995728014631905724888984171252649491559809872424579018978789361077626528205362822119923782390758898243425466248586574825006479774323673236823868835745353898091466104838538179572530071566555484516130382212437587051660999912948448898963072188159056964136254261778784316561679955101101564716781543773627158545430698873926032623566736441412549336432077080314440086442463732565560763680537686981311593851880695601222231816985013308296656641137960712081247523703162235080654385837346054882117818128706363778429399345561166942246456429461670739322045003411849220278923740860987129328585405575006090428416673495052849883814629496732432448049880942665675482057762804534850416260817876295088145372442984234518001269007344155552395015637230669716824287089404048054107198387153477257841529453683203340998781430921094145116408905949332789867117701308517956459525997874930530276958623891444407504300811878557136652083417371617585775122395144300627062817423198144810988690371405134357814590210283357446092016030935714014608946644753224108396890353451560194016610602836727168229601410585624111011272257283507003427359781427728510835111608534303926745709226341054782030209864332467920508295539557758685876751527761329315703029115788381001781417484699424592241905564326400665026964341664319626861502552842707237902870485024834182777430986618016469510982546972696225902995306418596847474731934712478671442884975964429200070863823435796960791163159836132070220997953581933560665948288762514888131392716808110178463813367847650033465687208431917392671104328123610370563953247089475892017711495655156939782281309082065949377087262469815138697162643991631822698641426582505087134418085093797978335913769491966717366633588100067048134113993785225884732740300409316441069804025338622355918539759350277687322422217476487967713095372400434608795563313516144717982080010870850424643675733492830163206893145590194512484425860294328844692905747459042774522009242225440194089362228698957974400695612439710640094301685826830814430354245470725089845308118949292387934418531821609833162441956322748055628090330726640648462505851388006932975142132195926377052226766379517663692903456952142223858032764346733096772652708330394224210668775154381151244312714415197279381086808621585647252029146680047094946221826478074039644735068917023653160652462153803864848238558256527502650037916384518934355439589985839689254915688355736622661624278345119626660693880414731421179620402563225591594981367296009354945438366747504453112278749683894544284590804118073884683036337585259524907366940281925173053384055846098625405098030296088587729993857460846801512351562503405869405817251540525008064433376151708240073886786804183228477427891624851028916524886634420895155007897873930943213394248142554287620216355823063212604245296083684711842747620197616863422523332840390066511842380890889654350298999431590985121702563991477217342140896023340443904272322213216984645536615783113928578437542767773051048844339716869123928078085319933049140672214656970023120556016443175760503045373308805608529142015979909723659843426136507974501723910196106274023933628963673744408439561398420760053252603521182968906971198217492121932654917488167624386669925961346202161961712113359875402131198663861186504550328810344983336348969482792197631484439607125931744600234954704548692225371485251222622709503629413135266590971973263471462288378000316351955954785677711184664181341518287582325994403200216135784535680151380436781215265456531632709174207022130705204500107110962325322338003545875187607722836482186047001706479146330747526329666102758602885018840430946333789857567579502713187101925734350415855751268656437800587213573658200115505922586332374464331047360285029005911287778861609329239190758202983408124159229429931304291625183277020215184496776805704911678391040609099812694136295671389018898138687002065770598604046337662370515317884669322227208676907730971441871545706424513286167228794304322818830039972548864856387071969190008085431521341635286381466961196289500892946436564901915604290137790465942020050836386681809286164597471036969309592767425331909059633463448173716220690007173765788139857235678393785945789230878343447982909565549475648040345996298169964018233223774750613371190933846897566588121974330753491944068043775256929874224664044782010375572731878268778593951080596367413097467342960924722352978909455979278850541123489982810004029938179953366865595964471721296111849488665248908718431973803586061954674200911298882927168480106909347105807491487438582740527836132422717625246805833619007355309630866142754380717657064337061844385795753292559021703172085944905594893330363396888515336778160061628634831032895550948654891764773504945996423673899926746704809666966053079126669544336967112969149196986747031832188793143716982664487119435550710431642604374092906325474049702454408835452218518700369860828572786212259597422876862843603634281598825999618426543739934423141668438201782956959870463167073859258223845078016010188078665949799727650242779449132953858272776721884018598621506169952777268917369676285727522986801531061702258685543771241945543891732188708361126020640261713159272556671200163983025947850905425706165022455469941988984483498666168945761857503844241875305501576248509393470403252521128325858530061357551819478210658528138215979535971590505233995900752306200347550632853041420577497673417845192202779486881476127585770443063538652119795739894326839926326983072107869765992079341898337921201495711528107144623853806240830822474284865602974080254520328401309634851061934351838838158908577114468226148794636714275446601899353651640453216335564351048359186262887995933018116411492449548716841743941961613456244309250032170748159847698628211481228290642688731281201328124979827654598360840652912322852781067838698138698826039609997403929865715277403506559716682100779412409536326128774010150924522672284707804423159616359845009474988703529064966268706367165907529178043613508624562588876649055053507067195121934766795806424641863774226838934561541574340097513603740619591642090443705330756433595202998983114443196980266127925942483778036425540688503921126620436821523655304992645492672135611374031478764473815075370524275183147309319633533611723810126335513033986162663165419229902645148784972145520756816457114558914765379302412464381201739608590366517659920753959231526051635756405684897893430957230616437703053525199073915978779123783723458039481095665517067203452492889876562417897882630906583268515985857482852067067304499580049981879188023070404562227020387287354652438240635658226339347810580697951743082860761924184484439530987977550304472216703767899557604449550799129381401975014794416341126486701822581480593527736289716361401796530266338421438273557462115205185060326695179580764231692993552048097741050983939335418941043183582034907731278704090052261548051539911861043117024726475911207121750303518112666311957228040783190156891111096257807032065346114920806447209413000890943910696431740134982474475113144037183046139061837317024425434620036611484911719919705151384863843780652570282917885749621698147108860855511952942304853267227348673682663177486713578339766218634921219663073063074747102900151295142584905761684028395735781864461587049931660494653634758956906400909424844724007832861489119384016558164546586701751065287933565193056075619539915113417929296659161785776631616586666813931112925554662783852478655379640840481967159370871077846829896360317920845695576782967710923152953464390932391232500626372644460636580245962944420741089705380294165137710461826887369148987973473915702430030371396714127379800918637523390344078923549124673660371442942554664808879726788848731717575498822467984439243617062353769688025736263447010320181371823813835229697753765139623927914984911449131767647437303293429094668238742647456195274263754575139962123642988557695171048727466335687927680864389373544180593487462080955394029094652621699171409415190558550446823044802891429940574102123470805444413066209247396920797332837286153234207948655806745335669334558112428996197378859585793456006333025955551588650728684144883067344434753796276282990226892131833158876382998212475845898445214105152282194127841438148044324031005687135432524174790385671143486579739947115824142068239762905605345353003487420531741593151974144155188113535670503375544670292881840170840935080454351538188204011558989431757321231286844555517604277229690255888551987150390810979601468936844012042996297530325954974473026119171235475801086766672752044438103493512950325662947645093772600718468841977463486272555014500241749944210292998542271345553231130505502913862724649968168695290574818594213899211895903311600334495016905159253147192435636114274575310883359686228624612758330121368852820674812527720956446234414709221244359966549636411690856915730153013503702876060467455351131457423334355434591250435205894525057902744933719403546100800030543277847367030272554879886821723722499950586904476493843951056484719004647474348770576940651562678737956035890703892306492183308137436815041372992894850574301084231754959683553781824935011314472503265984489504017481679144909927908679046094319026638952869406013695450654136707941008794663832804843431561629935925901823842945980935346583256740710539254558531057798533701169262944532189095196259947246217562896348512632262694946865399493430530209260089605900868311958072357019979061468314194335113417859860072721326229511323800962183930274828934307564438026869063972952005566425508651068091355649620897254956552030711805903952873451567473425070967723587447627922433405837593110316900118334522771516237934700400843255391113396829880679737716977022908581057901775834335410971222502251849594375354239857507638811690976831710080175008009525067782659937754915945680635452932503769405022394585535889683287413053662622362226264298743302673284955859637124118570132216238358132059122435382554327534138514167043538138092142113097486159642599710531709893703003825453797302084288330805416695710581628807670513428224973018752239511864399310381061498401120556021081536849336087018263684677486417151563298237515510094232124531722721839081725452580226330832972811290083485290559910375251983701503799478523859643647236225253863154743523634854243398271189206122423886230340389390084833343069102688745162896888533271612028122833233191773845364274341035091668738376546861511606680817505086644483027748388822810906941302052232531293169521819446353532573300650525457705479071354970796336147893248406119039606935244707277406738283697630409724474828094196228400393109933645278523789645084388369395789209511076252347581571823770224576944475315447851172292187505773482485246185781226042607762483271233373064505510590800347134720281390064475822174291670404130164529481045417745673531210757613856315061181886527896640732467500374526378468186184974350711618864097443113869547198003663644697715849278768502952194859813347794448437278213644170451646964248481508965477679139910775053944339056904778475748334368296881224281703903707501859693127272799082245352463985453907510536609531696535339024093658658092623560808013037039726588906779478485804100277599100267149888640755002649830756745452740714445214196751314048735639627490499521767342582731291681040698533830037569962666027136866234024784324420886764329853014855551449803786935121811967474936148229191493419060406178469547491654415407888054711202063518697011071257592141254486848084414752600401066164476177658185410865625062369392124152877127067454814192229069818071846131908860435896858952527264687891013244639103246818934745990633172292508819244985213423334565149956673880898481001204592496013524271337359915282820366970253072520337646977683426575936383234728792197352316697487397080112742813468462557066709421366591992077282430223430531611300440657226113781121629803014254087838941402767181428523429807526039826657917203125802365304545961176253960638755749251209354408173074640407093165733812196002118740374564989374968887808025775275719457428040572275057343793524469789524816078934569700909130871816357863684825447937963645551169659688254786661077702063399788295486098233960833674451802424331463620772502435769380273586809360109172735044927366350034072842138635098967970904464967739388963634306736939704614111294407525765333755694683981300145867641982260204907506539586625787998209035848404137673885818164907121080038260108064419056822826037585005204165720361190598927660482656938385072675025833342905712441910998048383857180338495392078216539415648813095807787244288938483334204357441566389256321726665191944937200819748272773106243548810290559868591379398130272729543839109527094951245783562321721703675878702369057081108482359044658648894094236542728570535480961829688470778107322227233214797223393630709443186915672917205520761406515627051624833615853008814901964242079589805286966914872814060723842564274530285074999731463939935019629671572603245205667353506345754926970262574877048265652069556119335323812585215952547939376904381962631524332885610810942141648429193358051899746681427259142260029362227015597542924912019890511957908592414027393248380498006227592388622614489274415560057003417619955825547118262337691115790000420428903085872019806228730748576216510154235500070162453256605449038891344678397160628018456503229581258891931478430746286950287355921727350653304977299500488156376018544649812733696327420743940576785934171416477995284379966786854928069972781366335377102580583053944134550413869494497140789429797322052824723776314405475470899470583548480116995618589973653416616273148821106983967046080403293917827441218029264323292809799154595269056522831884486026789462071511782986497695984396380830112163267449137814601192724418503259012167310774094466440788482891220930801020247934475036835207746487324989190155877192564920062846089647910636854865211579069201591769246952806798219738985359637594710663604832638035794168235418561050713990423689893719682424550083451186926139040732351824247059585384976643843291583589793675646545685985397924033332659233208229320436023428926551036786338321705100731320483731749612357281459064395403110403845113283711678820784757536533479753861535566269269172543851260750676797792230191387664413915210944941694135137772244490328970997883727445061874185613709712892046999650783896622688969110828220030387674758307771251404481270145977047083091137192652565820382414506055604732284977866942311274673630012875177157062198418535017788142958879010379081329472707822054857163307634634054131382295520477026100807612330437422477576161546196411507858330029612360892147247658053847641168400737310140841479045075487480387346876708020263164747545780572691573858042534444961762359672025820436286714493426594358654529337429555007560483103767301901501258848444427505922115634164148820637172773650104813672034270243280407513715479564972220069833731333802139360778207262097944294666178398972993084525295705939009991350033863947223557439794998134264927469522204598020926218204266958179703411290607109041249413502944312978273235793055038019212067104250318039010820528869633444318346848022346407831541124366441858496600253333786369881568553948032993181420025338309996011759770054469973938857184892264384667309146127931387657195038941864627894872057279806700194278481165291008846177576195973264206557480666616601731824565015762381136927769856340814567971837203651215869222170360256279934681794951829664622502840105974171009087455220116275830626712536833187309415804290863476149396825417025685460678579903707744197770661898337482612763648415175948792284594216089245880871425575312845942886172295696367296463618891593602245102272665836636108978962026817114051954665089040240649134775807016592319796331546570496055758793514188880293392330056591790363285434641485653312661437549880393619101195478830605983345760076700297526944294223784452420795916826022936865814903356852236106530596001629180172136731906497359385638527890545043884259808806446023240887833692835958354827032127793711691085214411886791081451984519724193653903324396318546055175223856376661668313039613309629360772367424200040821828705161687365298465164069690984477545401458252771428196297393610631160886523901395184368837219056089334999142642928290866222486463718774058220081378948466275267522247861688264368944986239546769109684716165768778380905710028362925714616764148968306837209197389060646039129054517350837900134845418408254762906685161195520346118528310807686177035863323423842236320247868286924857327759522430457625465426315292249394440212305699531836100236024964200127036841571125687563094692798219196128064497732290234304302818875631434512657290212663809410449245544968564880088307415799948506901424057309598469277970578297439699360212461707806234741924032219255053853949500592785428599669378117946196971255495695326774212491235185387584021782451827502067502525465224627394812583806912595966556138711760581539543869923956615423094063832903375652375329376030890917495008415313940683708304052054851323979880486387178818863449659087812222903289553498220745830734653922103369066585993926658092732662771828443530825190233174235660178869320016173628931069526187558705174309722380486942795828737610968029855479994851661596222870692648593452521274838272470478993787815499366133647643953465800929306304563060363637600617301084332723033213003818591305920663914021896404953217883737383356428525570328638750565522396747645341047616602039677209917318197307130137970002670859043615888921036213362613495168908953679905322212548782875465012346282758236947738772947271273109529092450689674335629991933792611446379251371889504342376637103128430448520754316970895734930323926951487221872081564899150237604016714380929443456073781133384320931850174786343538147255605476065517606721539333279236561353550980718622430200647146941932914308071326335418209337890985771686020815650554069474438159412484448951577499172892546756105777429830579390769317601728999303071972904343429182149665422708314472085276288769843084050049294215922884605478373072254358275785659117363761961414247060378248638550971182431749682464188366533905367577991723400881603654726705983984102177263837855354450855859542511525183284120303697914619237824392338710524284555426305846444571036103444123530485205829539030182146476788194696623545476399897119538269186557465373101148834222079809068579975454091323485569118413071689792638474430683644216879990536367550244807030822544915428620734757872576684197165438585552959212377561302112334363657696212123615867741909150558875796922432578615671941772832194187194917105220861459014827598629951689382846627724896480750636191969129946040813308472416693430758586814298868512402546954780505288682433838420099393961569881846491834280904293314493016140867420159516117440791073485691710419207398364241928013896564478880962729066762174857450047289854061271613504222527050051947497339092273822696703590248200259986403069106439997312760186885784878373258559428934999052400945096370902540145470102867863887448890840018092797124525941567617524013515934927035841288713901663003022526571151787673151658594073535268935062789243927051522684058168594980573841620961682649744992644185956847931227207384210811124000572073712229212684531626003446594563664387427270008069228148905557819458949578832282887798306127447589349795534803437628777970760590351088645165212672903561504452057022246652579741865828091956475312795459967123948376727070327531940062532182360751953128583509560907383780661331961681465428118446933130513826634038461762192490233960963984441621970070064549282963333493561917307813634926306275222913897530518264261868987000551219477248166011670401932718968721431913578895692229551139130433336871552150557559875961846503349194174909717995691696581220261881652616996669001648765766341014975126382122171963983652356782657104090954702982899793993427903743847468677041847950875652124740126342410172493429504977035181323996508264775037439402571372664390704251937375406465334998341413394892721997206961086795907068436238836340990011812202660790986171087391491301721034891848619165569712720687819125937189860783915442339185318597438199308964537854198108775455476434635864599925358740760778511416786922186772623837825448607876763747646929614578514692683506773879890832074072784663068678204096482176731252948133087634257694447890339995024795768488756994381382769904940084299618004770382077046794815994843905951889535144478353072111147938922356309457601995904870988517576169568077952081662807487020446878401663611343299486928633315080059050821068027716388153467136758912973748970664058799832481718216702149632192486300398758590288924633120594833686932852726439308570693684749158352284879062299430711516190728995876062818865356036612096114938130722312253723299398159592042622891361783998542392116165418399606092759180104834605883318370208484835531105630212933692491047263704092267317606727544421802148101571586400001274984105556784405812549774733997344138527804119868483027519888774901574989748828962723035308042808997052239351044676943860730823382986630345496421819659871437405629537270209254407323442137927804235308938091239521888213032321384372594991465966867725725620377029700167567849020135035615286174721123276170508437591816144938718288548325180251545561179225453676290315205458026924493901058051149757635072178706304561376911612627429715899971118022875302971345855743277741213086758643003218463026322758608279666611039254687252845144695258558941460392094844359630928084603986081422623818284913434228035443551698405068431080647064331126873897614320885612190161653925053069136899471752767558414553186719632940327576983615889936370919857026344297503511620941965386824452190750087152601033824255790156745239045525941042219474611601633438290117306222558984147734039047045055896355968649658976186762033338015951646389284519713863644031878980938168030407827534073472169982852129855388476863781363484943274351750941337372289747653043251433607913245498625821880076086909006935480653193931943823400839850841234730836751857002565530217134884481151847114771918167189966654727702681872406163425379628068645024428781247983901493326829767106912589226343838338069575816752476086869400837003432894626619629291320662374322824654396646095602923622890756584048733262148954895992901060683217153589655901629043853777895669154179321323654061919663515624280535339860909324557960381922783552515601100175808645954055710403617102815282070184480757732641690838790221161717154828824163044291651132533336648848438844638840919109843747947903552224307217146506681684854202170521417716765751575493469592071347026916953692938596963927927283367067870032990492525032375738238310423167720397267173956087733173827681694870084406561729248637827868863781317078675805781364761031355758538221838025468858265817172504998598560592359304639290761863293320923420029638080290870750428197313119671596323427885466845551726875983234458443789608233542044338523543799999772857273619230433318783130038470240606203748646361494511936436064691627220882887499792731056869715454279284133412018558435100569296487781645384297753513138225550063719443274502776515672987718301445765431327840204732785143837776339281630167652432525556441395299840110892046412487229280430999289877027959261622974876181560172525635459394327517415290573265818743546985557481981146278059956378793076061636700215904477926762879197615686152515314486832617725714458325664416208074797016666243042644240345210440220955743009720731708903825183653678693116240436171508341509212032878791805924026202606479490110600596638375034866299898816060080103475958318046155307344804765304856715896052741185564037351800482646353208890012705804295713537473785007164817536123622713806014568713154915173372461421997397254192787572875898364525717658143969425325570962254316763031495095822196951275240605674015580775964018118208825711250458988863062514710447085697508675012917942666054523978177621092274916781562544373440724147200764528322436084751940391410196095119619577907029402405523167704141547555158798980649434051687080309892349901597073355883346698194922827756142800966596399623782245388902708906912545512758106941591473470140166649561509837377163614305501227861360848923846298741221929057206494971242214921622810497822394358170476645738739446665599337063075618790836672530188037429282121129882465070641959045600924339974428074246833641732224420064432428358551660800592187334456878528650876387301071793815670852891169233823997343802268523873166383243149072601312260992304686730998573939166747858552691176956293497495579921963736603533214059600222456570343799431992174275242428169392921013198279393467770964599973102180031737868214810349509511978106776604853855415420501008947118805050164587328391748527931303250457118946268756005979038048107575751286054571051488738712381569085105213129048596540693697511138630382466872389876276159372800509134451405145222389175150542882855353881696747571443304377887515067683856975998203150524757509856630202959265048099432076361199389636504105260069744975541878235200513203084230181654347433631729038567049136728256331262441178336571271179651875919985699875291103884423681318960914865166759773507054792739012270964787851952875392944991534003520660356924201670978377449584645771453946626311990881222297242627677306705232860999031646921788905369868507909719536929709632780894434778792193451745937738323804302268514213882235271737872569244586881728536968038822260382195471388469550772965295476070822649679857671300430009790725788953384696169771402945144978650034710668443939022227113142666409208879855568550563523313836416856632026492800788393350053865666734179384850592170671303534699690349937036100697289014240871908916636680146542733765319660999303286573923305951222274060803412895399681350135834655381894091935316738317235547291593178985462055971434067985285152441352189676662073318642440051382651906621223467933291336883640544595616706814656204544596910353072187244541181781706835824762681627330522230257964530995918467012255662365236394956351778542308170151488119015238025409467697551870638013989179983391057843785217264656393142444932005040463855122100098315019788313625777495841688728921208991250921522355574427410816462621502001945296359741858479874898633159803293387647915247971772990502140815032975488120821916552484951049764451472581983766316219956941522599983248685622115562481636358409538518369190147793712478966367815606370158449143433763290365527630551881979503173101686220281256677469828841907797693767194894907037931217078369686946771548878228514886437011374124367693306269738984138469987626636000581106798567396069080224554212672463443865560740639594167912002893612398252051523596041393266524281917564974227832973657992123792896294042707387130969128662154960003884884930983030945152237142980936350192054699658742618222015183778789239011793320164116652318605482612071518987962675546106032611208209407137427103607275432311493864954943343258906315547697087435878036702128867463894786309503384981719475948435789331431589454418779765980927928171383088807055543310215851231451636821535609697816305608079752182546380978009169256937603399221157146536022564314806188893188885344195737575171392654673664758108495153120083637175888169906865960558548546473561999345446581325994413998029789909526040080442688913839335750215325236459685610754460080484634724272688886397457088331230217294945018698069402425619589096653493532325646190317003282636085647675885788769074406792962289777822485183768397334872158102911398837405691599913877640482305793233775974661659730744721625078953127717446750853176424993918337550401078961211342920529868584913873507167234637984414043920133638640161281746652366523399410719329927623761910355873779788809493077844219190571689298670979450311155819437950569973187532570866000545794721014561989004517417163397880525572709788111715183230780420264800150042839471987594499858200174535560066156033170860092273945402524741943596338549635153332859933080969774505916213109185265067717611254531232758568612130083793709691755997136716674959740188876151075167393487283229085741269845135908217411166006134953032507432916745309379890712720982917270492454802913662238978157918410384842746705348137444134226894220810719146575796539030048027493652589478466322266543566087850277436181974583342448733405250140143413313168966285186188918712604829450256584219372832037540007706726870987228375076816737015988266892489327096670080658034425628684557810571942397758302663918775814954670238893262611565706443109548337714244484430410211267446030044881721228405332143543561055979661325936896381861324733174757331996373002473256893817664855004005212236357198612649198312654817329824444563177131482491181772207427907934813292056511292526618322964826190718375597009782546977914183992120501731119236889988608118730694490242322599263196626810783270124927968117738020475537462416346609994590357499156814881890776672366931455542521377680771973898712546147392574713011471475509430367729227274375490411976901516874164201064970076334079319822340681962600916153027661497775025143347343751267416289587021923383804029911246595495048058139000931857445811724628086782462914919186980966755690458093805757629538198469170941057829465939791505471416915301332718792556372472020341354388149779366838578690699903516464215800861213882117424902253592968423167177355344488307413262331831990490577162401183332674860812318238692694491340903327531787015287702617131584900337132910894984812640998460846466944043116371475477953905199645388262565584031018272447061833653966954233436835548282636796759961011001265922133646824284657141677362106646206123060135178877353010793633749658627596848548490913864372011770210229888323412756253349993960378878835757170020411214256440276332993883641142387174975245712833926264320977922749055537333685437113944921589091680483769578398666614779365584047038075698480159508637145400843663877355659687839341711034431811059400609707287631208049663921373895226820777681516081225212771960189792938149178997284308432007315662704224137460327044095364785845364752907636070638968537932779462044924544940122357212646220411231805229246328973448661229237868604785403560504446922799628878608800722995918267290868486787764753625052271643390045057742715475899262272475014178881599856950904405057485894688505610728115995763642279166831792488604971872404993821889504398327889419514555409984193964843667067029262385112292876045964113592504202532770667109247152087891674564385579579732465031609925655715658386439153727004263636378805778237728434636554759114289597110010947658956505715557024476364138121343557844128656341397944172668194283319352035816256803568495411813660845262009748817093421219595627602772753748789625825932340739018693651005846689462379217486236588631580140541126793100982709191541170173878432429749579415693485744371139166090306604488468027010263224252325191839532412406400743643797455362658372555819486194874585003843940873062413813174202285726836363638142858128556812490253539692774748561802718580126502256389701967155901556215194814291586749345571707554210983446833391552810538668799822963792004376752437948001981319142474229437506098840801720211677738009877330835230145555183446435249993560063878144166429147310552535783315690244914235793194632053413269558289237240179415851386940967954330762451159756517304697101803766847225011214220673915799216781406964844271986272992468493574611896936069373985073200642532756538675484649952901667945673583035038909189502928826358604679889407115250529777556014521849243897628713776934882309514455364226276564180973191092354562875702462138066394207949740628151799804008286485137066124757237467784183656809228972248936306594375126551843120376970000906073891467348279708488937142120399410394290732030167805349953462753903923371405369414182123515005990241243000316854750769141274659048143839988935425336969269597326990813608833585022453447428546123538731285219284835553464803759844048973107234419671855936645996510091324332663449407627825002040653427162345150017912407297625518890367553895350672123730225256532717163837603045407573975831818129856243899028738239565345318746144490366828891232757422840612613729357097204245288928210673435947329739770563537148017673694430854533313638437092894157208701338435902422986815173703608167258139079747052426369476203342437716204214656463680094248088184679230310866033008884712816793029520886128532160556090981072963922935665913192970314861847369824662327717920556525915988305795624079926083643027032649813509235261428284643824042419412315764038254871665945656348729290111969997640628108532080421537544162568278167812102860561691727222411872222926434164675199343478408579205823555160490982584002267668367052521385128721220743343940610458645920582196051510046519930324619452217127251180132937604670103235923519904502109906500483547565337437060959171927431789217645466739874253129890787322163464737844937617030537635214601626240814494432036998419897399496128498119305651505521206390927788401650587823617465153424131942470215209216430292888081964467844317172590298657452097008120863929273903495020200628634435233203321774137356075240935168071800135931910037097969880022876961869911734144274876673136527676314967045169753151277222787553008357182149703089392988733922236146035923323812194086709189385897180458924144602372945898286576383265105611355307258190579920899490169795403883823564640596112862692056596670387733134001518243309547713935059457321101428768824724677940738045721820279196117292173185856407718728105623202481092539123382751805800808626916183447791914712462967168261331153949157388424959334984514734809033233395519140595629415882412053681721896143900472025420421515428610505675731144029068196837355406444903976181160786645224883892142601449977171492799787927512726683283768768871905095786206165099015953284788269228236100579557825117005693823231643164339301005212339896817456662149495760712532756746358529217644506943173383161993137005621056575876982395354935309629280134616071630035627123987974299602509617035853582621395650474583883293340598779060392473728842687580448860974958868210932038052655771955567439528459684461341196596933201772493015291447184526519170731482069791189093802388538263773479788827107457164259511041637526027294870114732083846084820298647222107180723106207486589995954196530518795095982534840713922040552455667888661784189383695177916360447905011759902256329538154291884553888940320602268603791075537056782922656215977968216435087534042366082456247840820230627081422314237864748402849289966754556183786762194914601512378789110097167217106240714409461359345380380420298495268585247046355968112926133747426238903921214135824610683169618663290765375651500064823954104114308646043988767359109937110855064770568900812766931910433718223398653595838843911196773413709568699510108719600657815947005109546423088975364710670848012570360362499956095281169398341550446816317319832410218769151633444143057487680021228930809758103675450750065666140840040846442390392990573044856340688806465444294896097087266764859312782702897080329072879155679681258696661144743371148154408040395601868466446190288707550962782336577084139333760637112371244770576010420512549963548463890854633825810311138312832816615750006618224381899023820753742067587058419372744144324373912483358801736726998340570671961186301695138178901479847964616748463349271968938810165622996513391657957338437076872193116297173181771437775672693378856092233360209424147075368946852591265910697863723032826019228821381817408268512501986571425070350049805127618885418823534330253913998865444490499890931813561015635048380380048575300520305667338402395581948948157026503599050276194239070959269157696676316846594508301339135849992903691997297961570345117591455303156602594366112449304015227989581463430026042040381916147131831906694586183899977173204763120082008478736355663331613588740305196856569256489633470886017146087712089748228107703479865842022822129528945213241862671270781950891337963934439818182872469063481963984215711285263611919638074974509286100868824129981091028456239370826996490451790811081121739807604427147464710955125543210026856009799982198804694565830805189156031372389024561939325370186510548371253772489374894996329910539275664096101277429061581714605007003665361400231807091051350004242299539677117749172383408632115279205524712837155584053545905078372846134250143204596088307487488422188216837404387236394322071672881009875060031002581350650621632893017941585073765323282428794857557407987772107471465920035695284571308249434234324578590322925920344405407687716174139220615148546722247481802893723402425874578047650055284833972477162242386122392362292469286467294695686880410579880548317817488251457935838079461645736038341315294639949818350253678741091760057236163418566664599046182708297675768713899821209293377062413503968051251826059758671265538490009845224357002931274985397533320694189561193032695990548792652457358960560852568266514233317376879576834089259552458444245540085458162944146015469296320078719552589077876716133568908028508270592817107548510995394101792932865888442869195532583886000207518093865141149851066833993491680549650278593393024278035369960486460518009888023287967887742694151940643264954483562308323337851654857245805773263780525628826235022281598192431644541535616083124355322507503967001453141996127787840751818070471741698322586038038868120847409853472810886085874431439529824137152118448323382135105950080455096368064985956782381920886360124508908889200350589635992779635047818578021673858918116722829530211888844356377554734956756421457249078472141243735057768788425129600333073816221198065909320162201565626883974611026443345543950943995790662871723012766222902885489273745919127961679745156910685671072441535811016918928971752225270050827385467106705574616432598481097427909574721728417258349617013793432554067500983905115704592839493571945795610578369245328829878478957029296779930434362982555402835909141103332811602028172210465137436647616019777665116027140308482998115869054312819976514209614174404169514696500064778301401832667440671297743646187475679833805915324859129660056402228784282015945184558601848634644733760631262803232249287969020469341895336723480011936133653940523031283092617702230071485120061036932012533999867534781480792505625272013649706592098746109424101494293687709606998114160386031525699515308246886452242790415570573899807257342707783962256289467248451795266622614326449331191368069850145041019483057203227267988213586289514324351439152470517549022879004753241201141938342454355824806824054375929635078591400193327516617661993150532828484463795656783981254141871361564818634782694272845129102771628790927723119851263299801833948918055123272101333958996712341273317143021581811859002550049449882566591924103346864572183098641159797374267566579416169191965693504303962594656804838492286187883099439385611835233149304781585310563644642015945936313741796317005221554079617683462819366074992974200518279339898683418098835387665501274021195200503196679678837653189434804461210109081313179813395101707339547867621266203358856538137954405946454327397387586687164270917139447346929316326376004198005448588383298595693525398289697462383638523303917928799346208904426326069045204098111525051805133211001178372362778517157492401215356746918652057828501165413393102902140474326841620053489457031633693845911049797862575203521347406205175419638567093809732112657660187148642738002679397549654062489653392951639446841251170805425816901193291947668569903526058994274678584325068034043372533296161261323172307237203315422791149380564063966892201892610201323021901954184488366227191908806872005407394422129154060761196256375998406210867449970600737443475827797459483529627790604234694597764370876967838357473824239884974234936572368185498525764963012306175106650413101340775660184678436780601550051755625714018966464984780834745004630637765658988352854719113722238607123983470230847381137181851604381160541730972125380729455637844070467501888921921606336579090126040234976064191238872992325264175235381390125309446257132032446396121675395945153135455539806634812976840341118358760574062810425593425622799234302276709568085342958295923173714366407910566965900661494967347786569146108242982344714801128295609694176569232983660969337809919359640949471069251329329264829398659306843808227518270910470088594117217776181465444075438385380392002134026787700061066027460643089374450713446318099800146716977094301827286414896878599681822672619330587008967901710979139076300166941402295877448014445630797790799651217314555991716251203102183521714661771494418279293918370712005460227002746697883658792679600853378746387742241203703567029629167885784702363360577936511833321543788156644903908610572096209494960722398298902599901712222315098471459785091367127462726970944221524100172442704973306012001284783668156756117931909174079717010752823226770126666143927022128425239667942619319387416742774549817781954274615493208756148131154495722473078155487534765567676542051877319161728753276523515432273852341194468669614770360937078985161120701171578687223724865525310773999049468976335574753004300327266643326857790530068779296055753925617833594968923254744560753117657311726357739291542382875023835615851292921238198970249661025334795367496413132428106787345350499200432879297261162876827616007751419436810989709390791211199319191893286329020104107863996952721600182899787363067061785473636105472945115228845436758953131538942520523002103495072880991589318857643405504197324404342579135115290970903143531426850681238345514422787910317861035129643175384266251330791921737774634017299619987922958321214471266924511931416339332679657848099284604633402135136977487180023547742372678043425722655349375553883004969495772690840212854465442720288917011044509787712015745190972505412996378117522639619992758278981715368464734545222895795323173815908168729960480156479323160209850968596612419726645076486552026059576485809048433214505681056513201268944477844073375693498021370862197461756309217577594395015509623112451347414078233432926058698185857507784311793986368182127796383392014817544785569798712338103570995518248311382810641887643180906096800852605122759370609941710405262341908083670788546720593786122710358955238855934225113928821534033389942203601191711898174437304902331668171038285662942349304808742328712947711923054665108767050349258961501325806730834065235241358450843922821410582820668691386800562766050538055438269021220648780601506138289355366687783829760074053429938590043000260636648480985857760099420816398881966887349215709227881359583704289611057914010151998027754778463364442405383770586528715596527584616209132271817937427638621025687505757252307168440038021636999567293120522140150940120595331129337186523533752246793437682992168768915886980823870963022001898289266370794343897703799779935478789818663814548130394635796438126584426256836034410372188546093310969108086578700565727125870591623485410828392328977222314881040481331651709336866820012024800003414946703158865882363882893946396503265777902141391281423358546780207269799253988670340422651414828065207430647564137825345366694397368195843136391959912553307658574838421662576200017748807484099279509889296501589860820664462280006701827706146269515810490143675786102322219970431351614341044366731266354472009256377928963149678778922593804137846237567008939741755890272971710950984572173363495889290012251969580443806207042128885013141274627164664255079855507499919605131145421945597485255738327779542520047513023133556909076208353073734994260436535073335528821712945734084897452207550961985520884218962176191766301616226551266744759740678755736243279046286305870379819927149669584436078753792516778092988102198168188549648667252424791188500269048211175250512894505966391851502482910146697748959148952998763005857163457534294499004245438897219996572036302817941843601979488188677680716433567145041747043201431353737994386335843999418932479811874273599071241454925469227981133126189785300197427252772639183278568454790804973899440135968301555445777508511721683101427188061471510350385474434744611933990191215876472197091180876161068309266998051932851398213429794035078119379958398141772682509749801326753977380290902402799824701023839626648113248378813686137496586063722294034459400204555904287314042200271818453877327976871656777821342622835576937306914261588564418600295747051407361784745887852689495242867622340131354781852598244053339799948497440236306742009979053399844562219935487319473149784980244554057741707724417704561411819857264426299151842084441311525150591446251157293075178352342805513746197069934687031193712633096027546350218514885680087514216357134313135046932052057434967448337683175483908857119674974701740009395979583930458332924867710039345748149441094987575385806558443341408072374067436487475196360083958670123675300193322321401390720452896596850119252854697805098353145245454833069991832723958264784378398291395150343145691110002137201604928785251085461193759931108707006603720461068082855444331395491048000282905601983020157074832342066918664461655808764455484837954616986037284035859363266421851878564672034343658499506836921737080660448189645710553414011709346459309683741811670598386466871521966043151000082375291556175419700322921844956013143381612646712385326565153117052238108618184922597042141687849290561860055212197427687323598490164046792577259950383246207112704199447439336036938553714924512974271184665295426372502702440036308555908383627886315159792019696253368560224091157505914465459985945822736602766050114281252941724281929568501477526248990706610424839129285497261131428201799324471710138398995778209003508425608334498628973333701842941571070092232549130704207611155612342695449992041052625499079404013213026907396428803674506299925848651881251511662966435583576722393429967912560311876373665837093055209945510870874849923715374193352717715866765320181964696795748852642581963311793711258392603210113437152972613414330882343883257467701335954154763771759393825866069301355005169790778536042695107421914036004384259037621066647800076305974479646712798969076311255302101065233990982564770809397664629684196006960052946210704339236243841207804814583542614499614447696914919561318983867870573242680596323288051189169722081247021449627988458656063603221139795685585898568836184429615829365337054890159722099512759735020372338283198932137681064609837317982618507321058377974695003386969360498841236776792298715687270881548897875485325253754612945765015414042417045116842453640737958118424321115136032172896586454669569218076863516724681737547910270625282935942413518076527559836841935826683823113804754774024367250722228536660626708643686421330114103920135377189651923766779511006082846774938082870477676826881587245153978637563451734642291427123735143879365855760584697884764278783168605323898740769316490492518200571625480846420196494441959011666475757077000361193769140329303064960893571976042095290876681032050228973629249627029287082132829475330383788741616209391782951557257938266550847255360222135312223245404649859815025093642164032080898587100648300457869998644307472532509785941782680106422900168698354462397178268255709071460467644521775965404028716887987199430720463840983381428164628234422143809680579733098238300688960143819391695423312682188202136040433942513215168294404829244471808647837225068737575320521361952901799757275064982379741357120887401179762877119473926453186004765933324643477595997626768464918612835677033750804353983708501799085869929793807190569942447189559078778758768039725138555798460528480108120280564060165596600535838366101279473925649834474978373004454577783905564399372662322255572053169132643399667558236912318111767367060674488145800022880327114696140242028651577500189231651248700986453116486951486358831319003711354796418571895707494925414093501539019205537757051766701546771495678326646524255578148846923670136956566412037538447090437043802466674401537272003092893505222906802580770617088146578138361632036596026107971199979606708495214843519050571385262450945527898107134750617798662125222271749912085414754641724885692136573863007560355914345607646281475418183359993817870569830021448885584094834977302723995461874995372617941783888033688307554654020375690247858323630247224890124329161203535464907544466416769243982512036637414905845873858015079799096847539678686773518683897509009502025566859823531336118256028370344925268626442066090714274777250268093516927293900884334756123431595724121723385681758607006281017489011595329927227694012819518068449236347513161211413169687811512294995043985188362161147196867117262238950950951013228679029126744704342328505471129212635583149309611463619142452088727027037293431619394864609055026355211365318628525594154803160822404218342190125637285569140868096520809612013979536338020927622466474876295326683757318940333556689408367612381676127400077596539803024096116290386154049744090705804817798207322564213622947320916789433717650503253069497795470515255958937458099705274837864086220931186158831634145446823865936015256796874728998513992488844117307180008440303467873703130263705987280792590128819050258229524900461578603662038499080986615835999995180895993491576661274199097506662145191006121204603755342318764174419133392039988110888160862641027509768504980958294732949070848467693693804600213474689685328633252271660184053932938579121277393420899792570253195619778408714302380623031205672811194928466833367630391990821512308872028682524034233041524210209941225255819389346210202379049619607489720802835836358450449879611521061786451441158351917961544095748745578425504278002930490092220208125310757713711231386272887821167845393743251164224088528488652791007857263462321033491582666040940806742760690863663473296201357118938908307573942308519082140851843159873411899996318669265819012155842131172899974175139934228347997588433127028403285362629748921915283834944860186239325349919830291907232539874527569605983354534328164214473006710651852666829845737888678841242171980445539229819439159020550729136486533839070914311334084713027759786710789143189092917220308732814689444773919892234617651449871029058386116034992885875522581303296384117477118370058865413221887678839707757199288578283286417694427298701952560062220589892003612131360949828364212301983176600354811722120417429952756823943563818426381578458339044667337658994450842393789306611746674199016844423683818221901596986063081432184137418946011059712458862697938944559643149516281731758794843804711766385668623518845985608062694425903929658959922637833490109346780379100981210932294480072881153168816179944589959173744487464318305971014754454887489899851367139944768412452000628486733564549020035737049736876568785185927499314640427760779895950134213158667105959657990368398927760677287853667978035148306468179589757764507390290743031444336277720234906542934345723862372098954211902149016680743872993634835274701414777822446838161516993880428397286604053499450666731104289744410079049174296988714854268138778075595455569032192408586454668265417566930869888210306551016736949723176528668398339361095228889382384245342707737310981294073706271073076876264343694762456535923897210239915520196521107602566728548582478067916187465134488291765948528423095607379528789118052342432783953810053866607348140883763264467558153966289063481551736420960131792432278024713926160060076145614202180551853122727619095621862506932013644274593407462846459534970725170807490885290303208496475100756958618169343588332281498866899419546649534594824584380506460886970849313392029993751487294804396131063002553472244147220870958713876720214542268335508907269708865450738446237936578694770287914794820833043677103978040735962972956594433100794016042740056030256057480031261531517356549092650388466553394053247395185038347080111895899605388717059772314177094212506236762217665087086264095725443684439462401023098703827779513243988502947486732782031934678510073198523037441138292436356984994598257941086381703823935157758645815034376449050063364863137786146474168898654055493631371687625531136169745896483626076530170253458382969522509515767933927510640713109017264512632934785490370876779808150290928631564018781996292051692109119131467319567806566046367077075171324658835235596282573810302316988941565903572538947860799855580167847285893681960608284486546308516098137948226532426008877561487135314787956890973040784892865176584268099240097533746062680654016962372814176068386677744954596878177487529210325311591881485665372615455928749038626202553999447654040227721623106479382700090125526968965980392976123088003123709933796001841033415820691365276893206779671662229165256213169948294477457316892159880024430182066867129723312568020746390098547192883170555763884590006836525031360380995589207406171893819086233792125189300707065638505767285654711481817306959602948496394892554560797154356399766716602506486591249549137271496399604540852384120075856623967326502846318945443379843764848746050907254413272669582435571082797047400793474193031032133119618893135294961324078167046161198489366770892583008120801110189728740887558279213647024731463467562079717366120526920755848469164224753218725490667172022118286326414970699342010226680860288661411134504689728841369283126609137058426282448729341037114836058503648796782181127131524357720525699387312062991118158295932679144403344476334331173835715147796228190497774976122751496616448593698551233007361439679309318604549728412290774769437862640358317729688157186772682072031528143079242970222909675142357120908200059661777642088974059998652786728075923720036345380234416196085970417053743200927245414573909047485355345102440391851786239978572305838597794030618394332554278517714694047079351898838029736504090892525002495876325271412006452403580258752920151795030165906592683068215492268186850978164775032592551094180279171868021098222204929541614338104050414460399754053226647859640768341467961723757532035141310221942641547955092171979054447120095587091194595787840353172510819998719044363667859495138759651621047267323466668049622686880824967155773227951981936743270130905197976269758715911960861462784371110260819319491461803381305418531176444043861789673109513529963065976010699674845876272326617932735192832876175726523554793105168530947080715322564563284205482112417557494074345185895294293768026898980621448310748588587702237380896257209638180458472449528120353573496616835556957297638624003429559297354313389760294334219139607532245376281536522203706058353100131401556740938207180745279014053065418461806567724456159324762764654919706766245722487442363935008410047796507842098571107155360918815684305592418404167053258354955933578882323508292039703556503135240466103943053840463244931158306103737674560493534847573439114554335297000516674867724676059478025428699840559629826926441383542388166981932588974149111537821534085716738096788706842629297394187130157988729993071963581817881895909765231150480291350019331949983171904086526994683226429154043565883768325897749125842495441934261943612348290092092568834414409143331392711441890793437022290881203041710035678193486143195639309564248383196189157809522961096571030238671487992409217182985122500846068665717363107581088607850882042593615010920366810508444224918923302660335105331335985759451761707098204567251153278327435514687792801894068002563078589788791555340671228457486573516926367554742700544561413941695750506766367750777945354384581207328866979575045809747460972844461141338838145064523882292338772512031606134257687215041999304992895189852947827051575413102963643546931390701586460702115821893111915665816120644647845511931213418350591159800521070683376648297265427321736156157364094471856293769718597816893269740840398268213002649414311420405051530992451250425686134129690737907647740473069897783291165966696316253380791002900691704868007998202512017883678563293542789927468204117240083955909215387171302354428481905834719134713553697740552930137450825626413302313092330681217133802289776457090741869091432144531178789999607877600212393845969071839768067011580944174296436462868837526259626305669532545173223920896703047098447557885335143578671456242261386837957292051404192109394461481542433698364544617665575564560565520559713106987959829242655168163476428501869148187582084269385230807845844225205205525074102718986702804648742052258780571809948465506542767106103603324556565873440646236871831635346179557803264090204939038147309196611658370164693942902431659867501816252913986635852546466408335567185132362645552589443781547897558022927247114807378588813036107745940313653522624402384364598412105817233638108302038780225267031925875577839117771580758692050856922195715014143582681639649633323122766030484892216108804466812270572084579265661272625034845743741685561569095352326368581657405109858899720731167085101701907532656737858104563675010862179005355140649716597172096463332899588837885413262239674780276473224445180309317936372347909567957033544507883904147219458586690052325969939164860049295358567357779150401436803074984193384398537073299457989541350725066624420950222163031389394213505304455286272301254991259147755859077793392639642251919541216986721489783383309537527711465934943485835698588397397232901606479629849699809856878066892072905686079296083957858434012868667927539281913762547663760763070300811851569146267976751844904530600712561313661531543147416692468811544532529516787079576168227137179668491956852966569675645790193517026206854327615932573303629057328974312046496746994490033045595768348096679910597541511256304985558269355163121428439425741358622527243147763855224687692636423997975734466784692481244425340943948673869028868538271585448937903729657230387512910018701413750683423507154677740903992620529701465991590866344088401776638870651705444212563163886216464617023284215037892292998900630728553452967059011751782236206920783666155013699722815858386038968946877687093361805147359553727919286651762081465286357092139416081325774859027254141754672636350295210150033984574493866069732846851676304313158387350604525722948816265001252527459419691373377270508204246580926116112629609245965773230138134202233794539496098568234148363475111749975159251590741910778086353613068208589742499244363237523092091384677195223333735465994859570149777277541976300916405174614671780155181281495727228930184098370852383090521335030043528156169002645510567849431744126705908814810520840580246561532416742819684154919324336102052540351882916147177612426642344830537503573642628600343418034580239068911581084273398477766246206558667705423409667254211597595364462086564871324207519464027057686352865695738339140448856517532662467498545450414262320372722903109098804093350775426854361434295247995369960475700330905122455721652639333482559884647232577738160709620387924322280864847819125761993895807526508644724092742283123700770826768444924179809625107261708585090507923213023267518125537573319408474009034905837288000253924270421203670263701016008553698056458496219723882152730559452375095842249369246115932358944980353002096694399263161523771131638393589452299996274484696272903507905954789844278644731008554111383935330556770445097245279314567345201384876635646795235976783240088648273502998450380716668593353235952156940827218905014485360649492535483705674751331818411598194248736485390315275285330671551605461098013650016723571152560359684826752366556273368104151407228139016187665697802959459118930716955262856550071191681763538560212123588516150412708180404443418262846640688716423499818087236148369435848485360485576454515244242002124324241801776325061955101295368271625392274687828333149313291801284939323718742605086210326060710844300916546011963673544972414244770961764498949637045466775795743578112099208055776610083993103643321762864668363986574750903149659174071649627570814479048490526301413786756719705030449458672281749820824644159657420399868752268800396664670843930703893657591833116395070304564627863139737033363724833264978458581598087356066105793889114679340375992639780273732000124833230273803504792067384948919731066032047186005871703537583583874725513737724081454761810187518490591220328863632151997648287109740375326538929265404266391839420113870769539063266901923884751633985033830297582087674264072354278348903798749708803215041683067460785826173300805100666324799892245412367545821441626957419238847680143219473378223444969100624968223779077031199286247783386511859697313265075872721849811844561743505259557821243086623518119040847521237665003831784231695999106359588999680651453217802491170598055671832328692212441918845051550215226094633918558380417922277975524712849243250231654111580702057513278059685268010601418508733081123164465196222224873662020144534403944832254153629171509662558864496689527029320003548188885635974741639786868305013487573483731220367285809388856715802296531429421773073616103465584972199354309448264141333500991730708362394762363725396986613535360638125933999405155968348583470067181321524528393971185232952535608798240879621339950660152771113779908631787609680210025713904775169913541235932751448771428218099995812030554609549938044261207051093476090577316788447623408733705683948252872542931243775362863651488732509320134355394696327002506351614675088749866384490953039776811489470031008238613938925967045599256385991932620620363079938756168296213167100950233851963089311642860224613400439417274274228454679922638632862589439950112257839982715306703833179789057276951857400131717728537588056427510187793622943253108748998663935168310341007112384019446816594415241935544330070721030437933752274731434023809453011196450379664738014999054506471504468183653297408968705310758396381886266867816360301518780402202516605830662286801538712938309139177963519090471030751928927133910810810058026892272039998365608935541501734829048518011187671987624549995642787393475846648676881148894098812797707008170448603740048117717875753019698117842768061505541473936827663517927964848684176624583765178756219051628279370759995654568763552978985014656854376743252671401828384534176030125490805822840564408683703698074905087441548040740231239818554409226195011966857948858490787652643859185424844121464524630216698919622812676587815516682612718717045802484692952434107127553364762200702349599746074282414607215976644001833220851959027331818483202390926711445853382006535060504215180368272031499087557823021993807850183689229701096419248926940274900617214309976591206429908173459881715010269036577498420129781938078339653760381243335613274781309199786729055679031138036365291295172757357562343366787680522345307082250792089333469726712533262973762734315283939333793515437064345133644106971271084491544808364795174863095634155863048743896273775252429185899783103620697324802505823000756154782505221267758903800632936196159003057044405579359227502440293568819051266635104325111178225896133386397942715414336606832785297375071364881206644158657604632552682804821672388878209014052561268258417738648782662648411435040850193235560354833892008701828954362505562248824795582343878838898887676132557898580855551602778180704697263299680554004447405044213982914136665735463738657129804826938765857973432681015527434044168404869313869421003142115298312082491138133571469388420918469287243476488855399901681015961066402427083057047769791183283833639542637908623319017918673394115935595930387289995320270373052103829790308706690906308340997807340757620715399609238973087339801069054304788779269971397163484094404198030628786730202625673953265070180568473847481141993401789358540547280896379930617695863560257305553208112897303140155637504233142123254226718804994287773692381454679231099343231274117615401786105812835046632509125262738495623475639754173355583393000110744608098875600916071402991344872017289038816819310596390213369226953925224694426886555655207795585593351235909354892543850079488256802672043042735754540667252937296129415156978249056301278645146202910301521398036389573153471908091684709686443813399259557016435156743844983278953179202706435509475593114913623444776561889258499344455329397913644042751648101490489344945732699414282038760700434427789301100310268985763904958968156892534013968806200738133495727845926015327477277986088977198297264535238644735706852882518524170669708872163129290637565366765278259935881188334614709872163182735240048046150719507254336951698090093140415825806303806204893344424407736616245691356471561391151100643049598801144851020715849007352036441742978808277141021009874239498441170893042353532247367788345389308620194811560816917920482400094210395774892029707665829821821013659748218340666387578468386030070795760807843670250833799689766514017100407820354585063019450436350888982978965273412827412548992175843961344170137010484151314000540687190366718183774288610289330216634334855193727559325098664304052066379133468270547373131718585915506967093016741981815472995050751784839419617536506860636072828102300422684883397673540932618388273976807129564148808366869218400505118663792404611809645516088291311289854443228775387101684333315608349317487982198506486520145442977920161631495709088143079653229303398559361596610000670755213972888170499913931823969170539976830405067428305083673513510177850002137171032159470381116444001372050015763188359545229976473769102418856398191082597977321996149966986899807731157655626261990084758011191115900803901774667332092922097772530322499369139998415396549177980808320707793977650648202864303921566156668555482600651365183030958577682746108798647756865113121996152647394978800130253518342626658757956495710225677068720757237432904093648842126009505081934718583679895290164265444221768172218659885840150945735127958613351473777367948777227884775393539741908345771066962389184126311829724337693670565575635708703125277026370469505975471920408864694935923853106722190551834498761027277640152621998501357585463384604529288655087894325654197250960343711715504611445578532042986775187881714944373318568338248982205707615253125175949703616227181932075239752819752764582286216117938125837308941700879506412296701777357340580767784401105060434555085767064332668202501487454384363113921501283886918869486786214498485946002472538351067341913744383104300452115219466005114333151139593793984233142474552505161914688969608372682926199802399415342917703293974512034625042963192809044202316405647137914862079608373697061482673508256328297931659823913791369896890686276402294526672637862234120241783668264204749288439570308370723002327648671948242790277914586579550820974155426657983096767096154028143549811096826447120503094154523323832971502595680071684800640770978101211253526401885534414333323460886444922375527518874133413268973246878044281346823094513421559954084338492292619412695066009395790232028059699461663117308272592351678783367519275292066131225229529141321564365863654825890774518705245453174594653421197786710674440320854965647005905386548373440167610825407707492116163498647329880672328362413925504838316296542156642751350824217515523439433816956197739345996124988398562371899649112369608933930892477392037229304211996265471446869817028336525960604123992529469552903212355629392478358138751373110621724034707193244433362057621326091026864515392736148115989709465475123075816569240537533022925821209200372921566123565417995097594810191562442955817365248788802896209673731787194590851396119564802356100112720284575517111089773299245396668631237893642005496281442968827000743117220685553796846128829168944447354725230673939728310894379493299587672083215125188126188065787925707030781819821951923022898507913761519611234400753854492760450342543673357408231610880322306819777814372891439536965640328865372351862039034726905920265691384308854530688842496136238424873296183210924622329802821475909852471049523169904669033158658209994705081840309576084456044894219718527456858667726187246986892198402921523248454623082793794468639655444213781055790023557309515236601701263022477842468219653783364764218321421014506415052462160834399005207609206145516706898367477087068737314992713385435535006269910807170250866506845405808826744310260661481901623052448937224467362596285774606965394250219056515852113485765154717402237029254375825493037417708565333757409908283694196008076146983012677561200815086295578007606138238618452642247353599703978496302052395419200750395725325653234866139523692726004015903879747678796251629265122029969099632086345686399704939571757283754492267280697456704198744516533926248006115197521256977626213711627126602410943460218718772081648117230274806111128287581444789299251225767175147600130382849432423237651256556483787639011360643036021940380905370454685127438398002471782468615510450153961230719215508821408217413708359719681331824351409493988084734078471466525766673718600031148497893417072946878105659000591073715110549816891748262410352926811849336884464419775592956120500495901992699835322975550764421779781763067231357265655177493783699996056210113726469814138524492230631038024069343816982840810821183399659464304048330506831312121398955763864179847635945295872186126919111699200673766772530364234591314313527095574433967418464278031704581604705235195072377223987912604775922490601609251506088240986911056474848895957574616487491354681258396983913015858203386565717667341461416279399298905759449688806839350943658630240328437626103254111944626927075394274739143430347596097321890057050485174588385091211209950685207001809534611162583281837966225711113687327612998863234531957267876429893755188871571985441705490534606389630006234828916760431601043294091776106257588851992348912222078974423163337971198109553314316294471732249336893448744629257590883191621743818525739807193097725322874613966049440076057367080553289958751469302533682852765994492473883696477754326898984708413584702349546644178097607974422081188310184699475004942719335507732046121647173609113041574089576467520550745670265715912800547056585174711049818991326880780642387610830969125608046294259261952941463849556852458769038683532282811513323191938100970328542747266774291512607338928166710865785904558775014485083614975300314630723182627919639760011170230735532774939895701321782185483555661060683365680278768090778099128873754393086956547828693912190685539679933633013032547028641355779674266777978520096641377815269014357826019328478854052825342865855865109991361826852538413172193476098555361400969737121201088788635806891487109965731300411857051400565829092321464079415759608616776236056231438253018940977560798497837302316278237888470659340271237677720093189623910617473977091016019846572453454159847518033516964819106300216043235486940759921593448280894104618640859498711689334166247953692135933546442953316205304441704513749582720859834784811955828015226161624303537884452638674171733017547113083768237976803220812506743265767374711450669090536291700956998083292421212691563132001869502356782877020855579830371888156599208537318632645163888123983601380625908989847426162850042271345679733989152586411141388388946755452541669869737165466046382022510082181801908171178186215319775865916204566586704921562452890210535845768789991833518650403075783416591379202935791416508673072080977319535731146814764000943546102325691553395465817625404080305454791140412681354381896247602181939522350322000487577131698001643685838877068675149634126592092704950278334674606524500075579937059505454355320565118761262167178799167903020920901580257214872334552319462551487081616061556919544234941244039137761882948515865115805988703315771380290713806760496670490111348169195669170919877719713919135856057081349065164762382200625562466983117353596554422927422084122591469757927050016811602135609388540751940613988870484418116015719024173209772383622086915238218982950975754993192874071241634451217607900721742991650135974270295622766684166088619777044971929473408611509849275416179082253433018005376733465982791768595164002679112639096680550371759229999396742752027161699238597275091532801626663696928146770811695324553664001525988239159201320800660688678653810565907405669551164729643884345844584447668957807483967555374073129505154342188559572176651782484690111536694586233396242276400837405394881588540698672654838591568207175068847700902147060913220090595229340113082923778779259315796657597456795480885905904495464806722054063267563891541028281589937665019001681539961274743730629986614108700201368180612568577365735978641213520967921670551275447887560158092135119113641340494422775777215144292736841703502771126755371078359511677163612340928069743268825616288743073094938440107266135988096440898177975289360917992502101949132398828969624578912452884765712026178492334129842083725100212224995838984102029795480164478390179332005255785663839551060386763718435095532508967701167378393338696784056877290042797885961392391248280349002819289594479117849906687172297477456650501829967417242569509943529775218084978836824003307638400608792341916791579519379789372187452292738064108132819662083539031708937380227349235676057551088831034819622852964661659230581228879768802903327463086305756375731830118752659280852612198436528829396602433790204195970603083511089638240273835157858747127631918653380043622675790095101320143390441040979244248009823003708937024234461296675319010936018777043645062720528056856166401227353403409511949421695374686408303484238056005727153516551193982491744535263788817599701220074114106431889165258542362343485753756985181696409711736236989280527025965921376601398663925674704644955579839859201811175924086887850159407133582862534632083627755655788562681131229930461840640118439656870666286769152659370727671520043464878424980190307285810637153862939265667144193271030998350976558196607988480956233041273296459416596988778770599844745381919904888517321319713170595220345499983775409109366474860360054569848751367232836244903150273654259987524446674060193532023007436050884726543612849403339924710313633024006472739312758193589285867533153978274785342156005226009098424250638345417404025271737735003684318558990134122471437014680721787998134184539447720217947239046650604538536376790740000705215546527222394646639587386951459576694659111922186241542790276432860160887406019500213651114040219057685148648860425792020954105179401419265672254753303137063067293742570492595638570130867836507211484358475776047353371548755204957620761086075318991526265089676431934066786641242901192585369627225464144031595170051985218625714928178265601083966850146362521656882110741480463481287008652479647695395696290359187483818781153846079625023205578396924373366970173201045935140666591880159639457614467051199453722716393430537660177250672828554272262536743656339511476150217063109987118507531213207362268791209650283106176212180704572233698284241865992755332230465485202388525029864118124633193447250798598107951753852009734938911585964251029424788011850425290431599387594218014544095817139493189954198043348867364498465753318619809335814154546745836490662866635409733516382897834290213061152262748382355282614808150084582285891699904940253525198637021492720827961501881718687286851799611235438502298399449704666750613975460116793401743486683622390283233379014284749120261116113242078698136685248139365625590980448772442532418030640626887979107419241038453712681570968110235160617998008084578186632051452719354286156043189681541576068010531151280642905666600158352421060727224870213475844683594061381222093866763053562283105923401690454656842869155831563605537511840612259382315656414452705605375831950982645042383042669101832396947609200517217219292855604318986006850230111138116226812391116472356857851033343519130046188817409807416210956996320558582056801155310925126349744366473040160818495436995820841581137321914437149368787544061635279822212731929091193029919585366788067193093008613841588310805075151027310006371246353358434198985512819088022284550818232706386277668212899447769233229607726979194751721563967750723483293257142452071440206128026400242143047662107069028282927036337774427753272045664684248012326614778745147779093463491901383970937397385033495176968839766584201596193485003369250723946658660103797629977727147102115829012669470219223762531808728537962064005939163910617618321321542107262645993492301076667253088982324774280680782110451104060918971740421061356923590607237802948951268423253092332259620262148910418516370472890299587766759504187584498744578487944977379014677916801517756614743292007740701890862114986153802780934771739543791520553831117846877663323568318570096520710397594466536948128298252484163116888388168902728373017600591004039720596363061269527071990700484606328399312801992902201585920371042443628187691267998912048307095762432941233353483157542065609363913369500539595251175059495862217430449811113077305390155936499059962159749789120560504352168745914420374006232970604485706553128099774059474355172238763860320315928207658354231481720953126398518911906698463719066701278387278167891774530902633955805859972420201459494643033251516141895640887242052508567324728873762098204499075278202081245197615988574290867639421295777177526017722858689189473691358991476744261108374766318008534710989705085380206770806612408133277618030533532762595719777723526487856490959889076131770337847248148636706118170099211466940883726996243581532819756117493587224689469016167703770797828970649235379311540248052914816628461899026661093068144179661178208265501608796941968021137632442627474979732113950928311285505372929214017383100017847084223214521250014637570139365121415886272545403363969081693642259757131363475212223188304264964604634993294231605675517069904213089651762381201723098549265922764730485245379515616503199412562315847888996853050896798012493611675282754352780760023451694565095114324722611010102031940650345759304622461630495880149266897564206985333810657515534811331258187432831652059038884113899313542027968171509108276187569692188828020508543462602665561958991960907725844475915399116872873696595778001103522710158526550663210505026006637725181183226609950600719046000777321071473075482108868059070382737368196265149011398637064788616518575202623195758570477352075055026814710818931507957037960329524483180138166403069122056224018157126335993548773838457041583172368787901336189128754340867075658958016195688911191425138984909972691748060885210974256847887018170844815549659948450978527039515025282947079806442289699765283627662373264075073574892056995791693692604510556701136588884341067989004555369259414292995619310697809165551939572694333444969909641293767370374645016142500119033613853573773808739488625675231119371925616720667054103262265601379429022650218196228920533158505337708699754635545147199529470039422362821289523279966355680147638126959224980892227079207763329035158992099782420071145861662604679245390487690302441400962237074782775634228801098621866898716973643842399137683330648858271318673467379354010918356825781533067270886017366018298774496943238231593766871342153929814462705832517722585831691710276372300503266504767726657683503306939798140024863494469176011557130139901876275072758077625307410761541342083321826935931117056063720563737476927871987141896912951897305117849756136079672115949878774877323837991893460865196046687798996289170071230887243785663645588987400930206753678908883106282330753806293603613748122101464408923573315752428264158379168775735504739478159286195342051339409327852105013280635197377861917945793200229341365233266420414921411699376437754897827902895968437791120673813102476754872637111741083208277925930502223631990336117021973936064155050703415530897261577568957782639130341778086875641343414903990177524256121970210154160640110940215424977020210140986421357142130551267183426624327390787883281845202355082397510964465777693561720574754233231708431687330822599423800421773929839184296161041813353316414790817924724329426034855243794807065754920672920844453323436953012536582721432716946139230204055233448747640656704150330644706561069270056843165458756036069640870045804088719370188785150939836054223926822111483782784920155057493654991639092825155297482068479555272891511193574272013276436808286995459643465427255616186136054632223481603116834963446843202135526850515131532732531514978194025115176926777574423496026750828147788477073240511849862886106697926627920145780100725860514662988609276175032154114172555532746876906023963406425754290074727630160616896702567438066860681617257773979278088387301574195071973648740017918733683330939531553381405720986401431257250543362818374430668737414678799328983085853257584628410424501264729723108792617732352385890299326389718443474103445951143420412847628694497261069370466479305211483910136075473035046498354933491345665319354137321193546804828787511391954317610798604563506056036614540154023322198956803804434228420465136659279714760167080099344932106123121574463924052070050435044124652729431819802044384269197631573246579752425523913631727525033009185456185764693732502142773419415888988170058476805447166756251475670409070160174330454613735822392319672108683910664538544348695668982340600302560337628962214954330209769520561520751811063403963671180050889449845007079124544091788480598510131336449160016371328994883202260271168418092482044702002786990590497460437904212318567556211025452957428686888220077721419616444409263425869619376708041095329492989288652266147749202383430595837168540977693582309208725522765476537747067325986385637591265735633393320377497489344923742695781714713269592008454412965521141143041843862701326307904776018705228143675699077769885839888359635816618939376454246352171152515614181765817347649057111574541177344136477067594901405651908092541389455428730369376667583113413116865400790693656952134070921780798288854571569474012913871001304140413141601519431021600753832017827455708697435113113436098420638826764755448593386943339355326381403110605125961280437116257159185751256363142083431120265479759677439101659794533228536347795498867646546209721202132586211146262136871138950060505172419376248702915092877524794418291638515054214684952709211616672089238211899786644668090375900108993044334014935963531457310329828084907710212856777025244235757850540859605300041930516662976861944155827553294878381488411232062662024843504527590534852097667264510707466724861269332518893070115535439491715129546572483843221202111639218636372930381266224595212800288489311287612065817759054297992908028489579982521096273244536551604662562931173067404566328808456261548290093190325798314297031181951995765478459514543947671252291605973265422979399684827867731840776679127682733713129324669158851659853048811049894894689310379507760324324569434112639371262037733295421017220370048765921245291863497570789991583625160322568590512876610485707772518919024907077014498427352524148376460655282845537967790173889674177851932862081213304061241358150736284246244102664787342615365611665184562206863183092859296077761389211588724603253452893672257402617241377470251828618861279778626336264521129681924063636480861873482742906991890435657102765569616201677244417569074026841922125805060716090818916085417042439107377264056520213501076718992304568930519355857031389762694426744170412259066511234917967714077492265968532028337310495288056783148860647594720457836568633840758829445175683278687328527807562199587831754055470328248822462903460709065079973392971044993677237164130726584438451953381314320388175692954498106992695597300630573705963312463826314818755140878229931492036584761049222984129265454369725941857651693352451874415932771898015256094052947114156884401196999841697576964509847282689259569743119592609302454188813720675028614236504133451748766747437449891842534248500070560277803328068915987643713283070720903419648218943039108089957978356569143078533074497345430489777629527679892817740380608295823175931705982573395101404728145667614385806214755126254138518887883671713793858558596677796180427970209107904347982100464329016075985380057943998859758287949230062900085515625528114691689845837423157141293007249728554630152178250530146209277913106756555068255276294315174969772862977530478300811687581436600420967374234834109246882316083763029986214564971348129251927109320317357669559350340357158977408360589787017322121189849073383182367693798025737122038669164270841298333216708753601755240165757565864180755578180403175215684749791539302169365887582332933032636991028102878312866387089908179351104726953569764509802130044344186693879834623692711173976128738516591161165851576430731771914913151586377087196022324275786819090427552126973705300853982536569408960748634999741857028312161367368249707009978117986263134652974200011554331994777327996809548726640259049185047314653224080930280868398918305431867397539178910996628283611477346449819504905129159602958772073476317754908383540089360244081176133313385771776975780520900876646450533903436745400731763268590473349385904637473181992199642452036393761682598878532859600506867767039268414508451566247410164508891846204224063017543509314510898863991461768171722191752276286608709765368415610751370834001192070410323031916571806181678747245413768926090238184631871182681646524208055327756600782260339703812363485274510358683825698891266918727529485986344047297874996483052633202805574759932033851648307098225582880795349117389777085588911945359474514892703520943203114022080161130549958277405975050056231781231095725803467714705281241754043709925569845474834798296349594579807010631120762017101150249722303605994850256518461374608066855792386363256447577668024881783071985273418948330532777283312550147007222768174761506476457781746413132396940661304878168060525563414795653042490075532707482695550667403049961227631866853816063372873877753459396462125043317127243403758936631185176451295700735780435221975707038391079875732349557647797425181555770177015906223720819806724178178158288924011286521048967626072414686374499626414996726731852007532614937717108487466529297098446138182803571220506800640736061226024997291172337315534358875885944585510482901125349308656920255176759762057391041586672306891091611555397612141528885884197215724187541232047482823203877453567806953531757053705619120635788837644733557819383286110321674954008976545801912738941978399816244868249206396717599900452865440805911992693971194119668217842597537054992204578986877644644339756160795443827147501258354565792151306668344372751591039048028460478700750755212898701403049462258022970954057570277640855141153467117693716556739591138318568201287598288483018823437536369948043987200911074374497570416664024706004650777299382129850408827885507360231551890888416956405895273833522810691712614652633796996494011888487623573968987487547392476304113563781910560066325400943472588774434831664980947590803008870719453238927817371154575664651466533575780719865601305745319947873904597060804546803715881136288250682104024258966958016176104726723482325640754291583451735047947163636083051853463308044508170595392139701326414783630927438555077970826831851161108000021491948667133065602733779115688965661232039635169922992882010741626448401840467773248283192167424217369509185208623485937408985464627610199151782979410260645937317559966963465459385257380428894778024341299773986921254431935752326019987690326665135420915919348622847634225829976658145311341921302012260223144677388347151192135047541114285086510206549311509957696938680771537013768296458761408827991889591532735125530094018909863928517399435130949747296916761188474458508621688907011397511322568206778912735222078984868002667021302119513571831292951884165922146121948739340441114300637386221097623434748745254132663159727874508095744189747457597214066412508501598340248424381584649645484542715702384919662502167585075711393958824518081148465512504270263234121186882264068433214690753337139216214118750060573703784814069890212757325724704374631000510562354471935672426711671103225571813732936542888092443173002391671475034602733752530644118240281343797514806269683200566532771727835334683775497688995756264654153582923803187945862617178223395007614691131119569321920266439558960738731329749547701474413633919702942205238815935106223064783258422176026688727206004736024991169662004877362188023738529448175718163289810512237578781547600097728462129429934891510283704538242672741836534469815898735051516557582605331890885252923251859210178764868333610175109914780283103512865888404078563216669726701609292539423164358926222803422409167205243033180059879121997317368110808060492271992419658356903299050208016579224714173431760160892595411550951707595957575491573988722681939974135670238754695892590418262864574052631027591516771033927044570259091160479839493978714684029631670644688884232447850882798953611954088412987332525406049806561367437405948417339581371876990613772163048130738910813437191113631306204053271279759899464552742723126703678475817322440423938240066083118435277427946062314037949324947600349059369942255176438290583436693971815022082969920167405252190714815961400487480890407544904230551645795589005510314772376110985309071302487984638728246610672272035376835121355204391690207974590939940326957132100804929357168800011635390978137616177145003604348432843964426723846247249619373156535429088831660656612511971372938160506907728641683251892506459920630172008361388357812811897329851667199377539309454306106390252168749052984879543262310013400308598698462482941341039088927540978916699157209271872789469988180363390791297713092419486938172066037051676000588129972267190910207131492442402133562673346630207043874915983579851459776445874708604218851136815327568889168541311183366697385588565848976044732488041411541901557371087263376105867155685139800656614694343711681942398330842889348237755951857488780779617960694448744802129964357651529349159352562580101902417798443576154081962834454539998277020782038729059238349905380616900894365817488569372753848229104367419241089010698897677174808644371971433261171525159282067882641543455078428196275653401256556711166869884401788812912733812111201535717740482190096566111050719253515196543164865280208321629228559970523180232674306588070458174750451994820470792406862221718604808146933540747372664362656923474296555177813541432983012542953564921341311297305373480478890948818216772792510772413476755666751579988820061394450402244313544967160685857624266819759798649109937656102088266053877837224050749551387224410371017676168676203749082726579881193444626855537394049588157709755535649778143453646040333369267080246669954790731661850753968116825162884336428337652265227756694644503832397929282909801902137459545331754796013315213223246647054458817723518770038474769714887248668116558960792825361133193081620744839535475621511104514673113601872505186732242242068523816385909099373313894292627151159603339180999044444086380324190998670923607232299635279459718841724875570321551407944010295625049983565580014927577198397516229865134429264569689961666746854618810134980234795349775902012896315211699697976921795339832910618138562586497603307660447432020884820942041054309701717065312362419471913836690235166109817683244410243955312600593809467117804936662444606718484458393690292935599840138683304033687354282412469322982420138414408528116781940510781080890178751917842529412221004547051693194859811964886488645203456421070105748156526680930298677884698918840418461447435560649641107769778891160740091971502052821497431718735399450631593675438421598270716884396160013687309667032637583578304367542555797281488720307635041772158528087093070224228532532034304218480409698028973159626205370599430196064921567761633081120922142633468311694379371365910033821439786546224791230034559926937162586301397422079452921247682960021603339720058962051771250555750101791885835060162795193900145983001884886654632335342238133931001471159569529073212988201352529327262199873624916213819496809262116504518266332291780046223423995279457179135351798840801729161117608194566901095746694587776863983864387674819200760304139365622276491007567144002204364726063578906990754460889617010029563635748865783475819161508178119300165303005066332183882642607851218860358326787351957458485216743133184137394711541174891523487287104009371106447700165729726806259167680750534784674579866397183438598224279565623246772312036763957218134014545828449795247682222234345963514902166930908248502160723071156028484514347801495989418170126698866590370963129285881004629906244695275887470286225158919308998536107400051149440903620170761568670468753918008598272917998132745388548558483868297324781657701472320603796465875441514156589893588842591646833881148183252710966581756204371984249757926623075220406760323580303867298352297188541792273724053692396571542579329961845900870376769614290853488491102622033690275373361420501614713446119439777710121645020085378868632418659207898244491639226209396852144372059124025437872346211464117733338208584813076028636500438660264604427621538144697426120245240694637732004209493232391843119805008902225619094576954720409895850251571704142408772120349198050390517102041085636213992406566794390528542250963231868108048348696862339776122108368774638483524095462238945104326851403065274064555847916939779410791721192771500758843916540402424415598839081587843086576018052191224787291928372557716576549636965082071226835705589385329727641531593717266371226733255984791756274687462997090062993536744643270907765323090903410491615139255695670293327101786417313534102310668130229244520002588969069636290866683241330440803357644590191420829734062156147728166547122760006622017830417848926574724377693444757318310525447371770694627813006691050620009022956318640725939761664092946399269479161955110722117286246012932078787833690538854210658748545819427172049798268186058931591649825669549660141229198880586931879873457060240191431717164032943997449999934998509848216233092552554674981374968235683855520692800316869154100597098671380873921668112538091601135221534877550555281760362824314424478957578628839883310506443951721745522047215681339618210030415214506115623867143089749767252111929805961897181611787969889373620439622503694710504825117733966251650631257181584550261898773230137183738373855510687548420890726382789319807476974391743177912120633052425007491246673163906177330055148399738308436829746512573769625238725017719573749975832550272729896058076982256203523371767758717323149691381156162571265926413555250760205367658597189761874485141420247010855393075618461737190497539684240540256243673937128592166990748903149665185985563894686924098148957338680236753025757548368970809995798979395087782757367704934830366051559958891152938110119693194107792541132486624007966514524168045210323046037904727233538621608058675493575865905161313158579011235579139906175012845419565814873702449299330499403269128920354671721070668865639473716690706855988390931529330081556753974916833027751659558979654206929645868329037517475633032220289951893454299269648978694433444404900563684426264600036664117566850564837226828274079958738047597390451431388619049318217191535137485944148430358826314454526729378501228169622359532445045654858051840958141681128872565297199153877944434859143828003890474580096875811494135280958813469549961416805956340355642424478359973079763298933463420621760301839754606647527563064450811807741287671856442702432676212841734870445385931723756607203692259530123383508373898171822032529147695568433810381779327741210501130704773994746680187260855415139837090803135042239918291590657096302994729825404988340115680277461806583313432871580505770869936101214967880267345986034092002969743332165914656749210373875643523783901752590537163526457710320943725446613135663065043522101881417178209010277265886021538676101938220286819376651091253156862411586618439665755467914324162585422230669109254207700781228650518205653654419770853870039844475993450893338800009371885563346362633118630049712850300777561915633080761120826182151179747703994533707434276143598384761410304777049578611826964134506534622273648891385370868768434596726135825664893106808950666020279733439303777261504524556620646259397029739634365184706075882493946835190948520603642372733390121104046186913195501521516614328696520972436720900217632177229114562844976718000229332694922762665763864740644380410288535456179575334962745762061516826916856694684381737216009299782824331748016174262744139388265996804876655054623033897947774823988354173627664797135267867813642805639145420312143732766697324846219593821855859866121679592648058110410004338574789111143253078751409504278588292417588927393384540925605590418850142633798617679289925774172437365019231087897559041454255185044490933300062080418001363763828382320890017733128891111344820604508456978855743337985733396139274389448189575063017082848818859667388409151494967928427531241138442013758481564873797157739727274273738291869379468459216508018413727533399076238754207007065903867255329486785206786064355001357509976008771665234343728356996619088847908093005871309741009536442976271542181352243803312397532502609402104032926113002329989070988977298423666874828802220962155140320998873180471581469337827287868751119690580243869280144650560439560781720244902091396429183089134216997960486084689781409202478797529303493617140119547251855961778411100956887232023226539910515786328099045050649583266036256965301817227227652677775511531462307651253691115169737402982312476910071261906623550716760135444337273100629813125248845619830422977205587568494195675674322622777982184279639023439417226122029041518572944785343891378847944540553220988404740186595201635426972635981394981359848351981679453926027933629938191900769950508701707544016654491219879846219661419352926342140030557945502893617875039885695924990782294391868388709654653729163237516966342067680400189950518702258792428078533941504352215598931721210919707570961322140454711688058647689628323254802541484866551404263531048243671769447474939829334405908863941873354202933175993343001940057614996071169787511502482582970380501186125088761520498322524299390531704647134763865603247208977116759959180412021217063462473349442388191068679368932835063802405010136700553330981957673218018209663680228616545760465256899056263270109426864119133369174713153183983469457379399567480922459526648268837520430473221731638030813194201269150065363766214442893507256181272287709335417605020618438247040275917794902594635686368120015768096706814631669345141820928336211871391746778234636183860709007682847857233669531213887708345519666648325094726473351255725556607744518478151552485129596496214175482368374197891238377305516043539376692491821396025183091847318605323573425142205169322148142809199525822518115238004957626899631886090711720466396691730682216656447701513773736793449176912811821335664447455433733206570039796112911571911221657085185699821191387983969440859683935516813205054631286184669063038031342767373332402450514979090289596651552504448400272468109558554910618488181216013662857783686475411368983015821092586686295011745588457283997978012846461895481197891292721812596269396693116131988892505465841882386936970518157336272839212669299687517499976603837119335157727030290823658079998490800297420217373185863860295574502988143317396343142716625821354659839292831245765125024062364464995487845335839463883750895745419515983697503921983128911918615734178542950563026899740107246601647203560520814437152536182920968298823654202045448732745417774275387949731238008197956697353637180493642509812170825647064403783986333297745286777877044982805622166007832846471327520001731403574332249896307100493927263775311567605385034146524799191375226787385128033259121526223267345086808882643799694451429305049784625845977675954022755950279919481542816134344862260674493841014786609344675111429243891850978316800989545486755265063931091093816875671815120663127432855775998864778148326534521741281733330455028930813168844030628174403540763163885171185456009735610300027532669918364768804312922008367450253821401296036476652904206519631111336664190825748997035120761128023958031846418751314866849451161226579907801964764680730401851320243932273256607454198514895401273451590595752987834662580917436008076422423305937324427802926760293759441480775243062852773930405749641987164027342904478107700051170840488756695297419237642361097219888198706976264328599685480249669247220633746933038036842711884480233804071802580578702298796692849695858750846558566985086328473741364500841273153696854655004281939135147538368909751946146399580799126472027181903188298266077035843153183502769442878215093193387924671453460750668409252785363051536094458606977392640000540917039209385977197242089816274682287915901103032643113443368593161503465036255765965695022909310012989702488131155006914741308334847400566011955235399572684744326485493722738067057199053993370941814371682115944047649509008914670955419157228308124415527962033140992652102507349743244896386742601191747495122806242863969412574226565928743942334678268817803604243877187575724035791637718084459256930334951846881395854687026051006668266377386347719943484960841847684361744314231088151274818464490366544694621347924495942705558869756582428947159003994573184075348850598298646160446442093548151449144154473651971103484721285627544788277332280275021561200784373266466291955355456556069424590125118786659522119387628925570919795600765018320822669054517517595225581937800020606161206561383529362778855216230507648095278274856119862768770780795339619868872953921589969540297462796455060611750173791274649249083540131148810811680070819470219684858900273393831518021522487828751348712778741619944143426395554306321577350112521137519537165105058411648530892015149490083598079302185747579954213383379193828505892700694431961715717366740500706236007330639247308858430028949841405239065005553935397270070408445895477965007253945231768316804848011957925937483607588000459341701550209199316422248104369836081342903780934730350422102207920538586700296536531089543715474623446872344700009473650072851362361190468023447427138312832887694587293902516247085962479015401850095093590872776035965346423787831020899513308811197916006253889692288782249269211762615852113552111806316114505103340248605050105838389957435514218588604680696414456998816842183774806757508282514471469486832162116208343923248124170357009753653663222183931427105315105230002775918710674937747336869135886839755287482364219535128464969389669908226614325288320396641500058879974320878218678874886121135295701330245680845378030700956911976580076701103644457128335334559388964233982028686272308259554067811916859504435235264334756917245803045728843417472952902749993604469872342677339012035202704874858254207971809477348139949370764482025985678044596408682633464333786607466767963225474886373771194886207075432050964498621325109153885886959475340083444583585371536966194706315889436442789491115342185195121166296698336617408853456405709297381693226033091670656615142234042767690894807678864038091723893238883557565450296090456816419561132302427813060533027939712509776080414611197603736178517687629747898201543829873981630896961225123665799787905957556013184138528868770833641851689600425646256301851248402439439946140576843099512511785998508425009148691377772290082953507731683706838535674012549737092311297742088813310185731548076419315296995757513612979278263035136126986772200461245629504769134458395856710341771555205368690173291871818150469700959738554260648460800311580276018318741292063456621412747012020911477262156447073952603873658008798711956591927178986758679881357596859326418140511548446373203220528943893330467457411886317329650233845599803773901610271854780471385111449285187999357473768744128727376154758351433794427205536307996971730143767312734461369477334191134616889219365604348682886043163172368340249950997072294040056783414290008765240252813347009164962076347951586796612455650006498319852936445279123843120691929913430404191865564376623618359660645358462385437500403671803228286665317073738096195015781159185471033574123357858232921038493375349774779274807190265002013402358445127608096109753158628548613907460249839904314081413957071286469167719857950774793888340396383086398117240494075320960324769320936966199132974130080458611000186445354390843888131712196085678982357613444532677497588250485439389719834500473061817603838948465357793442001284469992351260064951312959970387700583990764736014802330090772833220010982445876212424901180129133066112049321349246842135214684621955286047768172654420008866716506668883146770526553283593760238285440850392595094563533930899684293148073783270675704735500465183711183627889950559860693959598817144206730696189285878723700538494518114811548590079621414905727782882495092522089628195363119972021501710390568711790973365923839141826160934666547662856199612821185072074956286110378677569463838139322750072442766504229534005270028135301492326343450442548896513057587220016739910517670677045456766210490530772953061689835742073205424307282632702013745257465372691876580551016315527388079796846762431281291403704264306061096070439655122736316864605423133247566074628039908288671393858318504429181232256426121227571973118506648713399105574297690449052726713230402395849302903880072301132710942395316213532659686442695160853750008629309245817633925551468142592626072277575775055999227126528645556095203036354443099381788890380234712957352257497395046277960382226410051606618003992847722571905754993348712293244888108834465835040996338303832134677577558136970498135624008231484803236541140952271160605569456757162293484681115978882922659807195033493490607091547646461899999964483124911176627654376508854620581219402419388450259593587047701346836914166022166352618118667588494999401386825057537921343557967763189090687102828074643977040486534882753063699090326302563797002070428514462828338825879954523138264460754194606383863708504928818907677233094850292418155971669955592463325113019409452637838631627800921869805667504833935514129165402565647517978915693173796963528317096805615764187690197961956367629280952153526347578532981421467744707263249142671850074858078673796552565854760306427418687774949162671076334607533775578205529285404529200804135100035212678853747547315871320909769093678147796691968318168025089627615254292235941480028713081590907600223023459603654597742613686140999826750197082691132140849664211626518513503128811578594466704232236248184515784042091749491666788592008118093373871735988702071676197972014263440445680480368355513625990340293186701425202717206705050387807175175472034442922758835048625906957986845221225381439469812058263959534792453442164275773347416728713774806224940037030133670207066493703086647306785158786144421281892343757072752114439019826277744253955178366673743741316065731834817777744198067934210888129214984728109886446132662549373834888153116217060081452287886022835531527529238991920458922342953605669186187686488908934127015331691633294732044908682289593960225615938243906341196375011056929651166270634088418392377841112912841216572140446588177119837988228165431340237003488501671766940403051303529549512126807771260449822545145936553864553261565323384005115584227312315260456131192762160179462362307523451351166382156964611403999446400139232299432759771241323626320889050980519795905918010772229048270255691433739606946169080869366155445785116372544709760617754387556698170515122387381965498100096689390881949726267330686817570523019994435565622302545727827489136299725332972754276912035800470483758251618639775677637846848324542993305094017372977851967113930753148578922710771670795929560772106061120756042195605922986015713563906262156553431735254443061994061792521450309654966308626807575204689611169222827351350010850392068795411011921517058241312878888363506542581233229391126134945111390547513755796630179153028197509100239772069157263238305389461664102429771916264141853777338947749839428810761953779255390669844839991330789490104048855394772616113250446163141100435095612986983361437650323007023575304509006286702956380216047788585002170633642535759662680648243249026255851699368459842442304024431153459263182285105163788203857200714665265507373159341475405191187641438138056863932128728550049852240130483929701206320837324710539022237630640578530335064386793153006655643790345411045389828177313616181409414979655674118276838947096072882077332452529691841430466366257321337920337598588928523310846324865192488312134953610324507923528069571345926905412215129331082239691296580920725117358335241006533418374928767046848038456096180484148644108506298365247511343937899472825015513932025378500240684331063335124621625336736736858931145954558274504427502156046674377714061222605899018665422234173487997076561458726675046271625980382029060623000557102433153584256684241181992335359227870157870896778649286360408536841589302270002854949163483050950829192873750106420453520478504070405674027266227297994684895572782875164788182510158570000192635255084834852535673973598878462493653381940389927607811959550323642339541324617575238249751982338521667623250909470495722014281825904725702060759211901054271436113553558200718043510043790597794080859325680477087793629496127643451041614844463922588712672327991455774666753014015478610555727444177363438266781987685013021420673922712186350906965302728448434064235297766630591135511329474645452532233972388793286711737465396823007971822486152353932740690443790443338680095231009319708715735931188678714490894353225924849075624261140403833193712553842187991119735495889413960077847682083167271929243528610040873839774881704627958429911013490237470478517917007379488311331662627353576464799283361891696906267635343476743343087088442221400778561119328167834297083690593557960464328747020116137251953322637641863287748003757044884569079795857622121063689298236593472750772367382497654255130212465992788838543972750793316603763384813166309348418303734438842947673227411174665098308543320596909116334307609460494408174970022921300302812092266409352552860342437256032648716113468715759377778617787283681290621904511694836016719519979002283961648761857347775132334156336569718055185453653868807720697183110227393263556710558204665822231424300780590410751900404938881204112710384758411011340385151785480121904719992477703527301678304119103570982118448215982812879353655586675181840346365981415329188567214187936126273887916714188100291039718762781195981531710745754725738868923767460815907419393695352450592680453389783056080234725510693624130430481493374879159505205960073845481259080144379602311102540801648514241872774042807823757459311625009414700868335035026060738203703953497251012939879693625235398010430948962332615793316696143644222181087711151237561813902403402222403887124780818544733848563993826051431848002227970742932016705749099133611242613084447109995348196273875088381478101186331615116711472141484872223552728403432802649597160925689958966205915826494791220017070235907944769073833032871433423088533305415008850725702593082251570694190146009673854785934365390051721323135452879950641633502701858378780860944786457202833178683884496343773643683640116902991288201111525517319285094564946119086193843418450269555827342537672629682088827808939708102174135962480301450801709524999931443397561348600819390325260082318474223388816687774279030465232308291786974093619479363758142080146533255778028459931595122274928198645187943858599837129234597663709943939820185273917262467566482923139262467278666256558844553511856147934658422284019286608014174379029220587408293487364565888478278079620089823574005117685547350303401595515194994683361274911587213262242802439515907708389466180229021787858111197845652045631257305363709561422929187967987544703632020483176323401047170809789583737993086716004257228280610697483068324114435134623932952307919919519188644945836980127026472944004534847629394594967545903477504423869084145284502068287010325106950365945185006878222268346023221513677527910741260514125144253405028907183725852430089677725646891122491065703854030926510119628850649291282772995638961602860577012243577998091274717083900819149395172515242120143743442433052245430412512415960940485247743410096040883316473598093276337532256115933617150023115090495581307025926591632312993705595738780878493934667264169818021842514051878589416448035829495231479074246286751320312075822128449029176032789644887945808202668076962137603757197034732979869015801863458894399417494155999122170404630403492382124884680204470338747759380537766316943120919421846824720789450170568281507850903627400299979084048500805598415476056436480737002126359735741394351714282783481863779706308156186090020134424840013386858355024340835894186686877376144388477504891746477524286268513781679508846847662224649084992344104989083173258897962004514171219116337174672805586283159214231292656105012808435237638653665655142627786812880999535572930959395105198163416594854947638806373061222679148272648946036887163945804567561738429755938536499916729488809472817761954712405348578305825385979573989484670959695063461283219220086161742467855198837196880603072441214906807301716893772073921572776535014943972418932309219226216046394832901572778650002512261974126318310179563574350559077435125757979653687446225648647081831953341880960466128365016260380077099490149553844520897472181496433577782537421608286986586527689153757600538282379817669438021036598329364847926038216895472262419630863123441931611300873852346772031947471196204427343536247040193299630468525750573047555042460867560101722535703765117380167200969737283492664055504412065809730873461561961724428105016039522185265895112658889728836792290155444017731086891224651855566632011378755939272540398593370961921517679396806357077627529380190074489966565681053633050252000054267530804553612364732566576800421791489073676040735703417175051397470123493762597171762787033368038244271164432631306933006180743496367925445644301825159256249553078188781407945801293777924360075956097665237708490012267162590768639883700800699947370445752123834659458344534860967540172808840318987865589961880235099994543727189483793413366936978995472894765169787464635018356473821557948652831025640893193464281812865644009137772045396223619834774577365923475146906430207145496203084984211651709435606974599967295437818093869119895275281121821750822024901781825375579027238991773183863711248125473824503260930440801556867587181376337582922730800289386263819777918312367205192456182479097044758994022593348307752476770371595226617729311072309248291608639446353505691018330593690731764615804048663373005297952900327813431402847378268115080896716913922244175261854160537527683671407813162049274863782103228274339903272722943632759032850310487295844573042473874419989011776371501171001599082274025496057087902010061030714059613767847175597402285800092254578028111263095859157637915568819321552725624880507032216602372499019298044446637423404923224904964244904175956002864922403563087813049909666644689650328125572831763594579189982607111904573039092546480488297534687531927234972067274609490822364795291868166620229213161848386326455701401000781615723464551720939491200338760427379815862243530021076122320595147960134268607452259989420216533765694685376396236342905496173383953344673707992636031505135856054046986841610862859169986774640062977494377695341936431119427679544703253834979422757582396237095082151053292276688469663816740405888303550486615009815063586620661115171690371475791082426566295160855305537159562235932352983740728470764233678301668231107516112522465957504016217737178037616872827577560217702675031902269629435571732434523520379479280425913861608596342511343347964963632871758329745596781776425661357136103403034476183807040010258708995862871986820592830968975282859015889871890400655032421644074784859310246742610770384446625911581099773706160316615797414192486771394468582592379119490531199863903507559091602163890738300443168547715525923360592974955848396484660556760932366404264647632781841719385093056295489823881445592627535317937089958469702142060632243139952980488624498373776155834245259317899680487575105027150146579358294641827919161272298784116722747619239102435326826017070467116387860698534184188307072348397738785470596169175965844381071014535549530797952425302392782738123337169901752439895883555455850027705079696719216545994030323900996429447999712684030420763067576585003375885502810323574551910506962739928211174178393073728784015505588841564800420649251973357784765492317724056627497029766106204778386929290248998124476467678409986745251375164431382991588056478680055448087951769646177437155836406401548674294110343173897267656529290931940131405449750432505993892478889492085000455839245160930055887003421504797821068033620629959917863119462330149459563160247265847121191117937072701932873380138433455528491796083582870966446280447437063136143289287754602829043372874389154593544099750421529860862080623642395125205540135424741318321335687061911556129821621601067309247435354228624958259615942694433382439297893794354620171376608911233136265977759315554991333347938957587596250983682032205463140846504430002965242667107826543956567794789616862343766980919178764137253120985403683948493976628921321454494875888658169430424911430290512397411367292795529752282581958171862632961803756054926223449035281843725330320263427404932923956420335487222065406299786534293866193841087513664280230398613255456473924705154362192141517972971434853619405463267550654274943984195539073048035282892186978373030120933953912148402557000887076591502550912049570644270615368925742348803200317159931755458771324580210446333530367373739871470827191207089098676305749886896043102579529877736243623641829034605058322894393017019903799249571759730199551821841353183769506883615934369419021565377443539658952710954663830545411756140530087984170622533621305159978026272902639267706323778273970838582101104426793109225251667356327414117957572100532952747942545781102106298418886635229541236248769522153783987163247394542974226978046183556686903213362023674655360609154300131451109946869872538226667301913295749441627079504599567174170999409195374442631494688745470675735853687999379282331810308559386140409397380502489566521319732933206679268895916514586325957084340787560923739242127560957385824670658222785708609627736089503011236943381265827547056268325801023183022923558322763806726611592923979530650263269660554607881957711465511771248536310778782134008680043110207913538451151061407244890783354859953035300824702256787995393894135036280427247391679648362273949836573034531955680241179500914494116706446675951912422805262846086728581206570793645209297652282508874370778116180366124873384994293588745710920238227862013680824603414167766854086852706921543376727372551599281995127069259073324411886789231816604725309639016499126991439840703797575915353456795053585284016413613448813901961445284901903691861240723994477160710551870834752657720200726608609843562354417159159752763329826742736770649115101942832067412397499664786571753891459310774352556962023493840696179320405448140837701682439394398930772587737336841594735449227436240113357625560786197969748695710559941620453878674118288737654101693496894079196025050082351239314010026658489971362176429264372613232099911454211084828286014028580087486899513892201182321658920705783691696795954504945315753407623644071243851240277460448179245674570184166032497870442847049416556154281785798847438349841296579896993580224371610324910055092337198502494064256208343427335239696642438269759670363092135827068385573806314171164543083055384334882926391444168982229659018928451358591766392027143555244467303209699363589310524419865165117310719606892937771848305486154286696664649145608520914703416212050844848140838171670452285727884626858539219248983045738234911731542888005398128074261785800097527845143953155875960699568736507100206725596099289354030117614513362913927251318229242953652144374505429820663262612124999665885831964760920941077913214492985879767258763060078398822891496625466479837965255659688874979216537204488519853276844185900737431331026344088070628906534508028461538316009196388493147330658156860617243824958426731953787833430648511710001183472779539960204107505083084818602137498780142604938177925052387711915773162315041084553505454977814038286589934903748915988190300068583060687817322024305616996584497567646629100967993392388054466372164016304364636355188930101292833109021662440255198406313735025877384021439017114281220944007183654290766024574954958021804754856748077024871096132483199117107009540956095634473081213984082772958749761675447096555848095670915680207711178595437218355194151424912255508523572249528188272591185099496793122847769172186228129665477614206624396182202819574605301909414175509367386299695558475142401263258224511898759404607967976800521329037477569768442680531171953703955252785206580205119702247769438894348837502369780640655798406862855079867244697538521048106753783285071003907702112834233913340422850379001901494013921366111179072739323001729675649550244210651636863303328745630666154537037610242436646831246244039232224481183468878982188869965047204049022618058826121251633544612745751498795875239939530589108223023011763066335178571682044857778114204907032954777412941249416561447647696816117464362732995549035129660430630635406904967659157938136342243924129353765268093854223173372890292822983951887950180555635286020841086113783612553311180990298580227165622242125306446901807617412422832127545233597505866862445714299325965350596526445652545394190693783963647199200492520539613105561076744526312639755066020408045245562441271648076575807002196942852257331554324393685700879845138910628199228316818738808515883780556643610719133507872172107698625431969967105791879638026527413560319583657040188435146762091749532452574863890341332056875403529450769828861578936779851020651003551898195818252547309407316104326668925475816723707685539446759920335457844633095478414348657106406652880353559564539182501200513024163030410817593556181188563666972929065196632753069753740555526083814492602076532974524312643698537175691196447799482285713960448603146300148399582548811098447132581344331056833347529436219222793935578654135235367056569784828653121145743980016259156842619797176714217978848507951064761318745457574274434726930063641544235067630983947369201112444505500458714346995239259133539755359645303702197495450681903244261573670995670888343257285160702364305567206373059173541020540982231115382774681689354556594922896775245399298085631498876854814999800707380453534170065563581648293309706296854647188503843845991515170541097328641735116411147198634829225259353283280311883946706501001751334791689088632510465763153290502753646717134628964829296874497065457255462598161701975459081546051021796751979649403845034232072211005825464088431237237472213851799327967466401072424370539994881265076350310483078734656129605919390655579300495499347877806076677734329332150762247818725889429606554989093791643238555432560964078327627280618895735320749701143110610221982133198322799003105467849688677319436397571209994587144703479216387944768530982469348387669509846542458460463184639045222626758963771668009737938764618739429751703850708005093487055125313620808922735681868388907872048520815339733217541429061595821683448025095080368212944917519971649697006343052018346891248129851442286902409938245508677693950154018135842214901867710323874608570755310459947516208386571197474563563643008171800252971529703509680360338570821364107109721015073497676785694112369336693974659862787702576549345702511587557577380769823503503376250415348796029056623100237144557999418770574659555473517183964802645966506692951893344881084308664392507536013284750164467000699324716056359001737959568451510638956130269803314246642285529866121631956757911700323940466790438979770007076609508941923669332662498598289152093599704777287072775447261442702736493894933789086739907635475253977566135455089109099283659118726726760294226489476196835514785303829733300935441825450030943653997281473289412432096725682363863455230982937701803581387811106860601936481452049247445020921042920886995091768693945863476593225010531562342162268750230553515274910668625261099352070738195671352571990080250487621269342833190649186173261647394069006267655863589771784573775129868628650657630406279269461285811012525548992742785418199223835671540979971995981601362437941102467925356248745632121037066546570500566984050523293789827068653220759279707213519337109791788756258841958148597152214812927660728270890570244346949740242254268236595522299329756418253450006968545689661092816831599812331291404654196259509783652924438061260566932924238903920034209807806098295381941900631286009344079272485336837050549578031476831993382607115828884340776264127767522201325405451867597426557089024204089980748921787365413222688640092131642001536235391210967492381708501730617627176026269387119754268707535521541281978099010966597657863407472453952140617978016542812603100528736410421103655991519268011962256664371442541653299595950463109852103272595926817914632234200681535403595903983980472226389879124023841721385316073117107180215039030984981405232282908507353787492610464377230532545168021068323865823905025385356220007285248790877934078201009576342289817076038406548313779411465525692705673641274700409541926391990957088083357725062532528835317709939235055249338916812086610710525511748563223622555910776162726414904710784971812025767283085105426870673783586955982330387057152104189368332782023571292358104539089393625083194739221644426014347765968619838166231136540315535122498804622255401433472465911129602446741636025402932791719393836071549787941283860756274260351573597215768186142091843738015854687735873150690556911778986279502617141020959832270377282710609651196167395957405592429688915023452209857536234347425044003540123009691312854267886378736076062554989907898913470083906572896506705771659336544219400709083550243215674216760873964902728958346885980294172699358094250273269647525939342022713397734951717585516636322958137387644239396353446258510819897660422277233020629406365034101715742936466593270260949152346491249088550444227437212693916916495654919078034525238599798424478470150230742195700983622072195972853106771524428466941353433579453981520310839475031082665093744103006706330748558705500390529718801249738712120377443654127752508332297555459214929567726762241855307830214984094129271744682476659188024339988953781530952695179698653710387205463465303300920447520607045724419880254143050458036807643138298790881380780776251656449643877775057918344102026343606670757546603026620422608726346515863656623387030969990254667592607480205592040215873005429499713536583287575306462965594620328319523305559988924021236077597147004049723147638139945770118869230198727472981918828046327651950187841631053903477237664828816162775847538992481269478592707462778286555056420057584923258561194892963576041407379325551950061757499972290965063148930068683120120971947879491524376970479171947243430618529058958141754204460997051946155833817208254428064979996259301535766989610623778372285461430047032264063490826406334970235509133960820724056770301954273177215271259722188484722465998542715432943301256575555777775195192467819225518878938168519233436558468983282440140446194288327081134451952410559569532698584065702880897787751622739691093949125404046484628301367187627742938762778477807888483299816539328959214527553773743711709664440947875225930700972121720024689869653445760947719125918297627059046300733463336922157869459166925913597033703212545353681093132957045572846200460957808535189110954092846674881604792106470617448700906253163534834637062167593880588512639785162147936386743097792408761598928648822950233163500935061960683125117271277617360892025148125463111201040776724341535730059026472249077667519108779981667847637900090295239569148841054983545098421113456686425492383522629493074202833121431665258934580973036995766322388904863765892365022342439646483121029297664281310845394721650035769715136654456967963876433767918587090020377221965307139899842431354995619079216920249129395858364094945864206035799035990601462423994300811381942462146701624250780637421580494734156710306732258087807902572259291163283352174214096739728697914253636006904481271733368984657591980595579857429336439382931355656416857543389960642114038834141137030519098298086141725783815230513013419382697968961555736560929112906748120886796928531904507661901471813370080048703975849645719898402693303348190711207359876381275204335971772311458450507012298299509894191761201229930038494537663871771404318779927632702712869471969126703840429434690303571171102166190672626154300080681850481243794457100820271689050238041099349137873169669185459350639559881044762427646840116452160151566074436563388068965675519683391286761774790101237468563351015264667877129274139378155911642946488061258547572213833613551575721974035947739454614905768016763487254302366308233481934511099414027609480305011598285211585804174293719083704616165277807663223462148259987576119850051146290459409411505253135064616768652004002361103682739353692975969233652412874168441910495734327539575226597437234855539250293478839194191483724274731891032566062545589403446563159806722845275228738469009409896705745573222748953888671285402847438930679064439818182155457755892649486834839402361080674961139943266107756944129877796812794843662673462046128553836617780473974531652276849465109806532369566730825793651130733833557955700559147207243188948889982535839998069563692695570374325383501610222749506307007209438919029172783986935241171837954290403626626862049476568657203191190178170825115110921689365452787339568204933787475814170630117885495225769418607521807676119952370614197082817569315613961133242519398355636865358766062992692265890153389021229588631491750666130305164683960591367026442846953761946663001173605549789937208421764218549918804620706857798825906412755465269151593393590416401181948588702383612012171361936572749974822579259635634379195835602538943266410717519618619194242578152673744207490280490185259915569998433586394577223262093083981161731886055985456727132033772679246375160430311693194272288352748578479638288310369441266197117670328312271311250997408336319447073598340859578125845907497365580132209673566307870641795972128949866988636167699845762660768330447243079474303592058501630323806273411796374414334296145435092472229236228935966718139471928969257083377809101648243781153790268110438748379683127903034748440254185173330533119096487413966654444974408481541838808631289031327924202462202356834253786479661958177688329712693725769870547246052476863428021212136554977108933519708916463748188547029618876993394744375203341853539801196656144846260792302686601264810851220523951196819745615790547395012745363946618734959703367626199063965812649971039869021683110370060051135870203317580945881649646234542614463093022467797504952784965209950234995060325760294198680111337800776903013774921158517708012484462135511019391382942168320086007308369526711106032958150190794212996215433165307535283350866137296780456490602810727427045539888239536459713852143892199870715565074020506553195836955410670569801173800589595101766391850543220230766933642711687911727705692970076269366362190557231635171807626972136399626383654969395869306534509000886866401020113020098899208071103775043760698128197385148041766834610156275044670254628806633790892120330228414937518626477760944094533484012363850955029772697702320511626395174781374207167768787323924478484966383457212394289674960557704651322577288025006281645449768527206659250820098778853962533695793051181843351948368225396963676505242516061421812769948072441951976352093930228833396398997980362074234193468231468622852575939495282323743814078397275236514807742165069879711505395447672189723044920215225086054515280261147547292236991521135774542509195060227464823126723570488654545228914544547224354730117638698686354003480213301974168973009180433519654115942256388569555151271476056292290225249020424544626151800169656152420564858933149783939684393484076087512291224183015970505539912576593164018491856830890887037237765043310080617653551903311213840554359211675544793381557558724727366567552048866714805280721982172063600166072045158561734211303377826823731340980394727906947901088298660091250737606175984439991043313994997616609310541634451614351758732468073601695855691989038476353226959921488996787731769367737703064085370031555901994455304001441918418321663904701707049674643403543030242412772830280621931886404090293460866490513535122241232606493486929734621665181593096916708175527245636406977124342308503336375365199283811520718565844475452341233492253121404267026293631587100324985190409782166768147004582865548503449341599539140521951778364946552160092400340032525227902444736019792165717016783800389978246483445976103364549461120208786516005685482975462886933414783490599608725777885859919727045445214919737043533722286034006356363231734427214960510975050107153190870934585833089042721771442609746672604291496586893893204114297583483229125598910434698037726181361362846231171420941133194146046091332417323308070029658098237180364101716871854159711356185938045454114878952488171011442680580735176359305844723029947316335157361752865795721772052773023321534342362918589920002331912867069310685187848031099595476762162354076502903984078662183131338831558399429960932136554407766263233428724455972700418922491383066772828163947082415053066071955364601659101424890337157760201431280315375736627715883333909105975817597027639709369520241710996640454234797201933955377531834492214657105888070604864122206160508477482229739918232001271142461677708746124603206542202541375886763007619581662275374644235316700283263819891379445939786916126230643190754452376035202394372596583185371817058100287143964043128459705629432958271207506207787625797820556623014822023362970669986433074930726432836149681525073626625717222737237285249995781159153799872991811131066976529464090372136686553387751679087016643663568791207227622547537950189750203464789087665437373109057069010475215826423300434430279953215341218170123808818328824742090563437669027055531176948875093324488119702974773017767673479181719112543246565388861544665131064838610164141636141563775005853007996700666165814469384603250216294907392946567036052313164791857746292164033790248340043815661607357496104799756191331662977863913995915916078816236960581432196999147186758416787040907075389035386941946740869086764625546247983474238771814281738013953203180144172277145007213044995982175354063985781403928798058977693325931641279366684408734290716530637747903671258362497695377202212206751556039230105645010708030392208382832248083554515498980433002194805907654353036944687156231919254845688468214497470810717002807297384889862515049171770052854980433480238770973282802371140303098201290693896055725461455041711918820320377664535337269199347950481701406019555708555633539646233830202128822462538280771982656742033567808856620309813076546214071658866988143542522396825597910268670797595021901985578671074498141607394699363882268249581389319637122008919541396062365444585944220814195965165799924926833121456071330641461218933533200238953024135570889460685737827728236917307485547274220774521444091890600988188072689844311426876866867026027348439381236289892057098502713501619268905465633267520386482375612996078980094116077482228821096064616532897365178924331895587711370041904762401094406272119131710364369193006731342158990192864441353182723247876437934962455585962723722463632832413845395782890033417889641859362645283783366164271397861383046726597200032114630460348662847845964623992647364540896028287173406734794326515976720016329238240321970032219250598467917538291244535056908522885790927285468422715533580806252288247380279902922295587977081571824850750522636800961229346927850333521998662433495531704469905590958629955877450257815143665296981735384436054671138494051935798064491316727931886915309529233821536632359061239989339580017514957303377479442128151343206759724073725758476911384012736685134147088821792699825684659318622471967221404809315378009975298192019164173191149022421264932336742119993889120763157405900707086266134786812688858942423753565537809387324161454083821809151803900905169957056866905995744220403391361311307008098709387232988117674767544079527044866992413493261715528107643822582978074614308048691433969521469578015784369778577285000396363794135192244059616005034205788610297899295819028519186734810223092752281291354198685095098442670041330920445142911388506961785195270223279783395312088555400803741314200244423010127336025181480180977707740732761362984064913319969487340535389514017847070322248222529518381200992280341817161060408247038591459987771389109976168047175329064732251226052806996194256668868011028833825110523331512249611973779333199577653306657079794134790785383904521386410176595433365209338638467700784390821622938824851877116594909030896914701577044038552435196521659193212273357788261919164567624875043490755033296499059779012109273888835534891681093315591838973754779397359866507498049565783993648086822305576436153029290954349458539724051580419744595217446702974062833204105955531896769828047333193435798707987058189097075422194240516740226345233667775197650584286735540182715609661348969425822980094426187369852912786676931195522283039677427045867888642858910946376477282323679594783758973542866414555213539800714679615374827335769726760460071147418262550757998771421833599958618629420504226327529662787908011228936134354473927661087296161345399311721423647490951875197427828942252471434504003514790951631016721341464418704205742642843661006705462686312942051789514825591870760395839207934909030578658470470110492564411491744365020918577211499064509308638372791144284246081164654380939155425076254974314304145861192601111880395639707382108810092913822568542477935654540051326839243693158888022230498198823196910041502717112387094623107912164547891194463812390005374908090415633416815641625926090898517419752157241696231692312830839096290642104830104789938321632369434257053814328421510061992941546600492814447585333368409278107326448519152648454678125107773273035981111621334859226302474868513487593672979963289892284930652792265489597097915652136666450349053899296618057888953023215361098154591501653948217364745999193235277680303385334638248069223181872750384304261084171882626100487354295039668561951217998266548843948963723201445573183951157682776783619135889608031347079127300358935967778400553018014224346751668133945991704049830635066295039525610115741096907353682748308128536861688252562142992631252612967133937967120817291041294475773303663846107675937946285234690028915424674236317527234361342774060709689349236544255065177374292837407008534520328377672883053976910317677967656705501206186887816149717961756854886450380647916071771874327914624436517262170083372221482069443260141974136334008835851427407332759593225373566663846822375274795859230152329770967733227006914486409516600463026225683009806448466281914829792033124950910967223639846917538392053990633511605643062504159184764737355895142089686522379731124003982887835559381763423074497406409395898167996633450142719564759907133614264687644113299932933904458259658673194814051526409729516027568171786402268320011518412528247450478565481336625563390543958101552015947363064869214010219853156381526143122514108555411564819938798561257404398393935464864354648994953197021254761622132476520283924567352745956169405018974497032094634246015813208678687473121020858739439712286777543303539705762539416752483172730566865877488604176740386928772632586287415132649865403430422607506304106088037618788652516935538814386308814048873594575206498453179870655782504122574856127825549494140772314820884638097439651234629083961551279913778221818768220999687035355874100308697490175053380375748352322560667095663795975215745690411935663258560173501395275292497419319496424027001919783637303809511078045583948278450950217757574557318405721596129952015106765212200954472429893682919444079442414903173850365747206230373605616071682103389334382160540975686833164826913051578199393821002225139849201122429686583635933689773152145510984826662128150863917654587578318419486857626852340540779981965229114896044555732447693105193864772377067153225534569509727258061196061448874767159057507042716192549779881955918219194190115124625165065481329730577789916473907280584924918918606121820112561572265607427414819611446017968295511560827851456875627843535321834512154737598205607107956192075835543825336375719865618846939333202209436176337401636840582281623987548621858081838159148512216979012163018283664264364489373007981092210831516051804598024947975323257197153592698131788184440207115181705220382959034581307696314943879405270481919850304470895520476576490937720826814220657041020463873559151933361974633447338248671639773701939017225434990541693968076172529201858935479576182628113393299353857574635862051103590706610925396977439779631850416997912356621227634211094631351207496927687596410724447041783018743631966979398838745482338491766785896064917000636451090781846615680964414838848885669278499156110135674799431985284911108192045202920802445033002590942993260970480131782139871434686576946029586770834568614808851481778103584328097840810638997240420964501042745086282132178834018951946868310289602097815589884036150914594022871628853629928654569758516216037515087075204084899316038307740068310845595456309473691649846409037237729221447167413150433212603007373908307945934331946665962185165532367519022396341501942249353828670822298505732208592682546892576997642695279968790912736554815784206205926196351484526293914342758262742970359995960687830985694443061742427390716066728652954289190341788071694857738073261650786297435018424686543092031681813596009537235803741610129799134232749272634396350340097194174280969493785270209934863456477786977883415137607310528956560381043948459806724929615078637896254442695159967723197418917354178713310307772969018769365026597138542687893145432637055234433645556943155719725188321700250917807037850420840111533716920104740973907744953279187178730533513184526242296853153567985231564396598055328942725944112223978378568141987341246938711604405772793296663789633944140839634697218581618992753361660475402310928372761564357998678501165051361902741964692158032807499780690998870321422833118680454006446095075718116001981830399343113968076518497472425936919955952656748417076364259173612503953043927923587722629213814065748500325615207992295739624582465069510188009121054708128530138600113107319198704875967088064056967926198150244445426774330532355835919617880429446971914794616110325563703056819218565632178388624268745086124233390380067456041069860954509383654726171387569981336293471482381517546008248355209581735808736041145499366562932596775408409165735602762322895871227471289293026525442313489234801194102770795825045114874709898548941038848678943541397029777464182022778831067955422871737493126170976970890057719586622201248504634501475976962143380778450621460209100299598195123801315157345588059118581018672196830912841865914260377656918654671140543185982046840134596742035487073440678346850354030096898302299354082939044751765594904524574600476203267941407166552875342263721978647837520893227348031746653649458846825667749724177685604629711078744073581359755083813214752080465845859815948703974390632020430625394139503333900894901404494737698406161812954775114256821818837440943505936896132917728572909081936849168866147666460185452719917303446025116597561900923438846854756487683906077712876026335248139859174171377785435858362095307950607541274701491836568653487449427700782118330565060522502588102841525352694168980241016621041392106929093510825274580762744085536911960217209076045668416694691355872657113123171293867560461793894649345810762106693203958695430411386880358062834584117850523339934295059100976437954281170649103803712479630143167340663099822257971928055676016903652932166895994151819915577613567912633969290355082850174159133339250583838004764205280828398955019308589037134935232017322986907187958680557977804363025980989885433438796054148321058850299529191970532407270566759318125048311642492383745392765589421851119831908705556985779660703479475898109065050591172886357660715330098740488502671708748051505187421474773616139333351774364198334963745565952531620144208795003692576247322154481098909545926949258561029292836208206583264473214369495133850131936006896635753258725449313445988182174256641644933931618163436232931210496239064406107684306832777137235096050141579412809812142929835962901383130661135991117466779152220604159154066795291659243040617408616147239782310104605953270073988431008062658888394957862269613333160996859099788938879310568338186203014320199422350108163779324720258011694881982712469257839686775303348798122446706215484071258319707809530081972125732313264942171992155830523730015341254997442571081529723064772501433231218919176736821228048899717198490140219749185440064890898376204650558871240860241480356147963158245774473759450948190622993557075800560141678059767678878504196997411659999753686052050409573816282824868526527035738223659199498568844272937898197400962189148249055214865977455619658128652174035856760114755800406534022526445923214096648068262471824549815510909816907163575786927206364299686089565250145090440550066439239363088472363496563823475635371823526803103158008125862762702983103975688477953728375351631452911825468685752698010289876664213274120941822696011409634560987435718526957712867820640772546972227847740865297329326230836389185051426940389467106806551477043412721139239431786873243983229793325063362610550704273612866474237437869979498695846627607960119727836214034312969695611185165009165668919678045480257533743577687264827065347794122059045045147979515974933216859960279605689132728326684608554304136212583784862845130919865159844625875452577036328728586437286271145869667524252346409276108550809605771359666814423413906247738670897299717382443884649628536503841567324058526604643085637798193342694573603296643144888773610910613819888198182370372442455900275729771904929069307511858522046744577864446364142246111751875907229021291620086777136825175868817161311950987790336149837217897291175113919048427940344671194103640148250348526331773800059943511321839430614418795498538468803678277085219256531776436775387444879038596016803461085588330770882573744317395628275698274895343515560514518600937224030293012411748212525201690522625590895731358317509131527805597831189714406746691132606094441746518490135692884170052652410669196989675145738543478628834225992134814463662901194516004793837722558063763467782900974401200496105736586493703785058662265784407220129466309440367168228574132459414688250300357156006199364264095540012045345486025434518979161380936922107188964217860945685351300393456835460392218086455594513343786614510623412369579527392781087402191079079403483932371566353641063011112247142498591810008193738420192612708906642308503655352548051531856473149476967996927490177994121748661329932192711143924670563105252397555271437654830926593949600120875427341140798260218545992175713141022993263813359208852903899463531520981804056133763803239883956465316379697914916431776412355152315009999486379158294144924164248359969691790664471677845692265972929256030602859119903066637790912923975906781408588515696652449899882625978114225785445223956954333459881906527057372469799586601673832883716562169348972091586563586165373564907361075460919156908700233636800098754700811218015201697512379622248698308673003917376040395158850897314869135459746428633260295977724307715787542659420854929794553589486130229755569851477131738954457867232492908636993052028710345244605035230039269796554255222444021853717707310030870551940551312545746104343394047358570653635397604978204985952959936408838257128780150672273014116333121373920962800668385526282094150117304435293182605382653592924836691324706405913738819721358262194965649522782995649238006482192868307531009481925441075433787160660966339211137477907345454565060299426087945219498823771121016279943197336680652314681310557799876261991960720627134520773617925413665199236212551331706001421744749405812271381977090452033850425238744358080368045212421713348747580183926337169244351031431702846404136095990203615491141389068566217786478063850208860876672535121495876810653527824208375647741138659618189838232898469429643288676324342400665062343151146247803947130219451240973730975130959231911985219714820257353160168693273677118396605927727276992161194722581382782216462286859549622365717555873419954202506059467988634936337703440305058523188415269043606860562070509495596045298112301429439367832831882759853872293886156893037347839540575630713565123765365311489928252466595258800020102361933629923709035800464840757297379078066187791452517540315013075266575422788123859730656942110729507628942199704166323391969952592423803062296830998169668937028014319804625386745416531886463762601906165153905129606709948525599341920260509640198953323099466069350488116704290182533526571426076907129229914631861691197506959615043449336367151252813802524754856064982705746005376393962316536386849983546355638098018336697868984290375812493886420124165676763892633372851469211450783319539929846962534435411587330248516420584438924479904009581673522150641032609549098293934874965784842825890691940595243193522802193852858391918071233480331134472536319270925047038034180772016633590836724352873685413168639372875867882236274063350017850842014302088088363774941206809432802087983361063851605711104510016742781545620717102612500636648052294481189299730316545556432401487525338835294114610792761496982625453045965831117051343354369372894619709395971926009175593716972207905606759793849922577155121462050721959623169192152787130727266097021294428249067264299723043917682510394189461148371045282986525723372202271631232411630604036818800170258358657615866928469285159865879350060806289684489996125274511999035742688234299202500782361628274309183645613484748333146186722345556797257768775267827496564652874324719865623173820374747170823562860643732235738538357683971927422014172567637023885630719161677559543073079757123251698544774967510236691946646283121289538358771224092970295933669160958004007570194159237248080354051449422325827314517930545151677706758695931952641610944353697685156402952268146800521857729540366763189126035027524051619268864846449887893573114409435295600505511640468653498134803014389171143858538770067581477743012901764463356702832650018534870907070546663598367318450891344045268517660991294614885941226845186610039139583442843851899807599479418980807596922898294157339602330288781804503412999428918345356874291377500608215706454921829464378119615960213008266413057176320054823853540314779561629350748742400498554108999293074707447810501350249042797948756097926196795517294247700284703332449603757162013158708712305373693557587075413587983232057956207070651961497304317678102626814240268725522518781795068462660174406906849560687710319069351413540696944503246004317678245052360104086279518854398568799871611362381581867438971037533696413070319118742180720725661957618337457153173906582478505056217889763098852311766225055345847247224951157042354142041012596667459833720455862336655086767403209454953750060034219360633837486253201174324723277662981083042343367932753662014281200427195364146080299701441869998033412003924015114152901907426731571657813196083068290414608652248816701428676224657353810472594948550994579126256493202843167999224468449561980116125242904909498209651272673011117136966588802614115893234830395116148423318050073678374432978559495851720750562140723106837769406516591012719393931248285384204843561070194016273377330097865889160448037315651851325574594501729847621948683158050861572509372962633077789826826793557391705559891558020557264694639038727737881351445157866149422071457110046636140691656036692814219963351882491747775754620308389921749308794018756259358075258197612087728575889875117369763072528830132546988876037330239848300649562326964035405248949354657008686477064342339546502321541154471457212184965674154205501718442048144957089734538074604664604416526460499403801298497463830300105279111164959779932967627037710231455144805863216273047225207806571979113726103729180792799225173123901855097651578443077882342557375846103790208422155480435151112208404072345364550332945124896328603987750496240918490034815536265105302473867668752305360508336647820345157695699480237351671706702378200226559298451631521258749293508344047334048053757153330305908861196066617418775050713745960635991787944938285806613916399003877030598526790614526813175139176918909850567043188049331293308635372410105874209089658236510757610237555783721339644659500008162727821727649397213789403726101099376799397389979059299812651042700216262581035608697523846047340036165825538508611495438391312186282915161151415631162473940068497963375190468111596666798665842886767189864600678676793677762404894203337451281300490663731693362532103991935964501548441063082263994140538761999805461177271456530769764902002675974665754598274737936523260288679044141053840426374495280531960091164285374391303288844887916164820629832672832992042973645637088679104711408730255394757799975317894171157715611749434125026637997410986017649959420356348444778996422588656035887871541486145885672973156331400788801460930591057000328605958625839423384948740428183952261524008848472018178483372799331799628631518304286864513982581900417123556019275029486919963311704728653858550482958940629004061097563200708159844887106311985986495876068939594401709145637675606534059201527803462808630141652519079474902467659805012581260262591966838379595831242402167403594039258966915791252820289249238946894991897413429747280659911478587290099794934088936279185820662455152721282998719605752173142954925982882044140788997408607583329727971453895533161882455028974998025423357297719209546770607644945316421494476453568980781260640386266425770195614818947759247113401661744121857393937984028944454363966170253661315265921378292776877054200434139893758803202177364162255274281586988886225884843842735955161450382891603084512276390445760070143046410232700220507761006401766745932074372372892812345111922482351209389755187675205084433098826202908967955058459133562823362104221172969771273320781004493239307229330551962582615531661037901105494029652421835887917549615766503567725015892160612346169968733101799614122442054513055783632499739613235872711806664353686270025773645342420085296193534323276796425219851634160726573710223819032613726849006832883182464499749426227913175963906818694516141198404590345305482408172775507229100946594362962298734692923854964429471913335472237166650523952233361401723827045389919608012709669530086108577949725908904736733572570835558519917760572151756029489094382796862829860742019919167233598103936741250315422914817499574841161394603176644447809227298322168672972620882160489581047540138118357630141561637454708554333578621352224363874748524420031402954180428286169336143580312498464549617330995802628813520879884888065056157857987707845347052236076047579731251283139428404694938416131417196214530128447816529283332306250842495124921050535969409698435529572509428859291923674590364641059166113227706364520308830776508478566702501532348323783323131543515817490039636710438570273756559291579414408373315137649558146557078925126747994977587031999785299227753563852018883709473017059289838990251881222609683275429573424389585636754290399465086563346400889016637591830799526530085348178407193444528984227572251989111653502749148284549320214938953055308281194496109631287274008472955710287124965187097670261055383178254203201435899307782587256483024629030226054995939020852975327603666329789942807549213323182728871653537254310132802504999328774929679424758947338095997844940601180009173986404265897150074724506894334848655385780530458070884885178833876981516180803639999665248309457393669793244856653828393332901907243589801487337030090016733192917969899254478481640576875345185659959963896316412603415512406791679488447418256260815024199973788266808178311913040100328339111690025217225698364176344983250510314693798143829180482997965521362017561653172196977682283542034127182021299804962095559380514514762897775147012321480691568722826676860848925055755309612768654133036427535601317918064034126390660487861058918870059044789678597956282756636255039055580413405480455002912908915453406098900449654504808140912188038825851808894170561314706321152191878930356686643978941101126110695254910783596597429964895634841950610840136435594489449173588834804671503918652620420388186762381949570536750550816872037950433696457363662969879840475210175037583463800772688276012180024539995158486049617100038029511001720223466985067801080131369730530156420084304491773537577888120527450595507519017964885082421377741692713451152082222765725502740577495463366316517931151841080338187105996437891669420013306660329829594126691291693053986080268136100367424576944019648420975842087196826619473969742991220232248126122009091867150355805931323960727047344355500237635335220930290139026894347548577949944716432669746725349615826978086260816637139726074925383487882729385180854824426424511292955157123249375326655395955775686419129360100582679204081776503753120027201307578985502718620490794950910058933391253858145528733627708585210188950515224127787082053546998591443782880343341139696577327927685321037789936403647540103184080240627264517837295684867513039708549046798141857950163090097838125197630688579335779801426083869162377041929858193654255766924220152106932892833778748459515634736531565391306019124040311870055451772856722549856522140350904594045704440007691305032496881178398350433722534099123864529286584723262982063357738813950063375846416326253285910719575715489791629456249700994247315523189341850549884756983803353281403626481587238249313453057297247064578907580648789364931622793211812320935674106867671573209973042298348868872115772419796252452991506468501242948751967663375589376986095902591382747731118721697688447464853503519445478276205697806685440023784954998563439063084218717088099405970727040245269970225935585814489041930884576182238348609928671658933684125952495468161918904174877788007890128669775385133657612651723533270216244353243534485813336070330269866895732756357430000217283684410667603145846050856714955787150392097034237598315737300335188139259585076639031368785823995347409751211379703965409339505138885306025041643889233142996206106903011282718047537782444071287878739710985663414408142536256583825244578981894236929527888782359245707149289642119810353374933351105100092045301728010857790923233627425540602756612031807665825951671155724122256714086641925479682953657744255106972143302493277429248856193465017700270837815682605968876418878863288209289816489395733215602737865050232639927050033198002049715151673384439619708124622761258500303269286303822035249801967509822342804260520870274854786136383810989227301361144181162186597353327888305513763902118308165417399274746633724958355333584524360159189494543815397626975014742689016208249479165951936460734487164904062245311235830702204885462243238538476837367231729840176390365078944045021751074160798042071789423634627202102973134465980493767324659667123685141326982034925637721960148119553453145674246695046248701644607993530368353632016875494654521912265611346376088239413234319800584386954143964179170849095853333779647226529386987848964193854264248270839274071596199751878232423621325473342270786100890287817636793780978848234745350251900675554064848389987083596182818430876965802236680861514658856198075859433166021830586538552015713162881118484623702547362821032037451339575266808981293905011055533821441776770824735733223267684399576795021246073377604674523992514021831821682710773539881303967363856281155492734558348530665983207034786539939597104340548593387072146759798602757147616868496911243921908956604420758683428675321103442012246285989563487195935371688792432741362600851799564002950644862705757131057935415984582458986646233397217949341276136413689570850599482317392006206985712506709726278068762035661144340341941682784948411309964706282726491490877051684602581732152977878635310960156105210833193739809178503642928027319481658004475813875863489570831485816741312498525371213127384617621164352742981504793471658653284358489095529151829859009965892483780725850638014473509256888792422932005305907744982609825652371508397780582946333807661698544722279716794008011309063255229179450477987164871426086451707641219431339483914502499703030168318280739078657643396906418058955912455217470421410142169267651896337279854948281372772217751549156000175568238397828799353826053888952098342093623796428688613974579326549166549943949714727365903404449692145032891541119657287759687210866130523645272048417279471065333953874712098924370334014680877741519789147391911015747652659767534716671187133849389038516038337780115381484002816152765677839768293271701668137668904690882937565907587154097656172078305725580172012536350498213627440240699504899536389556589312624084878297867283634621295130753352445004533736962744952206063237852351949536388353504963599820378786859176571468256419236704991139552635968905438845303133863820498164674793359667101229898234774862096199016607561572651535643623967147391462766070282960442794883734672149029442976573514775193507540170764992707202215746258544502460668998938458633028907512160653800749119954739701279752336740834600132454774851692693117152480184374718333952969084301168378649918942620753151931267310304434357639355249646713159476565961402284811214544753688241375827021051258661764903535566372905316052784513920091164503315179180528306893011260785154821162038045258269184608244294531181407684335015775372144879474722721740698802872708244194978415324059685249975600840481791450190579901354564681295016167556195385962336688537745997594074479293019026378405300070506022850051432972418635921634689052802675513967813962177085641893860993958686595775357899727954163393479223317339867168203385493789445948863282094536400171962334164354702690829041139895636246178591881854357273564728485875411448449049729017398125108526160032694749169454402741088430672498639800366644244808438147404136611073796305916130599480304704312333602638075822932307852392086484771065026783425947339622549476953495543229407231901400421139246696274117833996958508452873569514519987786176405532169749996218525240573125622746542797218524144831480983024237819287042622676959046649597275826430388787182059571002920912525116394866888606202904032417865646761255980990524698781124642337776449831978937861751795439513981450663139416990270610016515959285442968232198612405734969127571272053108892907864463718234268149905345610081458216053681560405645394493945355632204276618137602089517273883630010328262367538861690425487119524734467818812513761526467511797262701630332459011632401946119807302049305350249975557939057724420800668051081205067787801052424929603516871681152160309563088498164229605857886017777780235125407069764200813422870599387677268375816671835116860046370988180058133204186440123255191660396958145115875551111839943364988248583805689575521469277018179534427133555618330929880255241546237949162215795517159065005370520895952692904862862146639200558864363295804444489043646324134120950031126235989096924809179702743201346644219792308511469431475552622168481394446642245812982580889831540110647407360226155030652334162976949306699421097355699563744234166842199864966874662390084034431932808616849937161631342759233647831123142886753106669033000822437123605204975209982059556085036850629569053878760992440441496333611294778159288457923950375886741714412798361324670363969589214586107267707578113508197292594837534657173736531353003204890072841720010366437001138074800347099784510336077841989481360163627062667604048282843981271079587835542357932380271980238370770144410644086842103811739713904388532842665831753760017158862409949588681425224708630507815047330060971204973859735179508835072019143944244200794820155595175114141205544054632495276626399644006203686339045605061361983575544652168071528008427708146468336921595635755760702486779972631451514330387993655706838418237040715739685380164723593266280082365461458673770820094306680966922214194551964797219778446132813213741414869795431429758410177756235762313137430608604802405043537449301138532338316418183059756712306469327357794807888745366125923038014166775944080257831227577924418322686885146712433154619584173174040846228488359326125640866096080231624712317270824264224338285182293937283174618919051150600478617337897903712556386451064354391946168406653982011578585045752131349764357942966283755626012137100229338616782185266959677516391968858086556951820654150341888350924003159823650531271214842552131673652927510511872143105253693430098564166019320035087276113660738262402484364577863514240610118562208821024143000666700208887116310669012682678623914265437911223454980815281491459348634280961097708295039373675270987307887676306087940075095719887052722072583971025236273494766593132219598121273650074509629413716828821391356338947187778898191664969865669058632372342157340351482139093804078721710888183272596526062384375267933837523481346431613279093965005808106486280364217898860959793146142716954016659719494504625664515633198037519277022146719751279719910980426404011705032500283369186146530499474172893170591150488873144998325184681744477002145178098833364583384701891420860444707554962311156516421575114008527995779146075008537313530539639758851774876064589351637303173102568847159842948850784618405022090347289050303468768251544647310361418615366218596326742351651643471701325534536837333585522551943675911238748853563611492100091070316254130153997776177904561127739777941797120177814679594175351926708396662108701832049259225840091328937927001470190847227809116538482906232250145482482993712098564174768244684452595377252311704461731707512553872258462723267563170056007611946303245536134371774521096124889522930205753849308733268443274807585545997117109780319447303665645389136161963372400550740168539048399298490940381217618248247549378852957358002544886799925213970398891204380804704852389109861777203760140057289262272871385129766903465413281686937197838716946018241803070608742257449260857931496359010214429062148616861696649966766583108648492264578947410216236546854501971064583291467112822910995027663974724487827674507634262489509075228110665938642710405521950439158504046187878318040839335699423588809361179697292832684452578002298384627629499908188244288567285384752594729011769321800845182642993169679212932829498152536678695971532942497261314638019120034323502020146336237490306212838926898898498370785389725782968447185932766686481662036151229218846778588051126000579121971214088168467537559457105313190337201666758635755276719464116943528598084147066303774031845644111287506735024263159120038629971317608839933836454031965708323865620705502407816093751711859161496079057245854820089537273166273428423877480783805866158200047573169747281662259593377859713783524432256436704763671594947980001176477225338311204227659696245678776604055268987287233137117936901910336161786408847171942701650397356919071106779963940754107411402460675150889816755600510423921544282411174267466378700440237809163251585525622009148634332439867793320335815812764481641403495748991173851103401986222875605611754418581981366965408491983820801054646781053017913869401989472368304229345991511114019958810379752952751170209725916546103446627720017825718921300302035899778627702684735716153152892375254494904821714240224747281248883194467918011346380690085016513079900678453788667852694390843057665386741645959514133151537137124547316434044232543654471792641462985307294626159964981767733673021321394520290751942295547552187804098692746769811788137752962168196255020673647192266511920358642699380700268422873767487973441120382537881763337444885617443124402040949043387623434807284165027288353533279308145899187217466927535972927218965374697490152007794249606962786609736761402990580197140773772666806999785950096243519460258886677798782602162871901351036456434201084730479304112362649274741877523719531428400626827299543448685524167854924349142268547694030753163267815548250361584163129579592577279488234685450418409288253583974075747161834594268004019710421693396534129064127975380770951873057224565685617197003691119980128361469503839770651153552771808728121719017009134142314361813031891965104840739171861107003473978421095453120210166793641919135607382302647869061928797244147320789885226536346069663523352954529383855127679074220793723230576788109088089248243707310159047936389732421249901189010457470571171854398825175095349859873718402318608566598756490497188377154416469462031515676577808749989824813415263978982196334065785101944892294935369842401601207374984059827035352529828866144269073556906447533399598716232209688193909820678789147214913084165660860791150412278778597755339301690818143016597554444130189051962315033310043615108089832185929932881943901920398379322466754989913614571794281231514930615498340553870387901987334447313488897019185491943397467818701182494383078502971415131383663966370814983437536457582893214606427575944448682591696490318702323676804689278220690635624195317272783227120177850711118165887901445786019441081150178891887378369092566669950105291919095760109552598928023076310112975214794140769310356732216482257185508239337918675925102694860868186322218569868494820735240691642046650583860486343513696597517407406601264831284394138457112029262815378465237732429200395061722209003322410861966613919092384581991691404900414717433342680571996779372586352958402864493298207335454078977905272827503175705923782331071219931775638799873787852388388926711493294139817419421815430141577304422740642650344589467902931390531825845768603012312081474158390747464943164289866939961882293637433102869855023474846334727796450871989169555279706678194012665388875551333555877790910158903149118643773579970199315170438439959165481226949360827929867924468318616607484318075081693093121749326381440550646859461803575533659472160496254793762990152052886023687398587976438217587809858379718274284915456908888558227317004627052435828344852028630887784242345209062283801171601322879233801582800913483435194579492180683072006424172879553916261449339330541746800184752846411789250090611242642105104594269812739272251076835034594635990585380281659100970451971024901750486309885007553735567879060303575274223663319316850521127476300072083916635156387337696957913218526876344893628547305589391200050382205756145253526992449872676001948683942899895649007480275878787109197213901164765827494313530815869349486379762270593856185727696281893105298974305510738307529589792397919483834053297471977780236857752664071822442433348675193067332377878049078680623165042922143210839077784581620292657587993357892115523724861434900459010985144246303975142955448442513742980009057732646153000348740360024345153194988544222875947341261328786976895914335196525551190831931186132921540816359268637881705198361557728163023058853197421136428032403827459942098804883955343150731687481392053088569076421503491136015674034838467288593046450074012317246389848254085546360367647185115879381751514428975110800267502332742776048058753930974366258023657478956128052042036961565846163793582306180209795463666807582975006824092634261241661325280164707094251329367572773560418641660345287565227541759248362649371600384889480191093993019226769453196880313064786332440616358443571113117954987070362156177131500484302244659340397110682655595077485657831763489113130431269434762947099830662359168204013480517053121214903377206034874402983007245978000470248925616109011159228024873372264713441115456075735207273414833463531994069798357556730307455640232579059168368521808292402703803037540548871917024682647675828401792318484614361986156839165710310124052070563115820865677102671659447965992941883583045668603042012773390684703556263436850461375567812601707419886750851712888643731680841456222023803124596332984402621141515617982753906221442845634449003091825175266272859478020287923549290116632263635600178720274185129835186597135938864573763211115626077445726246411495510269406952226570131598093770204049640363266309236840912536089473389994693633848708636077452986545617184683809947606280340966444576671167231389824053238934444029531869407976106813881156283643095770568445332848484397227802178295943339947889276466186536838168519937343738049516537801523012396098099710447703704972190612181496492115758668169149191330218447653764808780608980926629754149136724843710075612182912776195373583385049336852778228325361654225334384163821136093755353837360320908517030442492394450337610024089564706506136593153852938267655865610141901299342176387584417522183613693663914224950105753312777453650070590191738638340794364247925004281223296171557462044897123162140828416808404940085631189639624920514317631324478362245505676368886535862686678879063401171090856987184962416091346779099573577374927579184798295649669035297979106671688010092217664781170155076819385523231062423665781849145376380174666174270104058540046056364588130636806184536945865808045122720328795303555314363305577572025864583387333912221353668430988666481402951065347486003527493034371559092010732563550418154239836244750118971200049173335571972722614443965130490163688615603967369563143217001174949828508028345844522089104241416428565437368917461186329163450822416721435685324879254446501759469249174145260766811302047113627148483306502074876630647148798570459478672020108607046839430385379524249242606924404993501603468978063060088977330097437299598276419069314720190781724475116830677057141195681739440828839177471016151770079171606354366177290932645071871326089630554128529122100702279170603974067620733967715206212094389689837693585987134142837969637183817599311593937008264932689805851968033439024258357546760032646589992846935115248442342247289622831216084613462424334443169138126710392787682370298070545881950347739375419571617552337727141967434378825919113253016368912116039885637970563512637498710372317697840198598226222386252878224970315737631946012069289902713953630330375189531849966937876497861634474728708299124441772991510410730625083506754973416913569679648922236432305712117362478019170601816611852495118032949625633800331116839180359168610100504846013838990702031523854420373064449360784639732995161911542341951677606958954989068491393037036647305918032190503839672547833182749706433892551231576141049770588447367190413790335058539147267721263151873760453931989538962994478726090814260781376256013533699357053810150132572127167389797122055723783165785584257881021182576348864735948323882312745652081569461093624938524402656030456520813493946266125204291173698942422029235329461532987827009501125347190628604684243101348263020808700062916969438617041903936786750816321161633137981855517717704278875306495581050255295626763575874246485816605363640575438647441485747715080203710654620317464192878114441764639594688258537233653641786382298553323266534624442872597533984757709863626553395354031015070195407947891892312669731675423379252435360010928284375040947131811830804077833230861766049907934095546142289248598809263335909406908699059975196079455629064832026300681496617459118341211082170298582487067739155945957571177164716096988070226646116032437582056667132572857232233035271887833040262322193227039747475368469092336255046369890739749950359359411790237918714089864289740802556924829481552883593883044798692092028457115086888202668397758312733930206143279902666680985989058539093663409441291819415781716674541282076019249958972595085889863603140212440446774048270444883161204402417762375765621915085057025350134705490065794001225920906694976673553443021301641011237922971026865140607329300597843910481242567060338688058099870371643419590757679026047669976860463308008068120177196751892507412666662695054069681450907464988412975599411675471632514900386979216860828573678731085409524906647627470777287780085485492248955582363259451997818723623298951929463784157020018601488180281493527927404131594535231236549850314392023163435230142942281129259619670811389669905701206356319159806009068710142115145315213819215944156830744247890371833041956519690995214237740150945522792023877992838256772207289049982821899583832105295512872088027309067454510744093650784320604521088822622488857916740065799825158541583992844683869815579136717459529916222909265085201093874686961030256668320489046349835762102212773895892323151306942780980620238654039282264975375519131392104943598567981178574065117614046380390704694552209603385047325985734561513449935529521446333560881408399869397414119581482705248497849706500319007249216316913781698338638846464066500532706371190739379584649755653647049170109428547906968663589321850392912042715984150305939930133542187757517516683136942764297362757107175027321072141130696925102897468275135223039371926497113233585488766010573097717273735262190921838289197180057186805158668695400387424092601407408068218528218552087349202925925398924931024101550700494489982263581800626455397707162653598496133386223103342172551542643805039782451143667454173404087306083844980400114553500196267541383070563537774773249521177730793256356102644822313461430488394169819337579638635636469999667672686613625070274672682279893484619252512603072519543373402613556477050945031893547433593953953320172699824697202253533138506282418718823834705671667027535028491393503550167484672031734999660102566798432427081816969665926562219814182762116996524491520937537921766928145620221030618557932240581747090892064159076844831242029414467970415808869180792752899663459412744727737740917050725398962879364522579070794774507560932400715072591031725955362075673182575960461671371183462078802994509566871651442162440318842868991494644028791267096613954566105666683102866634685118470625099131933931904682977665334520423598713368486758669958600287506966254846138832484638155788943706987883313202899292375425237221454984891782549815756172008230841990819075540345767711738633315279463785225696247367182462027355387020140275380696243061005023584130543752283609031125503681626352355286249566304889792496351976978315799024308499453904612071917370246661896487984256102581254185274050628896756896626548105652680743770486066066481184694244235733301626632979861994457438305880667629929405385094748655377887809350310943505524876608443250792809718885136976628629557587603613732302105775957692165928746945550948919374015871314943954864151128270048975668983717589305545674161089190929004777671570200363824400629032739750199643381795134291702351668217615349121995775939277423273874215477612826756676197378891758813842385105605754322161705355860752996844747592533280215996862807995520995069375369571819205052893737509472547508505579751886068011588015128501648128158357423254936800072420489261258251246461992413112361678874214065919468198862119998540496306601038110240295711035594020605843674261033834711833403590230486285400983443760632492300691808488784350054373340953620950265574857550221587017439577584218342527259226067951139468838636541897609711388978086993540799956633777602696795010374817635009803801433552814750055705324026048998361218432634668680886614654761704180465910168268063039483178089999874471110340454626529680964919927686759346884582383486411121396238565426799923520602704351615007078345958706812314526593941073676960393297658001655700110772293249257302037300852745613181151654467505549461608801163616277020401887431366169702779923149517802473503418026320796251534750938446810672408623973384080677327529239457316447794655084673138495694999074164570957177925130291712941490899953246067753801651603351999393954361489699115738603630817559891847300195990861803549623366637497553145825396298921999955317134614983145999907149181614590740239252850258322223131455173523099124079985245316590068433584286403139036274069397016674424631647128403888095396374642390584576585271980843034455333532986005270374333415021163677091279551673648256010030866513145621764282712560586940334673677064089214605251099916258068386949662462090861786760447082128318326467366246603330157917943430526539486290105297540604992911700780640566290750097609087271102375331911632752539965185212543866581014375322166374790727647881868157433278129053288859876619358563048227236563798161330821134830317172190479094358620920790112722140447425286549419812818162330811086513761927960179455219395233814529829428941894517147980345672011464568755388414023750555762050013253518832870638318441919331167974171820750778399107606489684242628987543496125737802546054675827069624595833050130553972859459044723588535997676755018372712281034701910264782480743631404283276447482926749197305630921401150954589522494465423669667909693394699910047802376925085948880519994130942426024051924226282122493069904176493527737382472339022769533794488485648402364832160050074213244126075390054633906590073392819601853371014800126689437546071110209793678662275955491306179752432953564368779660340183619907482678470554020284148433381223768564946547760029102339396638963791089468256546967566506084592567167602490808356143726490666315343330084864475905343595065066931523645213322786872388308430256672712771008917321540639580745907112552588977949808478642044856104191852016928570265650728361335024135198258966706010120600929633480857157674065021552617122141572587522794858124982941948937889851250589692205310432561464063160256350032407116083134336418138488831829463498226726600785329034621638542960784183015302905988574751091516045915976738918109209468502547022404454786853218152083436009928608448205135310443045843392928544592234405818268673019590385280837371578776038541379922649079604024951579525620464895842040817342010383054672638526700692442804023919242187119637357124071181293417249998476836835991509238718530847218904761892908134506934414250118771832502327117941774286874250130075491281329885869478273288112707457984806594834888025845591596247736306876710965073532258702569329128610544063050333632799633609534131373182793598253018208079522433412409516345296554937237156287527400708806177577539520891617504468431503829507829956769186049623537452403977199453376303312547324433592193743111753284711952064170563266833626171200588065446580295557721286013114940935883915400447109614328807810113728201532441073542115276838461510713079509832655553392087910835997218675745774785678042553546404555226017216848708039922272305140860082191433758667920801767752576825667780190810934166593731287378150759206538263059631763869868573565377075255144880653257779559666478866466742763498326427501117114728034269735831608751841802262078919310706994425305429754989668920911709166614679773107836872122954633314488913914141284081157864042130058457934958910153014143919809158464189009605170739945757959231933641546922380599178017813661148053569549665991575439762967060149656870110868745209235779045759345018558595169833416505523931523094380078013322054785108653886529422381624153647805172071033494448922160711510927356060065922277862750543138372410847697065351577192883143569930496905599709565721992501322950092513688649873876653353410314922670481091846495738642584795417305570897727817763663460887749355510117594836541580084746609669341425554043255996937812366589116454246022917011329549878139765132433645244530898595858079256720840168944299827663043418925121176873689377554507497836865891001426783849914169319312166921696396155183889981786997872325337058274728216763469561803375094698394087006393748380650006521597543536251669714980202493340790786449723339145651413140990539497479540454836114113841572732477471035987576990129145112541197865881409603816056304602300704724584751981116327953090108133881993034822487045188234954866241043136386223690993197178951012460229225910246003866713013511993862573477863191641052776562644806896627050117854554837363812081748775794097451987055227046901870482192589960026238447425022597744124103094098983719519469606245749610319588348181349667373080425649906646370086306835413532014493557305015090315486827459198884960996147973675789568263297420277545702065136931729566122418937552646058192611152167539319781641120191204271730499637119108570254785010316797896396386868447009169139863614380367859324345103791990819960098562727663702959122958843490322039342981528330418001234236125826501094730383664579532902253411550425928543259740466872073058773347319848112426304827713077280555081696540085819032912262947969661872731518043891917791839500125440614184810131785101524181796740028546775263606149205831383915965441396860423536457539975813882836455639169235874941184541007483608792185934613084568483449294581763155137867779747848200562953051741131504038287566421142228596499923079486748601471718358399196563880115475860513824539826990510578907176899456325362744663175861554493258030664756573466128266193319714778867018707997458213211927505909918559009175471330758307035879523327678275861022145659767003004662220954938576826468830801288964492227531583714033859487668491704937907795813588231439143466702650870963787852432302048724642174245624150988145657794071302179844650839474126832351540849181817991650148566515444320615059960678600203533773702351815278780036881990820721580717659902141152513427175741717804983106783850475306202256256657712291447710774214862566849941220584827660859798931914223761457819646566229837581136183185039728970995342002278141673808631551598225132049706457497323021485967769955224167847148923242522396946199181961238990532419190316296989136164770470866521056830000210231604280769628563466631020462850930920038721213287740054620588765681179591592309567632890468491388922881966044743103213520806011956080173487732352329849426249841643349164842953225826524875047950847625671851152044085164098862489004804560843330758601617069832124699777486786697503534828970625874672365259565450786003595184651005978923440019340049210729327353626946707460654409010692252144104145542843863105684539997896733452229238512399778657381661106554913314933814769172813148216140563344910360696398016844246730954926235205582789656337016143310535673988642790549455306632798091982849230834822726363609961895409574148403468631897724525751480846740251894684848008692561992159244508486129660029914072912947121205596116221108702622088643897015607713040594058420384286484368747699738482640042068259660050589926324568819898267522365648432295482411464396130654844215475912238349176851967816721653795516241132176137956894303948786391675587078916818313265850284880483751948264569674467661031202715691058310549756011244391506968351138165497315526456953038983723426233272847994348585331972626719414293290377268459161441870073467125348541009671839790251062048463063009483176952797734078102036495441237152206620335958647447948762752596066746409354545753010001729711326544628839968887457552609461589351401341081611664128916425041516565398936692690093625716945371277695621745643560069185139471146733185415812383273193585701131523669995955274104667430531855158311774304311101744066601667487721728911483299236193851492666541176704619205233839678488054613162920943113110026049259776461361266306561225057521467544073554414266815762598908359727290740612244808228527897502528482557567527609775476846140070627293436746552027990345384998445710872339841215486214062416107226608696602254719472673345700028326698172917124506378823976167197171420140325887976318627500581713263304570311303012238119784621713180822386091553384976553905054683968563274965010438504957428837671947490131663919319244755455851132774115066944635025892845098077393464746851054068876365827124866892627153125844355942564264281342251830948084099551594127064569712113804485014057926292786818124446195571955253991819904767019288640485454923672345314804459029988891146502314115536169984290284365040042562156079753292997554773786636138530268308015004103307745509005418024439519626145243276373423920755461180428873247552083950944019100346636730014091453027871555896272583542262257016257045249859946433851446121248384224128069905953092887162616584363016934402655562631840030807783457105909989381263971064881574051677836626055822754502115849868610449770107406055481133369205642791335787064503243823734979804105966735628984553825898519987481962834332679910196207491937302112511169784646886415769274569019783565996556656620667759258363487756637416868904557794135901796082178610042509694711273248579485823928427512874750458508458107981351273291114171336345554730517285171132721131887952144500514733888269143497159284974046652747663893413819246329054753312493298016520136534087400214354575027130167003350884076386075544555641648153456226573498171084290139617031197662487372063394362822922536627323550805288165342861818159824020953526945693105561875761084189437125670677999851245011229754595000352947167689114653277241010669034045012528881849484782786891308798681248206917390560631994119579424880942047157637954032831626216233183686748474950024718420825509417851937555765498779122047252849287850864500201508638460839059829332582626203182442206603175811740435882974380387612274621593549267494802832419160847072352876708013431907299329049120018730041876168126364238742171215565475212329646367221569496643962946033619605609658145596249104243754999172729708697788379393694354793199752161882146611252007403245596206403821774131536898623925826303898279910667766622341541763835463986462721228835314371806926615215968349950092977562588108147573174444217899265147220345272623958849738373110933980854110008835041368773020701860378857567532303071155801589278017999748655587396902202479467961566468734148369258961827719015044107234011518405779099429372250852352153099577830571676344778474114921289535836530830462760000402996408957043143149066579998353580302833254045892114788137167616060173750950452200571471561289073841663780667755967335774749744861967740395875531123797831056114932778749572228644587336398439021173425107483628366188615343595402671662287364153024404409209876519183811429574426404288496529626787855383533821101370198857657799501318315487228576539111494157290243164479092162834224771479661564960294031218589911990150314355485876629914732577017292465448037327069840545157076194677310794333109577821457803496387547814135513639981216958530142677205420741424348163646491310000799351208664540297522914110563538810562526679150335709548241407488082615466586348341285788469482644515910523221595361942825038435567708332712508369601339334388655365294466425547490062886267572500946012150952526983560530633863363886894459323493190198134849840792706777913813085038732671797893128635460337562123639091563913552274363959842334276921333663598073818178415897317659848911555120336692545954285205752384919029230844946751332312319513347156007506151640986265557493978224941967938933760727723047887870447678040897215794428387846495408039527797562529731842091656251913220413924637952899639523430087462162153785219152805092422525076098111546539747224044197161897524839191807706499191302211364424114463943573528809639060918514193073564586738282683202668830255241655262292699991967163294086292171057113048593967980365225860457638965823047271573587374897892047111771660848036705478516849610109624265376192879603558686988580286774578540681426651774842354878508301140238129870309386166689198039181968723085637970045129741974402116538303540835486247587177984549541247110966029699742663128549022316535635510241715834319289441466492882097337514000885218297157644389276732134703361612562122535402417137090190820583826152255453373905016503701096965889266947006770550444978187161001458883181407643889180315205757937241383255694661453520971450467917943238459355920616927242884243264776292324424479294327510169036461019229077523298812520104007064347770127345810067630923676934361940112098235964345170471106842577962345083746057489793790569381959513063091387389141456188465518814993802140168000541336777261461925887024418695937961274227320842910674340090335976729674933716525672715057780244160412916719584571971100000494311042023749512770925035614626481060836591516168926150302251569136042467283380916304351745835613359011936242685110096239975615163361059889573770784118522655094412370413979806604337273191081584518221095916624926810216569022594714771589100124431833710318206398646996406534016382438735391680316054401953635358814356127004808166817110259113768289032635589360058479949785989690582919922242249615458044098594973769863841248568938539599659634586100356177815990839755892771190977993758006598727462427381412002549358230331962101440934694984780594976044594319082919579157964156056085978859407532106697270340070094241552767867262458173946982144992784890485549199149550891685185254123552912383649952662298637476975680575144851052009996725556660010557962363712718324462706944665158924155934601263837116749561985084621601392883475352642050850525234193284922265269982979393839912321382088219610945691721048046639828605059424158996412488891669400980297683238694410881399165763753688110003026122291621333756226246939136294464381892803443084631995926074635846858874689388868964514928262506480305650805299781036005182988171823194497551138423167691778562979245128287455430188030809493903701741417672276321570983032460729880864984197979123729712104354168249521618016933673970137259255945837357688183954348125472235592434627956592443313341511425958767544295340301094185508751973187782081859104153135267562599908912228056192810824661256673782711866625450949443493736671045888450457022745829765614190895728682320264703365104167597447425950017510948436514391294785864642330473924306142699262504021356854424539495348172846103118763078286086566866472809081720992414137260173983420573774562396762319072801015579374668338915822664362723559883917124300149571616454901711392019710045549123241514851730170060181758720362177306811399413309670258610343219804220749202915708413173905694082902084114058918530792546322369401601888720726578421864764378016482687169428136425096962918209841379370742666732272507416921584655486572836652158589316930366901362209644546281171681772100647070783291997075133630741348623195216567546875166722116031010802018807124185644033104247839097389301427898230752778695300576190208387142638475876278512305494200022204364045623319919497119323552685358803472631338467853225900923143056717961225802971696923049747914462177469768950818183063506901529761849254360900726678395019895371957318185109103576077288436948239077955725992043953095164817406458860360914344943275452741128201857754874308158715006611440476443222975372816139744910593951096760554224430273252219564248749121941529277588456913398100530842856785241994439730111396092474947676264525310244378287596553036459326195496800795441111863174236947772613640624625142240960503984282662744759442559025370947363231001183797891004610861816763326337654761749714926749698830545498422002449061614300497788438553068059033788757940188778182196598481463846885756794448551573328314118545280014191885351768967609337779309203339177971541252125592731902013098989830443901925489929401413672346963451788703053131565817814594810866969261797154393664047511404776159231759195398479487831626734651451363953016267234309135317583401424778563250810201653668877038643654367473999758342793967684880055037436467696805310201059192550440276788082640097701037971761785387288868757983471720995674627623845914682627549625241045023047268881295202877194666480694266730822474187243326428358014779678415577925402846554681288621118693084166923665707328966637872442768282835614202570591241399120281753450748073825623679689687059211901719728774350071253189375536052848555768505366782679219073753960160499702235770837616655186622781397919855485983147426385872668276615317541811244598510522789523581115215936830687355613321585889914898564246815329210892024746555497150737961246210844140135983318385866828655398533280211810047438503044397808918116294567189254977829939720078223099027267043404006491923631176116156461641106895638449021587929539445732478267999867828272539385511743149138364307574609064539985285460038921173038770648215890685670227710562464063936075544956577939662369893970521425880985285869281936872911761071552996155787378159192139978018573642966278022767002839872277515518767357122032213879005675705731007755060969470838675201488744397627851693932948976353779179986700580830377498927708887842450130495365803672340383132691002032510578455051428972407431349397030153212744372102507332998313295635743501555524940668512167292501734477415782999812042253696307466911583170320395773399833677110253344193741456921009327239795487781006360143358617644047910877022597213190852541948904762674451728954469554271433938735051841160109332873783086295488122242925336866754256319239295031806777048281616904627155181224644208702581833451073675288763344748553256040906987494305895764915063630379094592775323971384828748153692450251517905319562894365953104681323428139344211879786861514633012076571726324132709522381242822286125450598087322150229809160735516803331393727849059724493620834526075115088916272189754639281791196504307650506182987455988499543608013661322170829945494443571637384788400331954133433442429724622681751319466730970260490485843148852004373599070442494153075748378879758430510732396959063540736050078166722764362989633292023520077802027156236703185746854723512724795206971501106827553906751316903747287797457454314307450419885678493569324071225345119263252360535026370023111290293638350217079099766179619909495657209570965255595782902250337072196131524834515267275339597267758063503208116043239012098296088949580212100647391711510744183618169025055761696793439568930165396481040907476326196051023222046712890486484410817483158912491316673201592335573637573555419244658331235491900873927738677402298981682307826803146777971570456300468474011764151768608453087673266497319130443397750351527207086772938638785004058621302850741593316599332339054159397148813880796228056411910112222481840769937287136197601283938747209223435684347610841587163447196561903041542698310485004545852721830921058050413217748103371692676827293390130868142162318141830945481437158368413463109684388792750236491932439694615485850095623418697919704570111295149508714734826889429285138064627897782200680387186248917188261749024132856693338935844123307408441874291558615488115232755178243530500965087597477707352377980480091027717404905727713433136415807345995568446958909194560417660142288628948653995965778597327884675367121906658179387247528933546090853541957002201095980978188748564305759614264201842835692451160368119110102371171572781193488734119001568905814184241914563372014580174914761665693490714579110135238804896436961814609988726469879472601108035608263933322544508209489206049573245712205040975700521192270733267781980142808314753495546993363791706763180744502993218767601484462654303388494232640168944399976794093768339621947147518057120299740557927553787977287992982621038156863657335046053957810605185716093194345747300411536937624801145855266108333878822199320616665417026991037559217523224684840000182956721790297476751871643873456569453349275595636657854770641047629528749632635381533421627761757472364231461844474746347024399258736345022215242323515330717439779664023159163698661292976097686813136357024361412991980447726391880248324036411512914827845210898173482425487664727016791151800253193116989796190347727109295270433197885415837836675790947109498620621395290263735104800730586809166158819384514123661463656752343254664938192847859861155460349344895929930857029691275654878496536701084347169231474435426636747557363138945508425475322529086899892092723024525270018362150003313109762306747569531445376320242555245415919235068020315716682353971073343829523114928252110917248088265353807807285122234593465692635258508490885083206452355567547209612398506269706468019562316776767747412737665341133541591340217300074704718354464901214859907182492472063889231082371851123435825166770070903785615937230903231816305112361502782985048429206260748191094422733375219172875570808275122396195629668277337195520059613737972467311402337935922477804912743754036596845971195857451173756728515287050837557442923814908456152490797055283973458118577044432306318912157865989745326936694336400493509825210304532215103911675072340853503249304686416848830618539298442128258576441465695726972884981489724802793988101484809274216154780849933493471803637683942504482297797075758548942430734071379032107613641697241945886652714614925946037597109002592351601342158134771038131624811200159076846695475633896812045270741194964273965473654660103160605631820562072632671444264454383379693945580037651686857198208596967248490728758888537347236299787601055420279888713421898602230108691192184824244450102085190369500210071528832495769412886439187312479321028074673070670930539031943060040902247921768745687012322558361189290289196970650566243621519967035719309283436240709207037159574041818417058357464645081189478184213878436446016491517974867720035737117223471899000251433703445191733024128893894289260576266824464410360457888389160659315915606693138300496270367578741977861444588352082910955131802865785087892796138538470325057247151645719569210066752797850971749605740818367093210486772410390293036255354294383866425922178512057967817650014806368795794416103451569051588802818037371687799293315480787478176203814790321236589818756231618808323662848681064854796305658776926481180293507356342107279880987033538983283487436827724427413621759201457896376596915312233001552798919350987172831367611963690452789229199814344216702416584838577226820036111855807966888852076562450879083889302564649973498649913790508448711307655877586551980845475973657582670959715326146371396463700089218191994488905673078183552693798817182342815137016328448367211709645433533618207864619602839776076154916682430893784256450403187681487995749862673264423462995435547828380360324220090631591882118240278521452051358422553065859696623054735958299107938029105956154337173573464019170123587823656500232521186503688188593079471379498198195455450404066474434700429781472117090944151848742084280270424508547927269174571764493248230930661770320801552610536278719944099877588102782009221189005665015915151905813534596456977240136641723570833465780358532220593368935306562176970272353387035999955301875673205363201925343113975838052023578776684473106899778719120875999522831597763641619122333656634577345653789590715564033346740329931952407201686024435908898089552204871337939301438224895496476082574163648707520199394814233795647574591799132644481386776778331075930524501776141729436208110481269080639707221030167789765783207952212614578000727966332660433172884788792697525008429254570974284813897211428996771220285136969792980216964675741729537389762558325319036039743440987804774195161642871871007731437504876021820821367450907265032948615562362797826131076337801913211577461503130500666445047668731032293431456639009667215870052843761966728972200587243220334579092953201861558101844350436277009840738591535525872402429152274360270555710094705638091656121237798880940207243111526640484621829898200400738442028929461143970679851132050008901999317533944290178889815162670729390147550493277706437651000114181168509192059757864147177242421264084519364236092233798914584782701934955562978352710694650738310740539213765222863455889873515863506916100209115764824516435623798767253985886410616280147645338233419574058102963345848548993315323290463788757082194071857925570885591551099451193613117516700105868650066581649561343470012586235383954237385719530842470954978184379573652849372456984370914054294940926960587526998312198644334499519142012422287910424599676602973388456226280353324384531708753738906852181733277623086991562134079104852333013791664234482937210259204460833904326743766826873621621055532850727021307084698019801615398316899426722398505480466636932194950925610666779555918258950560521755158146267066700066683449131428545932190076350418515892813372310070470452214409280523699128773116846177659701681451495563843418842901191921676217309526688110085433050777515357954865908264221098448113921035538690617810521574673960626677934875909157003153320242958192605503955080972750826221463842193037363091998619371857877879791309470848745894021787252704904859869804039278793564072130427733032694674780852457282257572784689047328776630368644232064316122770531371521931712788816943311003529195522038395401947689612689841691908006861575275014709364166436858829543871923134503814057597010122201097870697881926599987711727936670313498453255132184963322254800637322992588144477662450458634919760295292242472185176704467050378114588403872275965011531382978318801137151616186465128436749167922356538359486428122949170877029736837774300466934707497701121533732105243409926685519632611245948902182683637125840656145083238138009742070912715803166807007265681328888930681130403635369796006015722229031096459837577901835634890048867836903389244999159741121966168646156559563603789801964013837962974900785950780660919376714689118337665623829193387907913794666799434309746449575885262823673287392965534767678589907097213085767187264481878552363904089720188509610932315974804682827688494195616550876355685969256478970689715830288495162358029104589421508583496860516519990380765960200676506197832857088493365173046953037159071034880582584530853429262437075359400320161553112640883062997206321137346317900521434436194216473712985557759152364160717592129816309808622962864994832347948027817220210382127548172092961522744440334299983828337037542640739788777705368707066102737605343224869325011451735468343708020998126618719988391256415938099354281168494381318063266170214449825771347150745420094169477456763433751046245441984153404068344857891254263152859203726030436635077197432626837525729695615968085219725872661869796260632347109154705814937992140483746341121723316760303696821261429662200766955947406029666083334042526851331942891921279939294583236416302100675811500917783136003544850442073499573191523962514025278950573924645447034848280774957276807485810055206836023598321069533355849742365352805239890147846777524393298899122400465312945765790286683861818010945577694966096150860092477797729806077875713257141590326185642520992951509002279015170382652987339146213036711078041150815939401418615163671307748140928292775747035659388969614969407681922781813424560208644788168753183298785102591767905527943389231508793086565841075471399043279661388081097027062889574927287072149980221391113428746955327643274465019098822247168511913261362465192511230250495710154436134588109685076500029752224435355744601104631152095481849062550855700498650751562885423036220523083075860214578466136438146110061467296216569106145714872759897164485698545976027245900754581473800123083549270857554701049582330157600163070620866799607612884354132926863069088510264439802856761314608956101182344806874648159761189589025587947965479022117874118972197020379345834980289876772459887545156353106937099207284900158817022778350193221867571218054487082297377557995904019941068059654731049317000473509534856285286170273590500866094864542174133891195442560708774532558069696351556715489124709545035911787785591925944485232133212976736228619119665992866865025014905204430869540274299399855938834607185283529603945507482563855887864988861994389828948618277496814039736308838316725245907305321813323094714959494313869314077621082096282330248372743238736049732095171024604354268072583083782463022508253497203218507403996918150291549561325736361564877307058148416320865118873202422219722618031587200439520234535929217162777135439169373653535972572668322873510043060694667229324304748180412613663717462647442131070459594180031520102586877271978046896502919339216529443977866351791764748570648941471182713443899654936457723174357173622434573400131327406290119576070998041215339397418060823851488195767395857495705329481614118342334280455144669927865127615339015246595228765199603901649108337823020284479774784030679175243765408128607630963373575774607966243140826026906379475260183028111393668613783257184469976235936231588271797091548210799478490626966070747032824290172261575624874016667922472108780606000943721056357413836335204414007995354040197558448095841356040884812583813892357565647929250264633540244904585424891315589298945138026314091204847257159621699215958187620139418960892221204402628372678649677453843535572035925963851532442403278799380949544712867254902899097725574636045740969916571180422157322523537978001392902672574173193019481951494185038232207547464301044863687333537674569222202416193678868046125257157691039315380391744810400808213025138585049147120463530107406873646444347040884486589945563650948655222842906354211540083759935381618127205675009466778694817026486671359646879527738504120498663733423810030618272552740642278184005702966814043572210478279904968151589150997039669046654170166958607660000246480570585016258550559927387706073320993284331397142657627952671850919468693320442071449900568245279663437811843922718840344499331339978324091127484673004360774937091887792978719762022100855365913923151656654720635807630170986042059735540489663281370772319699716000145587538917072095159640286670729560898481001965451776618899073534162050813119143183020648279632467388640960643104093701218822382420032434117729205120346806665350830667915798626585488157479287384683706221999053319809578620962079224582962747423614274550289917588632798452960297711823898937634385211399162622294454833546270129911303501438607083147498268264689471749315715562591775944764548162448490671389211404297038532112410356104751459348149125555209899646297125720133947203091472835295120118314715481305835995134152670725937118373029752072622090671300844854076606774386097703381091515036965689467484436767146131734758310737588092764305480591393098674932898301408746041697940856591087069548910961178109933621106112082056037272430020709785541993239180809297021883237001620821440519870356304364691420941909014291926521428554904703181018988246674848553615394327569002499025274013573018222960364322808669403196682589350361913372702155701209935693226092536557310455082544448338668772479093885872833994304051886898490409077989197092073377122963073525908804552832380259288447501649711172438092562051275033804223149701253909175560495038794447811750692321636287401813743147539568839988997828577833412014613250655171230064783992753018086998226863436042680746301576866849649190565443006597054946326535176401382894406914582087964463330985864805630246852743421991395527869953693144626488460941395120822744459857942611881469967180385001709044529757452091083721316947471596642968556197614207322089234825576928316697688168005596100740607844071061349195753345621409289987228744734937102657345212245201009109419607003161939509546854408339338103042851633832331902236390335807217866754197776198237045189570536943440955986066687833260841831003923162588833661336500430739313360744723782224737152448331851537022790112916610727154002790267101264277557590070063018663540399317470200033886509672376056132206542559132547837779566107521218413638783107924875550299212111107520454087055859707112359563915501746614661035747815194362192922575062394961262990915808514259562097372730686179203386469895109050093787738416274076418671298537852203761603738784923281672111926395712503249092957766653186800099447188859370587406766450134718277501283331734007130648204111530799934604009086484408093783306840107762764979009163247855738406958083608644138344662594464782969609049996308734744729839120076486014253968322125782939055832723544859917465585450108050776234539964463785198065804469286385794493501441359536440164636064344396964944088987095877399644513869452862619990299192205024416597547983834584900115670136744515498029944262426285442235216077302335322408372584638150357597098241502620150523067124320796555460015536481986701362368948235949200661584213629314229915001629484575971223040141449328795168112316988769899188961875773723415192656088789146829556846052603546078425776176192778907496898939394960627095842248342808400678742904621304870520179659669092532657395162826962465858675522271198637108092647593793382861898117404019716007671558977146999945126633936776591586048824556077237658618705557923983949292587266460650607369635486983954296722694358653884502584976586569286645622012580712285033427023343553327556985095810322956082656309426449033456634623730949606080740197902343845157918401719730834096707997855831748346383749287061803510551217439077364962405380101834814717577474636755345830992869034814668251730397233972034232171930321654577303767988511665602955305980180201298255508693415643754678349827998425870198493395560634945526314089378689040647320600599051653034332560229462698095780994280689858968277210191295921524929132136647529773075347928156054540195106852002002942689814305500306270253202813972258112033128380688486634240808714603340038669370919112044821050751535201885198364457333446442252608424638519628994838074963335880389265856985697663572935748343299700402649029219188282897045309745691931886287457632511597821595782660657091910072856092015659146568125069865511820708821682186067204353371239265958809157417360302377297747434478981341600057255249879820417968983722029698984174520601846523355590416427309661670085995840374799110940167733166625111692419725567143648121276536769723769970217322039932552933981575561634885748817319660193987039417093947074404553418809492540136227471905312116181112305435763024556650994058203216499503996900097253107639777012605146092107067019312126089540551602878858211343089378700878729593285761857161797769883898528729475001431012900519684623470824650639071854893592019381959480307814419585823582156629865630717293206170212264558194342464848670850768684402246029842247922997414553488625021345669038090612061706067986771815322308928635608926370995289915953358717050948320063962681743865033580481338327155065019605826676419171094738465765728011593653329111285927158988141064569710056481354371517496984809658672098169927211405026000952805698522861137467180797568786709959474259085142945727208886228736793307202879276446260535425413979333567368903626082527145160075940589036562806639640464169293547836334253955689501339283326525731367672643037190292060728152842628469236798612079683548411803260935621313959698860602166789714684268856006554772815662525700156924755438084359245627232201358117325157982263339070694282302327015274936090973566872827437002568478956666606988826313923797375919822297536172693742685327504984954180159196061325670792364028632437682160020269564292091792738889495969418602430070808959926057989204917078335674946129303183285743394286273911476490108316937004481756857298630684220558343464939230702687533395726254537934823949451577525851028016907215040650145323369922773784431733974914899555868892483931020560481974518980653498372614796625965885863851449323293286020760507056559074256485159143394095057188471999617319192944825845460111733289987045587173966768513216379028597638724407124957187381109313232097620485242414971466365941664254670893096943757355492733435405034177480367230374242967086426645826836270573320768989242431350859859219139885097882518939911502383777656151517154531604488525408896711707835917675871569833134859490851441997051278513597826674438013758372265712378004789946518686976065668341226267922877677356142572673462406006672064544630627712023499004040622720087706745501295700055948112954147329717890342376919877806605982322126357822001973348466014813248797030292380152947631628539434733116106994802391516123460246434677129822558034369302063440544270414085600964762985775025306915271300443952375604526734851282147817890091069882216450042803618363008617893624537545394583243689726079770328715186850130266263927885741173494481135174538640600368278575261051377053088695606188623613015872410121182273800050521737527741774548318963269538841898746882850442061554816586125531198285983790217947593034647861066699860125891547599052555617534168985889572852453454577414746699585034444848072959558193465998670069914412032622806629350996450681943448176580016381143578809963860254543134128853178161692566966761472867567272291288733326041720021205749758402348529244122705909917878747947190914052016447929490751195229309911646173724594560709271980767661341299045783867366723946250286811510235641432667998624907691876969104374114986011601536557260113524021256573817172371704594037207349192740322178812466079995230853985342914051862714348628175887381701098992668363142839907589543188191476237531835256529343832886047240759575732187747861401598931693215989858272007022284027900631719420346855695027484251504406674693882714875572265893671114631481983236108119925369183528055969374327542559644371857982253267770002893471597569044871002426243286756357781761208748352034276686095331176831727702880823647115250146724933318130969842612954213126430000993282727752293967372213094282279180447364409872981136006142733424223511728100255651702361224507612448716529797000606216405971782872815607935677143628616690988378849344296977649647203084509519953536552320374802001714834735882411976602668620847102678022245108758670087553018399547686087556329462505627513962425090126173496326590632127486350910352377419127933424004571110362678768745721969802985929022376427176856760136581426011337777367309401833402654154827681627953018204871612619095299141686430465038933124565428036502010343392110621185093299952622866163801874257905808399264274593560823748513280844509218596872626348968882611152081661632717640862908332808035043049058163400771092263425300574713493951655324194570136841402446249833858751783710633633307809606543903422940451216962009350740233393398010137540595336767595871359490185606099763073301427204067093899276171875393235939437689816489474622595216794977091286946837090641258965484517095348496919244025245293737299784300116896341506955945900226714447277192061976027624373269486039045391673914111165981503136611666300778237041219342476162410903292371929213762012007707591783667728756372295012864047356667418882537421458780590569030040665369250223633402400112931472018363011995995543893323422004578115132233557583553539117720757939083042985458715131428202488625468982098350882720805751787538524944900934182022841733519102462462940939150239979064057139100250242572209900758553052324266140171973901920359295461034073299384850745167450533402793147987666818172100151078046394056323664059632482823192751939506375160871641061341291294317356303861141545732684365077931095868570604582794010526399168583068194236556599415345104286390590620867878632289220092266695759556012013145334144597108086067841328139656832195012733762250213057579128283152169761257477555967748922014678958968498959900178101019210416205540316105909619310318514099059127056441018479957408386146063396372510158076834155548963840762905521567026538572590587358246151756888907169540168870734518187870388980509470645095688954942978620598044586884235381035379171444518174641981951919741094460306820154969456895911793261016836283343635437130839333711791218505403876465044171111600354113075479506087025781436138554321652751664119855315956605075782063244789758504834181191921237888210241613058369450811968219804412661688165106797551772947543345981906829641818993982744226086128447911621110991377715461184926387476081005568471942725591557011759965267428353271023233812652234656858724547725332468987499746975721502159283781981927514675014714560399382464887428460474479958536744481167177454001043224514935684289439387698626431665899570816512503390973160507324251962667114334188692557111994944383668373098508184577195879534826279955539925083604321630208812050513667679322847671630158780364586154091377999245606456727994490783938590913221255060699016970784572361935828168981435351956539725935256763108943911302564824541166260361924301654538786860051119670637509223159660119899600533662870914747946943015247708591978681731675075328642000931176295443634550354699456146972782669746799010454177485387549713506454407453969908400701820061432585527901611270156746429869708834987095751839489083861431462847393299083179681337135855924142760334145134452532892463588359690579204968288371290240057141225628557132740694049706958274272251131958768837103500172882571837777654464267619225075282423759354871114615585614370701777453345521015949791302195740163162398347534236256735161585022091151772617885305966647242365312205210745738891519211868841290139727771928051852493978193512710407242747197839336692009218407076003210047729467072062413748906970941232015662345241331580328277027575347539859331424581261088884360258160631065307128982324935515537950970686882852714924412064278310667399860322165139757498293192471296583991501512612198870680861791096000238605664990303042038233100908593130786716647940009938386112972050768996976339635757476264776650213054485156635505094062848235904837101421649643780504061978711171498813068787568807147493136701885980731007764411135619187947503684421832501506479036902957539626823870581045038043241062593728999081132096720693754600351057625492065672158464828704574209407070552118280022406293678355871759935437185146345596879072377869074617222326531343783761105297236510337070981972967929949164306506246092356955030413078103112516186183724463359063179739890105407953311069048108863091638278859545753264132528284526338629833794805255213613716300043241190269445296084608529629432131582992291731308576045541089286318138561182037708243703359639655258757584772814200254380331408449677388753064517256211001454569455323048095528778649968080725711031894279798193527754895833289847217785561124544618440243605529210303361920862819379505233075653312077493688958611827175735308081050251386505180931183273665192885672283535626625587921669648968414369851811157393136317514560275499183844481395441681403389938158497807923107481126701670691108305870021718896765027095705823435261630969991643165175571718499900552188011687613850530420722848418531910764072830883328691563829455458352449910127918314149756265734271484846791689965519063770175780912653544104894314257711769993435806368408983072112845202480022954124958913868953557177563966440543160441253191542919563201125247029514377210313397170643694650718529294148922435507367237388681077866702612218424680461925311016895745359236656764327673395259841147554008693681467719284344078445965997050042712734103347290697948478194231296138364964526119266351254625070300487004433707245281069942220513726040278935149920236200559432557942638285929113414276903960939698445848787082233677237928628052617615041114295376203225395549730570920207403406543207911754043290514713737096347411599688591088971396956226732736439627223823580241009498924323830923852546536537730454140746054298547814837841897393042384935796200123099140047071249657607618862082539575424630868895324498735499968440085494852648654389042587684388188375524681255346374405295647186149854991461038554807798797522008527621257303964183495061237978382604603587688794394776397617125858987589399643399752032040213836244114809449900606531680564539195052456487284306821499754882431852734906649840241498891886197702801640724034714336819398461573259572022942818582631147267759746622501096540095660639812577045509207739599688463391950946445618755266345565733476206218320204235594519416096951454598472379862933491977871013302575679552288453401139791565754968351239152858850432292800158094912548351077954161290855280475185493029536801136256509278477856779437704407519662791983927126489166386071651053178236592396070868684244297570974942771239456671403885267433467411682529614406018957984860449616204375613859379819071998293952397233521908694112711634224299034320312629168254853965829151415733119206318587519438715461863224158320329763031312074995040020423431237417332574976784424643007064365237211610925391364867463461218717154946210982356405832316857639675679505929587880719231370313047875242067354439188399179099598335246200664816192216505790465276240007307039089437419340510216317693883921294466539901556616579219138261666389683348456232853470900319695940916397163288191054917159384848642434378178851043379046208846590777452096590686495918134794812287444561490298133515092920865894391843673041557891295603528396822617275270013675219915855661388158849159562006616879996850463753335910683791664779401308823757769892648882881051154003925267605062277052899591750360972745068499225371357274534425969229547518024183008864661353775192596101761667992166871105363933451785053481499931617290868909373271202589504018905567316799333031426786555705279760427638630192640653498444282466513577778859524696105583635612151675653724678422299885359053252218871353035292944469650542728653772628990881460983997636399015869535119152309362531006247136887620361672798929643082688870443920564628764472537638234935055639390614290480008001237209753554356665398612486357972878703662994922661845714538860019331894176985961959952516759070129459014882499397791433630864569336602368269621033667329309906841713283844766214023529949498738914817004810974112819565660612937806379410856458160820781786121045048056115608990537948844888347685486647483151536462060987751255841927571261770862311073710704249013529119400790866392168477257830700938200394090068665409544256658038766313000554000915248612180526263916564418241778252601144914004876338459083653563560728774574352665645997073037023567770743974579379109587454441415419358543038704231842962936947097312411378677439492959056004831462654930266605367997707345075014060904364192344025951254526124357013422009731278707004073340284869602078822098839517630347503052912007990618594341752036012990530769688614532144740668416143535783524928022828155037203276930326149582260591523457999553351661495856692699554938109902252427544775817078151493452970990967152271351955533584768991697179583557862422148243872378080109333157994198487907736598797943996292928956749568733294353396833194461743260129021964146100068924425941868557446937267718532615513282795080256849127498127437868233901867821049459323916978624204072384654501710177039587837666703724643327363381462547637763301937018361067060262139094239952141490864202548607082195773799014801347051519746844331424707041614942359342339836754787228221480746677289007059575510509017773295794763924050284463653660961297382883149518088270246272179971845226887936674702636001093391366973881513829487247802673254343459708707802379266032240217778556478985482132480173421877295122009490971141598177289550134539132314812702527415702194836505635706102224207046271860683522991141672501458549881003096872719108773667131594503268977535339119586087868828459685583039732379618450611109794833482068973618461376592219851589343505224137853759935052259123900081578727600535914807671058861452779408081047608930678456824218362369065385754213448222498160011252349666754722882756696050387413115701949684790646237541845080382709490088397385449553096530869281861219933954813770624666250638818788081154101094051133579612570473748016924328374209090846969609594015246268557262929925194899303451757790592947846420110129216810247217910106395390871529759941082133631412605734723791383890218397736969032993474193110387976004852127490759119762934618822287724849993100243858821365747270442066688721175170599146942900166283605033519803629174484253329001603083705375773799300116489268947357980263650299028680569238088827419002954362204311522617797085388034727693863331081648474145404647068448565544007435883547172804535378592939822962571541020225303661111120312644538954294865010062595478622463617075858777390513343827597850582164089941960309781127329601993057566901466434824458574360058555099587189877831688813160304161022473960118196884061049730184173968422486134800697806507325602849875444399193879173604293684652757751675063373797429524751858991433164743243728676699356153501053252191328574154560299740708914411163666424011892790223722055829936816264631278919584397907108222554758075623360352647651960990522193541731303213738501403475575977769149679924533765627269528800653137314716247692206793719264129028255805648223975372175345905853664673469954511482528372280916640229133990489730412271444851917201208785141560018227107151242586893164952704675476656485036030042958060362185688351068622724910907622369077371072972498343414467266042031909263422932199242079468883485010472000600509167534220393473220643585928696189343974902758028867198372319066938648023891428523080695851891051218739087820353284328168601354428469016138438820508873338677002372557267551048695861910095969527077124703603573619053386818215810214295527693370847942030541878999067578161820607120226975514035351022124777352922810614425774114574984266996290401435645991111969082355064296340393955236801558414433930212789443004459983230684218401978107775816175922123038710222514580694347398765599777341658247553637010490141973987790912842368800256941589290297963462193973585443505823125857682831247707819468342125081900975484323195844594144253863290591895075447632034625603271885179558073588975478683700611687876370877208233651003577566686519287635025597981578704077736606112240583083985796844819472545347544904270602564770728086853343936237958045375043643640157540244764804308221747617843231021734217608653646031681042667451056457247386806260709025698206328796859217507150728156425173904426186689235742302216636063347789661817099536172378003850703725969490601673484952747459344372952468986426230891423383502864613979070509161306422255236353700779085885324637465085262438613064154321419609727916565818121909535227180865797656884966596290381638977486616711437895750057715176370223945851950575339661104358139255412916888902350250733449833711839621408275647831167993083847448937302128293299835568095939290162515656295572423644348779963136637863669287212607443536255954579925747532594622927095569068194278906279375494257036565797361445970430139099103846856223275189807961563038938445953771197000632413927423296223511878722923589478361733432188863265425179053138648381975258899591974109982984847362592486221797224494252367605367417632669778525665724739833869328601879826916825999523808132115988312351493997518829484281922090996730524861767588576724180444041177722700612573917553581902692391861603319563661671516860686478961913519277390909358401973437180648100857001720637917863083051935808200150969712124568633436957541802996149331205823343684682621027394614692500729066873461238699701093320633316842668780502305113786666346832611876737300108954039507152516484795153713932549562705106090050810807643624810972716395995475841922222549776626451350560352910445258649882532193315170968028599116129891979781850803383034562482097218126153888947766611161221576688988383951317043542205596748900080095474822271492674105629905206390770752713493511790395833612031969711755810714802564995751086909082771484889037835890676982851059295850088758231121065126067764673018207234438644123433559506897475700171484597655806071176915968271862406629153651041416395335997276797836188890186413950182654615066028257038043512008241025229241447105860361768780763085180034626290914276137892664620421740646116936273167344849462986567404626381432757373021264447081639756937326297736158621494368381257927499243537755057346917254009625788604914623550678700567100053750703182247708569596829158712989271180459317553709836958175913458617179295664482369009309385030094031855416934543143824299629170387611390969024532723532187207153331121263637958597184777784133280369639717816002716667475421023916889115320367905072667237024579712094378887650978076918720248076575317969269096867753984108164170913014023640652045874584478382710921854683838933472106751969985232824558154692654297942502774834211666799872861131667896387023298412867281499453555695009473243689148074485309566945258867723680736018372575187593876310581298578468790602499127040023396821448026856940610108060568371711481178756738000331106715590559049650282543000443138180976716576380722452120945552012673780449590976646768653901021929909384523816422049383959216930985433794627335937970118610677791983723079883939854700530663121151126000522953857084579995214710848395596524953776384851803044713224425182813122654386833100822450902166374883504591687254193163232850141156428503515265733340207557345284918029274512105770848916551792510393583767389096556295829776517571383157230125749076112892098463191958850486124154901529145574690661742389950337683745051490491838058858831632737129362356341250609346970713338979041714289593461296436121611565071411223133255842007535756569889729814597741580862511967604747801887567893697815201733490436627096472349662013379434136714252375633479805561167594141800834692674749574520869406145926470808711667225094793751609015742523053867844785602085414709740913865559808231954860699516511612158699041609315533777816673761303022417555188125269264575876013961443406195345141058992576232071259733567113598911074420571914947845344680556113120874709863581791066939418411049321217715440002664743767252303002234282597253307074816500486016564569303937715521457745229473920009395678378171886031475557893148721784976183495518756152637752184872160980527653759017217607334536829099051963745387624141505478487449021008567513309802443182985080972053326900274041775749330747858109088074773136119390156510508428655162618170824147695262991377253474452066729945673915278523295235850704554894001869441254482019300749641053065351194406254993827965266957680001340037760060445161574745313564369736303882749449260493497807122797940867766556522268319132983499859616663011921590329594608910193096329913571064295884980053515718345834926327700824676871998071599466774433530871536088845492568321695210617444178952335029857638049337483193632849399152256495935870569951813429686167724127855584385481569549181670239406717688821718444298477604120302104735635007004619799728391260194863955664372885386667517990102969552068619211058626365432604429203371904469013710230371002184942673015734146253469073901147274910290802678486410229547027794197633455050538142705159913737487537758315935913195216051414635107610792847516158550678350789455093951807184440551102428250653433857861693129619638063994927469108476964468894065907232095583000121885016971886002297303462298005772599946596268269811318762691137238164815585419352776515655374243057556305749924405109311204275702811584341232951984285287741362074724584299301248311841904405541111451251983833890749021782521010065212320428917662380640999195629248882282276312655412662964528050484346799989193363814893586848515567940473431441571309938459814030089673938680684251813612654719106123486420701634430555514054772424329346272253474843106598579044714870109283755983748820324649640070135154537517025108908725710321418450498206805265237810811380488777348134506803972205548691381490572628920474315629993385803252296309422891145141046419958608840155579782002139818354846932180838383617915493209637346788553380633898781441009883765793578277692711525029076802324325868037380450424787954219341000261187812784851709125441599822957134241599646020594708878117823147822323224996378005735967549559906263820251333174759974310887294832343757631521895988544527309513206834833341992371602087686457333315409854479264844129112372502255888699877566563463835563620948270956406393240301101596493698096575229118238657221143249771457619031370505967338617016395925432394638142201761933462451752944972191616462974215421512479973841359279308744381248426949681914157753243604155333829195344047311256608429309352347179574771799365743342221392212630829133044357980177063420598297969867288935148721812756049835636501652097925679221673381381440629682680174404654508914126583986029138937039543632687435655413790009942265354033282189991450933281601158626663419698012530281822821084020849405021742021378821875200728123684089165401451621201180545504867065219644330784631173233655307865103314289611957550571698558093737407546540595205568706562615490583469024153913281845046998846811870567413174399403510232950687760744021349444698472722703376784953604556211356485194490671630722969457211106320085479875257602459156456980394264681800387136207668912232422510101672443488054024754432280226853880107588065800562354480058107677989892506651164477292208491517748963440676247716776179048260482642961534569577346133086181852962450277514499481516703033261411395088498535572343827376320158799631519812338659274665874121874145453621249285821057838836340556694310227699629663549748710888217464929875929287042550355117859175258644257183833671877139474299136027070389724492599908360240247282960762171967125191932291530798115253829155361223869683605028177775096347388541382758439480484460359354942771875861238451482093794305853595736282818278506156149084224502744990162758434575078742218121480279802234843680145302526380304042121799211201304957685411619551180847702252220772900008178289280523128345960352163317491149269680277332585659156240289688656951728994686769125207309471564712778648225977587823456589278363901643865144343396953797001341015505101715820133697362715975844873508558040936120865998123860301362613170081438795980652654315772345678798253428017745195375564409849644847798080175163563953606645597528970573517807288672204623675356923520612643502094332108462186965189797296980244160439147003675585214328929537404168807614880509876506220341664529855116497507684424314651143331927293398127709651243211028891785618642904039602884536809922558147308992864888189011641041656969186935534421354101574538406358713955312475704716798409285515218354415879767725477506378006202604726195647388289368358504375803914938081715030731766000234614374488520243422223298343528820824100952337020715769376936192846718045372740001044542831758378903096528650232472578166130485894388430202924565950236878924032154799041672430590996736919895838148285171107491321111074998263394751333280903325495528955529691837066344685550697520675098824636504229649962419669629848775477905144148675343416618588854083645815295697483051812507909233282281816383638889040793473668131648014764282108711242689936968402515762402115768162698324673626185697455355330154476366736879302707114617943632238664149984105146679492120538387952814689064667086893735552610305897156987700531943072373105425329701841607768952252578747141625880786539768642765361956402909130190483895486111256755344013528950961886776386191102035911515568399358509170326162602961822025181302267949321970330113991758443010149867971624052990508988340362486995258800913533257234880312777583611574269724428948214681202699709790543721828424571059752029654638492956785274576320793433397635469875356790082000203802057029887607429468429375739982332414141225098580013846857692479858747857878318076157501381639445358838304003231199954909076100970044542287156789175759150663988857110646826957484765132328920341871167459087401061443384399378432184098680624774474760899422422981286735249911842629070834204383448935911354842214933031815499316765446732004245393931848911122960078558620381731422161239655994769857182008837669873933811595017102471141362181791469871724316424154818761300362962823630025717888023769212838316518457641763618328422395751779056583066649801123330155138647796541162266212661566184643565501007616923026239658245646908776356817822370748886865335123162102616013502540567129659368211072497923867174971079800246983047949397430852162632633448464466952518746631502758648467806301125613509509894099506432945948143620857677964739571604453917273106410650435792854381808753861818222828940695940675767932427424773658265178349517795607057502594100976950843809436265818750752084812463887065992827760546278354091199143235104327724266766221611810156183289111451594036159580043036073359698537608424135877230589389341598978423365866066318772479988687441646134465852385658294487058895793656389623475150815101271291917687652017066758811711777840545026577332110162440906898542178196977562106065525488626688331182208545489736342210259099501749229989451638304616480742649186725607585001137302446474473023264452177351179076252353531273049748482804676543672800680052251118979103218933647748964446635383486500155116703096336779395112681684825133380157582937247775214383001055758350383601360063781902733557015900204452743327421451110211751711631222954164291522478910037511564135187589879056205854961427868326547302708676478414301827675476929477596530754568699163586708097179818966319780012000526651967699042135823416089480383007746186722480104889060243972851573199880653295374237833281037852396575835575120786207728926051486667897511692203283107389688812747104945563460167806388366828056589186254146957661461339220844120584402463240987521936525861384558588870037077363585505187962903681430650080668566014147291607901280779505472593071988920465330971943961988922928858215063969330855660427012132552811524145475917389074352586732392990421852173270359426579823148129878041689557772766672666061517107283019539614265285571880135583151162943043449500536332631824229929683377459838689554442833472608003907929612223030017201048941162841145551352934817807256082996847849642799067929765985966295848859397819427810802242044515826467910470387574417145616259810275979456568776559497800680631722134789469738564883614515074477923150593849556249277806270004228855523943719225990477985323222547139555500030037158474626686422217162400665032883079138482918517345217557362285194836160664012871680400479937515834338678440776347259978629400897783767840404573816474627073267237112493454781318443590872455705782574658990717553637421667698506074013096352695418788483365971308462547130182645093206957047582779689879210652115425424580706273125775613053698511567719894112521844516648708801305945202755722897500609056603875953634345102106698454326222970726568954539204471362971112102948836467381595535403033844351418089633519198949756773115186765652185842972239130468755262126552403435740921172415230344585138964901835493760039092033929596616021356220146099764837726791264659998359885428885858834816908881697624988431599052700601208575031575889114045724859741995040451034406679380620297620802773407141883574481108472220009673247312324666668016608897569543859256824865548252440670956163069554356045434374565408522578288089798838822563264996387545397747394662418155766403486127519386039646598291341259119995902060063895965865661608698890817669747768969377312252785836487918562565277455033678538411625446522494882750099242044522721597204180627408108178378106849055234971503659343360226467135346636166099135565139117269472296276563956200485867629940413360018475527442850951877039338114267635282429462708830390600353144600765159611971626839628478404555187176738674481666182148578021397433252324866993237172143730222322525831749494293937881485300695478273227892571990673204254249986545420548932028675661912727096965114703586008572497694309692237089907950241600347956006233853871755055157804869112659314076792039318647229300537041040494536434195626155659263301902227987024435017618534106319361484681523256333904758668252001464770366987591470664184252985020379117968994424251634171106612812771571400044228446500837764882106615496894753835326083557645568793313090703144442950987596917906070510284109024230798897196513094032940472077787115350751447025563089283571654462149852501546960594108918962529784770269789652002050990096948802732780152675304081324437161576976437452700570297890470761638602236828785413859153171909726193870505227788854694991540697816296577055944985156783512289791836555238754158860809244918553036478316329843907434836160009914997105635453301954953162378117155293750386364429726575947379710154434172736933819234201728727725706657972234894460537332974946355988917534599562004677225489012403769492003188596296958185398485474068823203977841682933270557527265543431118482386266316584275843981392695268869707524462126369270912625647706901411170582301060061104734433633948238944946761694038992774361442222495284775615457118070117616088962527606476517144921916823411230847047976252864396728340949382488515782301735065743695130388048428921523769493547262493844180763159454982343232340576216550884214830062743808861389992277824085496717630711635484937544329491336149907237380667228178185033882733479169155398413568038837542505664599659436447667414892743145882426175457450781552955899503979959779962445845808746899585503475504702072614240837707591031783111280202907429584156910426227299829543592437439036569529219601709111335406437797971119239889498945895325396369220064097425893552478913406339637119316545812858569198104179671558072823601802433644380570256447123210061262250736767347427973640945905326738457783721478264442192352328093000660704475015592433881659996226267221113137204108870186135848014137033944245713964777675969186577519209758123470829504007630287076927046190076943111192415084936628842690937088486284617462597874960062083324898538673270839648521095110719690814234908644119035714173682076922178647167221361104125135885317716218822518081149958763382888270952629848986528892486102862068931315432538543430438347806305226567635056253124710332630207574520305310637411735133812439243311700682540137455567600057255276270441947532389470038935683268313842369549217253154726334914530795828478846627291898222051800189457771289845646988223486410206303399251605600912761692833735789019931973477843433334228178251656254022844184018205589159787529660433557945386598798792733531041350410890644998998177709022326420880567005575117981909323652797254528894672726716996900916351638666443470072887527358953432076399297062720361445437939482574624761060435915196481698762777721747180112358242869416863252905371303443338658071261871459930975060722311791391290103624932093486176141495610722229031955898303563770231323494789221900224974632625905383294972721115031024102812175791986625311269875356659311534161178980160676514508489428224156835409969678560581029183398506143823096359648852780576253796109539734795245011111733583526102929085586064365624610286920424677890122760640061753619172686426372139841531893278375614580055673737096012429990610028515099899372571936833545800569418972526425127890873121098912854910868913430302622774081295482076250914324361732327947770835863655400889916472354772217426381566466486090176644238230665954817493418038293002805168147629528674210278410085880809646922532992640026182227373083780564694784898955203968212559273329509823354822361999397931726403811796993223571917778390263247176546919412795835024529222367077726341169495465621070174875199344898048430420953771921055066438387532785184096769463761215262228197870693741564332463067874429524287715758670416999203133829849114848520078591522805709619872092116852080333439140515232863875994356358135616080302185345420876334548189717893579234960357579582604850591295320413903589172566694917034507982227521801168542132987990057495645340430806528277726212785654847846180123187267979631292684810892511115000588588585487877601973746656584004935042298853326291144460849825822160657440427245692565193691680243998507897689868537111537013756943448716775987503284704124157354997354291999576616350054281684533125963228058354297687655092198301254895304957349344040951570778406219266287246975048685602222890444328909325374451804831958387838638632303400806098785215938032533245240410707841622166058243038363529887936852754700282750983033465671008336698388950944245792193028653462400211844468860443282517996001607884281081048383782253569363772719261920757031170884704064071992772880323892728792446292506270438553074194930154839235586050164332046027980629854017768450797668479417777497950329389851547783842194161109376551012602467503834806720216920699943250357836979943190605580677544002764233002282649766021870890652550333904534996058454785298857740148777097985570625926611713023143607051264896412217919747368759140558900013977648418856567799112934851561158463512269305510703683131834636904671177520786488701630877596027493093767929173653734306587628662845316834418781957993132019966270701828472921824334777604471390742795978091429456684623440201042607100930285602679083362088909210362795737619132996002827855294461197454348919293330602943276796761087302146511655010757224022000601319706318681258081566118316734493816420171810349571467838366135481162008492916592930464289242376539620722770770452642968691069031758909427010352179180069601473151311106560956890836455381399580958238740152147188604488692950647914640694285257866495388549849461702129680956807527357375064141711952642020923507653773719402685083819434053459354891120058785046181600380919038225209205959484547737992240187562056279351946343014489714667049318916026275657274308199084433632632944280587399434856433615087112095274454025750671601643110304951519999229080947862034756336864824360468547357008052024429418957296790828681570544866588128430880648532806120639924419850039069020780121967051045657553606795831312075831211134069556316469425046236611238854929866427086989902806601995938321187460357868025366958330188154163885383109590876228491946609001444516196211007798745778216977658036272069389370936638002242101132896737643510638772728407210751724619072789041513201165408877578861594965833814502700262577178890425167216715242541510889273589139033105550625379247214926672625692939647538488867152986450797200999478874028946702862317918288670550258815326858598797807792574076179377941714938330808548331284498663050281378539443890859512803178564468348691944847224042721371868062321539605351688910508431995932869879216730718505491722381139448833473772355714739356772434961593497983239495615497765877874937094868329968762259448569444952411213864251838403309851890788122855771564230142651172548685308925596182049784633571719753510601048585104120079058421885694296906744525148951700019622049527249707567213892202793291590335391787554646817016082989870762308438648860851712611582308510821426705878379786787890685108965601235289667172612593050622411272981171756209107723368641417101790404030576896956394576961150684042853778393276805259604551234684418691980662092211275591856862197525975205487912288111483585162017098218970410280570078319089539530618572057147908166299044280844694353516749122836392007878593627718146383434730162924269755529265855184324047368300630427562369156869043100810126085821201739275029914754949373892908755740949605219377796668734566992502314306669289444295734387665581565231001779575671957771977412707006448011914457242253067218566751217410263833001474835556345133526322584225112631542789781425955719223778914593021255493409444793540261434073110647027119311576043148103154974193774102847877823455301415438505212251156996514838430599100107234834365296232138420781815430102624538985778767627231870555150721163310142743291730448037039478718271083743434827957802623739212272017794316973863994839951604973534648016656829369337976599270565465529972865481480119228731702226863618623560515788080040973414127529122478210769270358868973081602516103784333299721540384594769100344057243740897134547339568297238872372582905033917062090494946224724263946699647862592079344053238422198467315388517877421406096762429870125335794464194067632118753515848496888745324235107014473046380853628626177153743993057542325898371577230981879171777468772620404220369208334246410174689241864846949241000228581939913380989533802781848531234630638507796118478844148466742458525642198372128185449453448969484244913376509928277627342290782313459836700712324608532462834387993009814630415568963725926541722781776678547039215766838736180263502488799535481626398213073457098231054168203205779258610047530150257996752348813083438253574761200611429329422290551519328970101754137709332880730592353856972876519180316318949177532086026027940719093815891886639363149437480176105546615434806826673659986036733613856589191096207320111823599967840373318398086149629566714720032979157438647209177581918301329393852081683355201525554764429721737375071578007533546166232872740604119827328901305663204772197058353481149919385040820819365126408665858925408526084862833483704883557364981039949334187683518074029058288980009024447589116721019547923981088458249381743086119302352785887805961545571508071672739883754359166933002973366191880696052745725580576278384247247146433024302786412367932882187023893026290287744949742316190335205501447518386451876599675158030116963086164858279671168193596718748281575271364187021174215489498183164972748258334276654262760316294542381838462078712386763358424628627931680332394442445953652541677957926244725682912573407965449033702040396332778453189280997292522785875022289158004582125237095061092662349628035222432675198277067054524796889506155512156029353704245430892129235709930943105983949247612734245236342822147403849822435621509080963920710020009968937989035043679901896617928717461099653106845239531742876047405656185604349978884102358052185070996686076243112302450953989178669969692099666912661024439455337004761068774451148483258690400804913661808646289229189970149726160993854532515899263803670040054700780187466743194308050267937848232733829929581766496249205983493743122517833996931340801051119150000937747401418866673044197312172819937365258602556408782623863552000636336401542935182984833195293864641882805769514224426095192408757877508932142904822840935911221243263530561571851421116783994909858989014917477986823983927147404515617033518682244563535036715039631259405503211343728981952308522620901143811607132469612685391049206211717876200774769934727287255778199671290089612844948784077297983457088345788488861652108792504485115447500371861509325184481825269319740685543896566965584571963477294719601039133444198626118690175043537405264427242171387857340346564947213881238466141418794239494050689641319093463205654928980348848616983261592930907423591540218909374835996698985983391469394978165045279593893789709798777451165090048579782784716823230187976005505881411537146936946600129212728201096538443628861774344152867338674835729538540125676063345224183720214123540641895884029829611001221651363244058325356384351981031411234948722432299128426371084219320234004259204666056573626297515782717380892021700547160992122340992399059083091215767027128724337901921173123757802302218402757513630108237416613922465554531641117317596280929707134454555330972377716494739270422185779991098168595162396966100073665834750592204115920537208535517736603655621164581536513868283540113577252348800612781819559695158896945399041316663766197366362024348403058627782630393190462073718241595957804862417346910561928469986478752711284361987234423497430518664861027398584028026627108427222881092073145922530357023457733671283380694067920952661263305863288623947444743142335466545312053470413020464525854063763456471564386436776804555326851629832041319392193237751769838365488921151021342097596001820954360002016147019607196364391604528711491822582373321643053434805899622828274735030826708658985242681722100763825116116588431419055169700037459728062233962931115207461112837481666417947938251450580116839929540678861229257660489346337224286125165456688937441517836369325346527969203456391006608983741312797120305693170016184327903458302958503288768171864927848826810726643530180921186863053288688953690054435180815030798716560645879714203502622961605310000883526337959389757812626508124116439779567502959329518742532984391953742653307730382489749294559701756303874036861783321044569391414876501997328612562741920535225004563643195200581366273861115485452346882322075296235746952819740863368813944464226877809821841294892077718896532702512212059530213773591579602826085827135672200797657253753999666196268843476079008494825320881081814823101031799549781103571989179421045879727991114111615615036680668555608136293257849758608607059443664576134767399291734285388947297907551871778214410279765147377461027450742406331179704008525944584228959020480648003173114577820539866874866293242483166780836241641050116573965619218059751313220673648784214844593016452826231739506907100906674433565165254641954481143663782494026704815770647460933333256743586754785981216194918618502361628946598179624003102091677461438780827999716708621688207176592624643489703543673991905650143544546946402350093030816305846183943781199359968689731195783613125105345370701482698398798781882619978149899493886752023211672173956054548116757807735680662931653738043960050249352239653042528330024089036850149560059252100287354292095202475064986699191536937561091297481138032796518696438929811817538470443861574197216149932992648015663808760643598275567699854575793614752400374682250719201984730647734317908797362341807228496083749179871753431839596864406107378131310447577955166046330947113538905070243009403757799974869028385288862741637233839141360664741079792892129323124796923590550357478152208441898387404569242046702765695210127751569918409765299369634142697643878481592542855124925654993752376481866313138739087688304669158393421251928173308234407629846014878798090645762404223982806566227405034992876688797485076603458874569974584201082009668266057427391682236403428034823161340169959701191845133050490214771871288804511658872508164843595719911244055718719481038086845887045204285513759689411173649486324771421273998266042150000251059926322016058571133455576876502949612323126183296221552364305566448533412113436974442644792631757324982623341169959594930916351371195147351952044509533734207661389796694069307880696952660698572460550512458218920406748621186523292457215109624503807441781221906778955149431937774813197107322173335279319950710760241883643200087296064076832260770256923536454337528019775586076276134527017130061227642096074505329335634800254339013015970802154723495307803399596626974833055597831049853234900525183223680477483625202635422118139888735447169375142258411106176342758142734777699164240300260522840546162879655826038245507321479544248194020499123385355021488191473746816012530573008016402522501318198686787263419523306380684933816184847746411881890359545474963156819908202474894272376388222672597766738489737117818924524965128382280998209982828502603431237718225679298668448527241328424399605391446211865782581417813539193547525491648053110798200733923088023154787280027998046833824781009704787238620427612918820081869788455276845781536122274199874071605919646568348694692813149311988419753874617177983164729043805945259826602898851780036374263972320183235730550968687124936016123500673027747667098682801080070777476228707939678083313330764360330676638845920343007329342628347681830502900526014082126996012409794409788651851348491155007391138781438334733678899739023527142453114737250999944912339416182831944430263537353368018777703502759622745851054564610173818647296171702132969276935269219504942060471459213538192413425387793699444864849601970985814897218794441601545610252954062462994479074356902620204382067483609881296659880619671204506190858498490413740238681141694947410932536987233144746160278845268610580499100085392941705389569637357222867699769983327631860368204204319808932326828656216834402297251594664681188492478068769778813559137916679097962577859721786525968030415225400584346683247273820317722897844088385058967457408238532882082599196116253153679447981258816411290999284002459979797005535413158158125379789404392979548924010427997578124113179097913417101142381726956440496667062498566328830673772391584938382818207554040051968394175358473384089983002552113245400938762700450458998006192353792276073330297432713437613436733560076539780803591906639195763588350833515663601829614715486529903608372830444222257684429463589282502510683913403275586134405628324426064024323840548290236481789370964991137151116625999290756116982622242668734783994231943354886987485793025860422301705438493498604343117441686118892257758182839140177121134486480271863507522398577392385576151333334220947552287578316798438137594548925329593032097421406157922721162430907018074462492859253575618587095248562288911971770385943938989416752383181202046035598001198344920371540156414069418834644908887974326737560582474987347848748689378391246020139735733439265653057956330893505288238437804619379085024355782655693364389497461079270632967205230342665832921196012436612752024892392533800093130735571870577004380444626111231911990918786043948296328145585743927280644034575838972810421789572355852268615924838324442241871846509104060918260745822925364431380151421259597167853496400367403924128628967499187809685969177360581901479236456453950497696429692371622134660565364788208497268522357217788427930395307444888888509338764590415053035159000077251514391025748121406551402352049102453951657827639244931322611593559867078504897810564823698675769062469691811259736703742525828141653745160577442143343228903859768551050971402173923912852812213480824247252563846894460319806484498716599749208187185655092645300371511739929183772760815243946280274146823663125168249466440391769676568834982341331846359037090986497083358173433872121368489440812261477159949957313939263473858998848357492192112165170461034460615493264197522138831424294138814242677618817392994968550996048502919952863140607393704752440793814366186864367697319036881089862615824732249962119937198893966455904315578854356540853363371516750530953839137586502541543010843507473294067618953596893637225709536932423437775884510467662855009858246481917540879857479698949382608648868618248504788480078444197270770376034329758959342432256926961145012463493786678116921705549306053821145099719887918100089756403498224309143436351515360679500626525457806635944737142052027587784016088365605112269921532679233685301771601144381101062713890530366395130876480378434197129035934383710117694677879028590404401887425869620551664462211960010565397415707200579688349681302391419721682645850604637969284649119019365509436796802119108953575562882021675221701738385066661352253702106639683112292095874076329940273574876588925632007113137964097032679028619314722191180089791512699211861931831524654145223569406094638913118538295558035184332319315782460686052474134273114847936176236418265790819391957439278772445965775362349697183174186163393775777942266407097340976260055964297067775095638625632064546006892867464796115630811761233903067654697613355904759013093036379038117604758577709631925773593880819177870751729142889302499882737062712561505007430990359621382119247926990900558296229336398163242863541668147123733646359200803336786141421237319450332797159330862240241937015882474247280610545494480385316269374342836579968823629851900961908037820873991357106146607495645977466405296069279037880749354997382591511799241411756542270191083920263659558108448637960152746721668657110649704301982597359853617753269479009278275428444406650598029249288174200445690082222247361910152540575226422648679133911925948997268060423506384336031071047889835402520231541550422895287172880336022697544327052875117642455063356633490523021946080299140013087808306720190676884736627693941657786363299293329704442110922272482863856283334275795051206871797318463626272150387815318593544373790662084349750694309587728581905037976530010946969586993155478122872637743413355906315243666199048944889406068336136480223450146524940196015222169211099860640213387190181160973819555893324015161262783014095332209106120431553007226143609592236530183117248155357839930996901163304037449010011913015444209812248480836804722300224496618649705315493939084953112843060282212033089729042322508210562513550669741390676689866896592238178455648162078214879307515668864688068025635827626817236636360257036103388019182176957192656574663507951607246484688609376074753787541297102904196461734946449802165924369589962920809755472244275861097313519286077455979047494524520291906861472053292142190547832480445756744156015800737033648751878880667264235052559572771638403670414181800497157523732893602769149812108290160502316662278868110318777964116289271020752267020543999810159480116767363374446450634269111227708742211616725637411122386483582024522378175990813033811849752998895808050044380898597582048458715657593497497253714123570690183400094652094464198443596945678335669588042696540930936434032181758258485584831642703620720429843335107812785703423423348094899998785157662236385115039336555791086849594140996736843154286752529074149654278302269045533754833550386511356247395158646997078332079628710617804138305067014708627838831814891354929893470776857502750199361649461331156999896603992061232906964805272529478614680905566683033627026529344130810240184911600993497146548122670963134364929480122076772840364321922404800434537761192635619418745156099065299663570259811948516951968970048742259851388529528067313255395429219879853058589055319952590480121369756072147673621688582932348657275889717534664020990607632436327147359109051745616805729282380662201834249270089867740039115818962509262558106740426602782149929456351747680684833082343600586529246008681845075123527040411486251477607168908221659430132732315804056557012749730071186472954897969911671336017734723953865237571380855923713931133638702180633288030950020648126892582131818963767347431305633033630743830228152783823917896673467377124589792185214092942185230079709694285370857180956051382128913397944853034363712105207591854319263542996603414814138227697515319669943635522635170017944245349187601488548807612606471930260351140236112002798893653552863955521495971075959953287931083969509889043917050495453423036496894467589819188083519735403237922152480138874726869575526582738847738258347961315673011677762372157423965628515952279281763113701964083084424407375184345362849407096296886789475466274341033824110528706979669240771273968269756943261355558252082283218429410323709173748863193787166041092771725354648075128492606297957678331520301974094334551016123673172877775108188483666584448019857391820717814466023761562565324038329689369647089382798091272169922589729119200807187149097968761721659689335178065628097026518751076405999603784455561860985737442778582179202205548604126273141888992208624906667178501987782056951669180548724659051143761820029416961517832189194371304475573431061731876985537666816772382541322581910978973687741135881812749142849082342687021515177863902842621422641874986306434473395879726096399032122870146707595956403665158398565205738744341584030781268999710200900647507229473364112476663028036391951584103265838047881041251052031379097341908699617036314691363591219139953555121567977116707299125128129056008157674382819904568681252135962686674072950445982957054851248165077113980678165689813792168755298226343342535202265640035518396250748903449624531015135851993217151988181917376355105784539266499815321282943004026198106848085189094357667520895964106966444414066423972477158828540050696674019476092241705900175341315312111244306415878728186780580388919513022878686699258926605014238624160274875376285603469251718798827569043830901122999660102553957538931695323527614960938273148781085921564484106870691340298346230515788554061732702510853646300261143078633086481234860826295940619989794159000022055412863164828978231946732331699344917441434287524370054647611185339922702106076182311299940563960393344206249181656576404621815265753369920472615666244383293400625815315450916030659018430262790260137655042499683423069068968552621282603774793064538515796197549146442902371921609933485164800710683781960239909031323151271742502649004990455494956507461825986909976349966369585361219402301977320459136266940355365351247104439421756822859635027183377600721300522744004109940072547369732505759463085319496464855588976291668851306018469556473838746914810827618081322600025558222077884572565136518844731447760762398271214358831408707577616532604920666105168545011503295025229203019134340589507803865148985841527063571556448990077445395746301213617390577919504289231094734067547379456646096121306058466287648804567865131180768876322066133038587330429192066724644866671083972662434268399224757815397916415009476195039444169280519102797764586530425905417765956548514124806597368291536812553333898793777434382432019555490824172281392302541973766930490236745912014788174129712789842971708848222508332623440663590357287651185026907271382642087468079452473020204341584445665435879237630039632327908240759252445534340876819726814625360192324549927796806263199831634671070247648288744258187000537136205668905362624485206873054143013322234549717506239299817147429187409633328585478590210813934070290992906935027477940411590337600061898960703456978334696835776549635083818041823753437837558350860279734551571195167718658647470673293067014650927008961458619612208003470916476606960361172583214609749080718149838399069710160915140316741500111878049876573719038518561284564918322502492659362967936537010418874235203425109618907850243913519913341937954636117936345944195439019792844475646750031057876007637138897837854810455172763255194522240052140989015900909340914529290934791164856571199153689488200561561065611575797036092899668560044246701351398426386955225685364583070828396145380035938976258631643940818518367855887120424644254919528729461759891253217107103905523084521063395042923339133155188336954162279845167404336676384050038874231155691189064129641207720394125731938565745483547263136804820370394444029117224775971097117790433072382699652660756228775046103921333348057303243151883374339092248433886888291291073283685513211683647487678559241201193357099970258788220031435422873354844633949399955940072530546365510649399442212478307865848674415662541359984963462438839148866281669038493728743780400283972593728756461282034740607014804831006482896918064161637013495976324108115959629125449827519536399604997014983012016421086927522753849715573079432790789549824664858358770965073166434269156545619590435403330420500463575022560305863063101058381120557443059086063927422721698739073455889187178619258420148713190354108888088591331230119897617903960609842813323846185092863833313807065999519703392309771669866796948377695625633885582226818563703576066990703494073936267998866881857926800916366509759613291733410746720560449400751769062616952563675843674846407834452559001655767339203423569699750656865031581387317698688299610941200854206126294149782857928256697110332965975422331763912358819336479153395742926265063587566950107930464370754592643342752474601875708706873202770740485976145835446752374423492284451292442140818273516006867810245839955749022628916089309225628543930473618870960859774595243166407324884370828297284904995145853246024228293696397566985586603106616623856499368672328222979381602877339186127551831481381425954861806447552141173038916184442676791081952550378988702880302376806700808505434533534936650007279002663471291039968209047284981257064491237435041184140130998176333468635239230401069661111442154148305009226808395231427154664933317435263525774317795827791985915304432913408421504635660272695730683956470287681387388972915998892960202718364476651355134245874259294628219523205311504153275045799190921802890850029288413948703944657863411593630546756235429720967004462626323573781800884535021923835047185313677808496293492477908320583442252002434304115571716332295638216917468320693670360784322976765158175411450739846354981790806637335541270432192726409041419687655431400164784775168826927957315430895064091055279754506182822038585165133409208462181964579583015336218823583354743587638233975211770279395652363931846705245436549118686427488003063326974150869396499514507113595213820387661541815861718308252027668351507564160960400129527188470238587837776040690997073169647983418987295891796834283728985180296967078073027223990138463036383561544042014276320516870345988443011789738447435977989338239100856391333809769274102637630141956983535646390605635953562741665093120734201433083718417355095549669615999595858397944546427500581085445072893554235455352899559466666943082037564444656155528845576531104877238481104202828624654553473380552826382986774514543414088675412969119552812597706902361608217984593933031735009486250155531945538851639759605328807023675748080287782881977411788750637971399045019355253950493281180820745306763482887899200354736951500886706747147699530428122149261283040794418924476079999094461734807134192156340794843410651009124235760828542226980235346723337242292888296471267184201046017706207452411428997986229413247647278264693713685820433501773486103997704881945698089428483833682734802300411720345316849299548705321731162781431768035239263497811172943199922164860836446034792705197197740689037198008712564137289748081574038619154077174770770050694645287295238400601226270957195923069719336426689599969095802410665411152332106766138304854987508854268813838252994469754925322012784960330094955666439904854146113668395869088856859568994708324406016058493495123700398359049297782759414324186856091245047113835352016493618004646970249143063893639064198591542561451038845789295740080341236207123478013948509495616710233472111034896634070838409062688216467345655889166056247082928325421889340602944575830575082199606477649206423482486494709964391794879904666593035227923385133854075976298883830262486566226688723939398167259627122295940848957365100397480035840826956098869544248858407528042260398415189497907004266635471361434423136537176595246579128560759830679671314087646166604911486784131630961930406816192309686773536174618192531458621953936704905958625135357147348561178687271558592698733467400358048221386422771998099858626291439930144251429140487189254395323523271883215096297602341568498281416064285247344164480131630628683946480012555020852866376756182488517460085685913491512800308562550807607981238357756633829439691668159182538909872482476507199042764874767184257119847812317208037542914680192718387968969043481965069070003269482330749126378958963007127130461458462067697326425243994355710488146605934104598924295436512522677507435215593845516844765027952919285978817292669672085028714052529036807038128417270159170573342357774722067017418588420549907167600090013408996719002327914129024490931423706161369168157940150559599490919892838939013080905327111499838995255447433051922494699403334794904722603147926977079551959988434720313467622654164168165022820232441464172358841771973403951708345667903685838764650882497632809079836138352080563428005930248576491839301698621165291199808168542362469274637517812141239110415473205291637428975203626827603894720702351895470548812517333123626886695050055090860956163678374595684598155009764297608872721226919989629995282015768058426069197054659344406471370972044421161786086494750912060715652990501512471027606318638287130090764922671243248139071523010848004080047475135124100069428661971153648756109812155476874748599343620738007808119876497028118559163690083444608658212748422648533381302575214560832784244403714509539259796242036401954438604207821613732334868914761922159362807297096611557651490326057476449551193452033861032924666141601022589626720723469722731464060028890309714682668368324326444401521276016697861950753842752335040901599184223424818548486042305435610769520871796660355853522985523536312182578167189236723296564156980532012579999615643709356202258221191980985420179222101827945533969898291631013043485827125911023523796274790639987488570591279754890037552162756748961435508578397300362605763665174460436376274966948981367097094339387759981715895032155735439511310705650291037029947024956641535485532747000952188620614380211982736005352183439947926918198908890735849867159959631678995990515582987476905469594296815681815691912254387175013872040612899797278164318942091296858215486746071360526428273015810398509374259249770404325973696037690170075894903055195702077966342801906011000514818683231954560147378207842262790770841549971498808884381518248919366231365375534215542873677301530428862175996937377819176315951802259777279512388515605849166618553198079054036217146772904601532644802719280314648251550540402844879142771084613092362782867455056446669312533921621984872082287214022898803576113807880083320130371540456097158573600533824115440943522360402042186039854247206969886605523533617429479957505923723274519945319431465015124460942278747262643141039858544412641790008610400302363659270677680061053838273027693838374932847298306981967431261505577426078271592510741345210586732035196349123510431055348898378531606675749681589144161097355276551773965268297908665098197564187136510141601136249555305059852470596758433025249141430492048221010285367832896534400547794664156423357612774476966715240279168259940939358268143129620669861986375200097386437905184500859315566541855454139688294859837956736025127051438033529750161700482280324550995971791543994535704369561986713479163764380879293693596476002613349042764202996514598679364968197124788724423289694336902886414884282399294643116698980387840135491752303668461977239620514986237124066257683647176157230274781914433202374183715667462171217328584591354172625921499390023276887827562043660124769373920221627464911455290476160606860130252040471462399982846935748261736645589708181445764603432296763576609773236033007328233089971915313486319268734784531940154778212109029549062751425836326492968785408167623122944250716782915662017752202401102878532823297707551752817409381965478205529039015961385381368923997900493820370622184208522763109688237386574658955538339373923694888000587168489015805918349791018338392020315578127850160189158813356606193120321258390202575510362674040933223503555003860242347724963156981293147253222479634705260555197732626013475289439678742990030819503647036004140097968175702324924529475874082935191918497964301500148508585332953231412120011648007683654132964494491219358222781477283592124556434628206945126872232108156540025197933698084890374753133615433212967129491602784187147653097686985734686000521890992305158560787990755583949596078385291569277183959146889722572279608743132745328005523144137006533671252627269909617313011851997780499544242246612888184210087933400695987642606488384692121173631559804512349365143297539025899688743108257502371006523905826421933288178341650937176384142981421306003768309012931198883330321555651464394309698076626953155809694792412463561993035221238639945305078435164767306573860373592098426947131050968019934075992163676152464888919400978592152370944182236985699181474510730065197645094560950279253299663692797464102374255312043350454305829348641242784241715366556538355703455029259960040063317850221573276929221809474791514258913676168003751446874514358233538318233288079951217169972124054364415668367831904564056894833298289823261605193621422921852854386816070086434071478487523694395755445679675109109823298077034533399938855577262801895364412789516656570131497840206301773447977540105896518335909309262531117476391646073743486677764593226781975814554217700409950192135829882097720057746885468357280993341907010238326081614450942627687902732504551873112635705862203697911511933179874184290489541625347610455971502491410764624522243614280999201848580784325488641687623387562473654351710297307422620523335246255147670980169021298966821543003796651108959846334575977759275174361547746517546277036189258397036135458334248481224949344324519250229637466294545569642318004261058634325027529087895479219536731273062637312616825148455908041147607573394536114936086438932483703157711596448326370627217938237679173400422513729262910243993341147349554516971358304502291952847490538425160843563397574124857757757854822477519780384473674619850571722799922772016884980524567009791063226335994745699365319794138444548196423446435268754351738519539846756492697929294615004545376275385199139522882871988574602864467675477982994163888090925931406987605972646601294197907407052558822552434525683264247544574094761624179108289735880336670351549825301572520542192977241641027640247789102467427893757326365090161143727248028582090406198162221166994571622921370793760511210991323626498730443957709699462610180391767232395053134610301563861746225810705163366620480788987572355443793572430092157783164176815586699155694212235079462037239659389946997923947524594996681878609627171102366423018512305191672365715635976996624303849432649487462763928893176546444674388329501966035107759930477053210600976836434152621800330275654476300757624964857375849442998708630668643419220778453620441509399106300067966195799069370794003562446917633073195490524969270521059411922094344347592739259767547772763018121945254836852441054996068493901663855094060833868551738079114868463230725558614316656573799987201602543036099148496642875950640753680245922444030569387841657107423521491490165428070171307375716499840756719316417016676152866615422628147888791183623548580428308645108265559438900660301484118431817318586136378131691925068320716718531740472999912854463873517682924737147905467958350726390568253223559867818816836974963944774852525194551691377352462825031912988917972135292553705527156102765289458706284272345005124909873487849563087482629895589778780026671190404286087587252898030242703139800172729111441822688938824000338106565222415966957772290514660761295496617519412617007532741137789216163083017985497196388736530611712133751650842825821615426142814518342450504529726268495471730073006459225910411961001832689959253575821325932322776010220268446206161248143572896715734936270672941041609325914582894608678574261815700535030248044901194489223705419602438760546551845528004341626618410809890078434658780284366131964397207981837060456821533299264123034020299011745591352873505800134564249675471753831541580114724821572117556236716666388981387643583695995168335142198583154925552034341205314328725245910534975868022186768294566486599571975355862385312464438019325174215407405284546172148499469237494150662643466386154906571409569296578856564310892384434634040329782465795829862968585712340445672590656746949565741698095675656427638790298840366020182798298161978648392291849674933290899517188591810229739818009978445665768241427020142114964416482654208051656235559162473600458333812972751705977493996273134107350618705911830912952169192426451368878214018495781581089868158262887224023504934076599561188986955467461245957099310937179109590740663328146579539421624007124151628714693424498996343663371774118013129804296391639222288668505960380717988746713871426211392923330965169871345431564753349661792294089625006396209195392254670863005356532491154395010613783667783203447152867765490787131800422410674934080406784373306690825021794396181594720243674514717068482448857392355505680651843440086267511702188255139315978274816337675279827960531848538817486797581127249229773809569173748021360138277846560225623931820545751809819522640661183506354822433706577153412751729088500960391933387521199928177297622758387871453317534690164991461717272558826987115946722069840301063426002448189889066652082449240163649439356975880984375648801752274747074335966411643873552834023122135695212556212374360387094109341646253369863066398520887563232525932040207521974642193667722483055796158889348664064981248896646065069891898229881451294957174328269480027979377251545447342547499977748181529421254577825359095530822469473760476923010112966201998049631294607297495696911803715689500954650651288134478278832382531143324010393855553045776755171096731759710180478738002508144402305220516932344080777120680140394545492317955333086334222657171234952020043955305920282352010639349949864912282882295362764663509022166839368157612170533642307182347858453428251298347125985847518527646394398991989827185742094972308071419294096142219303541245058872145296875008444942751417684050329920070404769979481716837365872002490771917858880931925515668993011463611516905037975856863140775297429150426467705002829131187985134751020403097889823643213750777705228693502651909488720336722736250477663774175815738271758099968320766668924096213156355581956418189927757711620429703771596094535060693059104371798509704962427868309616334598938627514868396005835008660997085495393632867039828323073744767783601039032841862188047775936565883957913085491520911367693854506131485574014371500558020340682363389219276627196730852633255173561544601677514476234019832538877649056575641807579313395906960312593183400834486481379125386340300375861871205719261793644326798967358970589650947122022342367016581293591909742070260444099839635774831691274056602799408083089931339602208774953086837821580803618024478642370288351383799159135598071160751326042885737910241595318749047286837671823616435851325129228431300534082114454175867713582390942421318012932767493520753976249444412849145880735172388764468573999087407871239164531415158905382672921288097876912343132207526351912739865548695893031911774831845744640770936345958950040637712391013349079195792929421822466494344991759833200546477726533647583984100283282773116817284676357542781837431922051091589487254574111141810053560614106483005876996090875028143164777325586188187869877336883157124455046724282233762092174153635166147629115281250438901043455932567621399176533228171477974245203133986614553830498155968356899246353558483969300694885055247826844482040215288400617825361700818460338530048499270454367275917409532862730928771963333908935001862601848704906888699367871907309131648718116447827933940515120387378864163565651004847866393453533843794996666339206988266947139624307095757387839940096500662988310904272799350366847634228730975654734108830475350214379587851448547419704181850946972660446648721886264529806087699011550652794107962249043261168771407483657182298082714168768128718049316090484978683684755077361147944409097213105787931264895478614298768120822115954945283141843972770651891417681870418956356871476640149220602112813472249248439450560023505216684993859678865101148354973516823516855772206904578053424253274519978378583915340117912341112261409598656372797076807183330972510398687912298812375079719378707866789904314138467764794319739582789786702348316325235447038537595349393016141929099523341480075885852647833230598579484157960704494444837890716323445698918683608841656281927153130450549510549526932102688895092000016382241404967267179431942953094977074823047771491357277260916275275118370514056048957741438233469238110296278811210245821129887207691670012766981696542186792129061345545583053382802451954724016280748988721100334237900600270969546138231546193534411750160520115858292583844667789784373258868610442208002188881379667527278237968056769503200523513840904346013217163221736819416437687188049546857046787930620665566948601569895563819162992871649323462027880891830259791287778279810212957717776979693387082545196790423128138945826088440213363998340704213815086407093853250455771747417063777723853397270788197273353779678776239948487850171167160090967218456514985832197713869652279479407402138644087434236289573497627086408730705135429182278920270085291627770178664178378858746385465080529608535550941208095460952774500348055961272418039222802305135903920605827924452072206806264838182172025605772113500667160717330659699536671616695252030186341121819853260795279838673025210379982149907629973460498476128363793784865429401429765242140868443030568239096643482572733109631355969936631250379687366099938813932733834652565386394993126878833969645233854500650094519682079902406133485540248758678333644627403438584971086822910046822971880535799961081626648041557562173599252715303257029026039825558589864082286025755103089593203408007056381561767205562936020394906201078004535867068956750168958683431095445029656036023409033382059396441416388588336480040690746096850186608446022326732396091095460389787678154019687314090054067778057094745232083289617909507935185850376847830838074485243034083081334594368922182091237037911840237903762182120121065454692075844771543154044428439089354570796715506976552575086629510897743064689902261492424766026584517569756371424612105758176111298518384143103044756309197348664862656553145978956145484654687713831149731165349322246612409688056023158815794648230382322787781299849635149640426881938935734389806512704483053928559597940353867348902791893299344079597751714703165150539540236221850282660480363806749375857441369486036590993758229375629690741096507492810040617594794530175170579388643040981263417777437772635984504290242207727681741682253453667423866122287903342956943801847776229761365015105684709525070376878474857241603584543433680515771990812431131434062216749928202706658775261878845576305882844707621159105878786172559888523636406023279325673567752058872850644815646184370222144268858304334489245029106201929522135923760214811782376513654180640006520829385823687088293009213550359383915567467774194735869182877508385909951439218507105298663137820436402608737194483884445392971252881392745009314108756605438444479574144039606298179078896590191380137928427239201409112784414514431140138749500419021555576268262203203125817663460489672486849976760662711832181812255319372419963840507464988261844037002170337021100572275625674348510160054906384434174315915109847048691348858096124297615761081022081506559517764671027426287363267137843932988727194070357825413891611875008425590313669908709848512551225625946323703015519460065552956125059881969403165691917765477319894461704722763125232230689803582474653065551075296546779923016606350601874988403187642466522791893593686020717663606416192573951971426354227541075828313195103697160043585668095445334876347233816206040182664577249179942068175160207204032161641403255801757844592886438381822775518331193230913394923608899265442906026083659205794179650561718825930311141066659935240579729082626947042309249877465027596478754296506606256100593054102421451821345462487303291877887038744573170633167360910599409984618527205848600288735978366447748366414870041885085212950418982890693556586477036513134088739285380930542628882263124395920583159340728416631777728404101057799522270808355639179075560226677375628530289172887504201623136271220950403243109780574367685751702495037209653660518483534896298495281211274918093871216487177829843304601125389423369955337762919930308535910649777065067753269478765341608487044227677639169677571578061254275032536387596693145671896662463824922464791082418623250683106496893086561681165629817783943901940894509666756296056665355802655995159604560459780895906151887876243638256270341436865042167803584189424213447809627621602053903591908273777702952092116372270563976988832318938910251074972362975636723187873950181054957206235147908523133569575830587729853425833341555629061258271274762432534661913559647750671189198592838640643932007702981617827786177564955060050695480863764563872127185265220659716846659960742360438938527199035137810900532231864141510333577819678363104835182901525342793886068490606342417766202471603374299344089587283921669695369823008030141575822934693164861070517986881291537398255479521020992151375607312795337427053002699240664620086796954739572196786204473140270997844981941406655682865127061665412901867316941768552643618936478312308909201893664080941696375630888652581963666864592227842705407846555097282601315197119439962991472091253698853484256750702663858827963360860945320283991025893330993041594475855436082107292079042830552655122660528559073894617364464746288700032194991857896987259734399489235981469214878696111075626683740637140801484884422886031049176724317674890062742513482914967565924894369200111826452125721219995978788568323157679720484304064578907872162972982043813254079869253575242212318123834569099024248019939903562210175708045380311964061545158370349025815655233569388733831803012533324664904241656522790070112855064027642907035402030263926785464007300094717753620413659286126515721835847025383114298667856665530814520206057534681910034452869388490949536517048709108635975419414985085990674393041591331728098034618971352362149717325052764443719590656521485007834613469619195689418139548357537033137537433848025903892582561944668402226588214584637376722087109195260653056736987944586656737310854008366975437307123198806076627199931756619325412473154161916567566841057402533206203073606493610556481552377195615368564359577196440254386505527939143971846738767132644437152839654191710913826221875796648372948189136260911249282173902867323255673632069416366097630269903578764637012244860014316036920067819272618294307413646818451998082267895969691092249965622403019319604114689186481337445797557102399701336549038229031348542156145695483813575198347610775078446752485471083951816900923664230479362110192222872585404896425746827910977645403873889214861359599272145697524978017856013701525319767898420328379578112406741278874495193081602736890662119570214457170124993837428824350881941858503358075473284557833939337461126249759868466854870263884494613977568887435982462172055211843155109016318258585718497351210368361029635362159696299196469623222068551269463306569622868084074046609722726810240602579936143883497713608898887969392527492969176857659210085627043036577869593958958739697768894782416199411124641551034829559935136241741616060889265484713233936541998570661952891408965226379287415835977155170986221403642238730676428259342682850405607277601481615661480701932183978626859118373936815064398811112161116683696647884227464781597742684367085081909405122173765317706213368148022932005128447513216237194713364115783798857636409482158509624107481726468757214162057573130499438836123065467332886543906258993684263514270579305770343888961309842913511826803945475406841655099125092641888583659976532552676416469752748098338891313842225398781905072281053452824434670522062640525301078097833456676912235383160586659947586279969443210737402676268639976435444867931720677661756673236932691490178715931448907781359565488244286428714779617227524151686275269691953452269880385167219270186560969422783778385720156533651405398680947937947410546233095843484093267364585946791212033057276495246165977989431371021511635540758529387571777616599532927501520503991673472142105107479796371242469739639098651662631709740753549098274575151023626380558303006304520729454500732977514836285536731848171182780732385148683459350429122688837482237086973805592635097031386264552936969203181304309162816833304852066423001767604650041017886582572445234469588292220496845017593799395064576183378733300625637233569259586020917113971636804003721468245112727919258740958396620601982856741468068100815810770387719227818583647534880897409372056466035873971917083379680328280685385704225272194848230889267099694014213387949344430804517927239930271492102542765524743017656686847896798069844416178769900914579691760513998801692009304218908591378400629712442550872527661434307967448590230914848517753179919639735239043556879557821895150518729695702656823962959060619632853447641986183951855747862142497799645820218977111659900962561460507205220956240520291829097838091973055179258447243514012888887792589943807577347862171936393939633768009498897781937467821093888046376718552084046036271472420107539100886457499113162692540007565607448883699097670443266552161180420115520009271822402634391892931965504413090557861574839068557536971908124763938098132461474028248319806557356004724760828973254261934611002073326106189672353606586534859021927922792937829397265540175513364249289564022969275960555106736708078257676756855036141106527347570265985306533100602473833418297817266423070797920725954968270112906279415821827258141551803764596048093931824577977913828460670708531784097622473421713793596973380787325486174278583377846713643125637807259226841154884802418699210669766346257838326305369828674604081814201938309357582784161250797903218351052892944142773683153611229699785281627649742935055826772754914053912799678458275629583108378045682679086938031459811099562610215143634865441405681090662003605072430967168412467236654884155054979223016120481707774977362781414162890610558650824823897572041882620629197125756977633528551271538205064803435179575126498464836723528291022126628827366104109630685920812813511766453536988141991716940485087534392938004891755279914257871029911137510691412522810250908941402383323806752359870305448370784243921551154418922565904445142307962561150321726199702222824893432318681769537635277858894493047042437081873738500055531676020751010746310423047867598961498676624721806624635297200457279378087650084823549296386469573053404510175027461343344706528835058623357209345627089583670367976724845320070579239654024127026900096981683524114271051150555804446067932167830000331842489803946407311409938010339757690168958375836127337137235267819664422418372489114418942347616504987143190409591603248735786817083437505733402957706458934465697866662889337652632699556302618102732392706311236814169908486979868216790951239403487203567809546233872317500284586048893637294343631766238860567894156895445143924481249159388478797867713089674672057080649326872389170620727846272144857951520229121043752892264122393491858627657379435251923381150512040496552727350271589967324231624281949590218391018476104533880416647776546744070186114646487479524662995573250726055458989188819933152287730088870649299512165434327441541895427408127358010655360528702620882257233921132864798664264653576665612195798730839134452746200092947489980371291369929058291368503263193854065263588994817832447903107538761049905672142258520812957051184695819483659306032051721464296618835470807475935751787657884265961174086890117217427810806159723631640996742685189545333208810575941114866993273688377037594237895233767066476209431832453241227060499406471710901513083696426224707211805515564989267295350549657842766090941186065928283186823534824300800454615724017862425239532549575040298126201347928146249967514728487505154457453338468545527221664264507043806126455180789835861428593631658466587642059862783381011821743299484605882920238037516025907104381039889554932918849995433782707851585287721486880395628701179401066324954776269801876374853638590750661187875644013669777270783594656961969156115742298729737718252459935635686141775367723947616830486070231460515567830831265562372494816997964163720904394361832018052696458622138816605924613051459979759669103160870219721202239572211425531928989527088127692004016650749721605454773532428570722066561403802988005083858045590268242304251113293991400132085314481033643273446021039741067838944891205325070884751229558901541287160472668899395357782674924313039542697312825150849008833861338445557491738054918981200459407773881223590476996372512214810847957587606487446656949349760110490961323313871155893151980118788578774515273613610453452751602898984312082351533040073864621322773642729473185126536816093701910970373401810221821963779541097668749341327144769459943497070717881180874890840284711531831319473997510387724851155203758949579599264794934956517197600338269714075291821371387616765880072539156553079427014982029967788066989534067403086883930555188871404896091415819085181781930309966810446734504639682804670754818736165720509648314843019332348854058502859724496940109544591537831618428423738188946345937596881945434969309458265121201767975403522942595595619777431649534610187395362721950621008869730079503413121685062777450706242832639907152310485733729049453697691254239853753344538951476975283854211703553283389643117857066961504421055178116514872228519253613166733655881998335872084623444797802341733200040867950371900797419091289486604309247795414882756230469387710500322294659312460538969533452157738541860135784802511551146577068933941687346962572445292762138445889258307423639982342467271728076270787069646739961278473362150645466950408525238811373526044979732249992734331866297218056477148453835189425254803264662755369187385133598257287430301913404780204985456158809033870371943814937759574382125135993686119146421521945845556969576692767703671983016493915663357225448882340909664031902491729097331997793876363359963332609535612296053364006060913236369009277783606962390191391337648000934614307499405831794176226594496596003824779335850756110251441474066839906336921001910171357707282249853277488571667254280848297295376440930896605696748152322034458589885618372319017221219790094915653961837644708266324099402583042766304453477970715732817875786568768638748662119482925070217208781227524277438869617893300538485004542568835474289097378238363174940160000319708300920951419498437304193329513964160924861667632596957966320760923886036991026899758674316359851720586441875574288267203259858409188322403016343318624034755381990609859485129480865262099485230537376269637655792311222107608335421147536977689371624235722343471291175710731121360749217567115126910281969806766661914781177908940922931741969664114329987947722397847490038914301488465588609577884971354280116994071288572756557633610620343099006281852407958198058917925527257301550492235424534619406727868718913946063649015676355160256561487934799457178304010178958468858309504653001867693281997826114088717592453295902206784828525319044285992478618962833091584499660394781552405289826396339291578728676835286461964709123232016936042943749209372506430405846971965193574460599884652714848640592106250110646014045144388167139411144543035073986142328562138230807295956248915738512762091710235958155654271980982416968001064275217340847440601602029184953487746747423919124684539771207537021798298984972342523855330675894054350853040984433528062643996274097952902766012622058197717141941424574607730537107976614675789401047964662073320597274108935494451572200367115868198940001391486245329468441484633847974212836840232120168572282752906858140754974554131348435167576972808392205048019799183733072982022152107802745634780002957321484429124064079841868827922173930651196160206546148029730387403568515371142974735121032891370988060544800265397892733683121713938588083575363038479971969514515264649483765840981513715572503014628587348432628188242036784736091612629865783387634549867474114673404866838380228728659262881659946888089955951865134303085869514455150623645499638896348492833323137544872611705546566773958060299460223924406605023938234365683189267756067102615667994674534177211736645146331527595290121399811767898935121625212871349325389334941560322537178235781878526611138150622191798453378203642119643658101077922001995860417868482314876043385630883587394824918534711102323444688106636552173246407499813432191482035535147918501908362665980925164837263241542244030506365363288701286627651806962505712806396950758933081755070973522019792451634762592644485843817900414434230465188879001270267758568420487206622540495887743608301981012685156176003092707099899794393905409301504947398974492689311813796266466926601418778324456498562053230532666395785909013656793508437571017216052928889662397694255334393491292901943119139567390090039474666300563398339869904467508772979708046356100678839828900009456967074730155730495814514018368571895900779648645558851798031474611148178087332363691246976311534706757473911062631948895989069774314951596591870117872273045633569003244102235283721954908303791153977512592937002012684193576124986899431186518557186978540070109879319161682506750130747407091172346726180167697184680711898701365733658659252279383659980209739898894792562628093030004185013577967090523614489431636441533250450444257626833795835007723167006792310279520976648157654134793342365246045083664904289245565538704704271353912320722607989271230159929162816779718839006674743541571973962396323636528152293862241344865462683154834622399560878201064864200178025171649175543946561880923337125919599837077228659316724130017106224513281723210489373556327798694420484263238035070357515756238268950568521980381412399847011925777578726484688019545409054352662765716045772350089957597945367061643049645985568349647978020267942582287443740269175645055615258343781411235328213656165335364459739377786916536693192183330946576201159905527184350983833599855003355218679020112334592191809450313087725908381562315127691464688990773651675900037930356931845385818161396002335854981694298780961251669961248524449458054950285259058290498935336154463232248955080964503959663195065107645080221398101810503540415319192786403979325642258153651624139312613790526202302156534564605031417417461052952938279616744032972823403282009150475688462590752836775678209476137661884126713554488590926573628750880428503388250679954546540394778092928357397244642514222368747079113795195476718591126484013563613382518964525797380311311878339371685593954387078658950955005039100757754124074561193691687733665982588865580461808728840668333114936909549305020488066220537020301935265870135882507831883825367626351810881883207729013697025720419970944586569084267095054032331965967461324090249940386042101166621562922894144809940293183370868748648738165216743581441647487789258405227316136407425640657750944645205290248816119027694499054575401969138439726381296482606894361984059534964688372365528482801476030771043375746571713173003160219803478451874347779993489240246932433445735572973092911858467080133242276643839966187414810984975871192426967140120676960378902619965675335646171070719364300582770159808410070196348301451686430686184263389318061881195428461429744946535300605555725160456988323930619710309882709777809257760369359232751863979063582614572171879710876695550597764111113992117668897447964611409714908962375665842975809408077467786120704618459060354666668447253099518148771094938613881363619728350637947291593100051481551231401747620869711769728501901003121944996980201846693339805492823641408854284168404254108117468896095679346091965214661909772121061618503256315728710281389534275588742963123602858998925644925178359968325872612804042895370267748676890702245118431386280219975274570039029232110660846108164404939836640955391908729336450897690297691411108097676989745269889442581648828917543575308756748496825234209005232601062923253822944968957261261358416236137501762482025057880504337763070012821058067997746465020226226139716405142594757270406824146462874175265576510488985586629089515284121905042156556528725100542711700394349764474805048065193274119058857390915618450656861497684852098906063612221228486084537918572178574210438260838536315220633866171074229361240398537343746440439599713685979645135628761165240672999603275256490615300746293662462059117677081743715103503652075227061818735679766841329862625854874020521863480124297346280292853054136462755792466732283113045941098907660062717824673450570582735797691846873699959945274276104574420340583248095320745278310351323034477724206172956737191861972225475828402850666907563949898367769350155333149478968055197939431906819810388895204524701369880783757261320009967611685703049894060636867908930081736102672975412475384534357288854306043683682212784177403849043372832230079573488824659823063880233466236522777618743688181647991164124852132944909348463993001072912609393165371287438659117273528853722056363110076753205230947135083311910613943497815327771994974666916691825056634230294365413279433873440713747654360159181366809089994371365021468328491510837902256281211482155741788556728342093330647909780193853592611965740325050468332058056226476431604133849351630501493472813449807997581603273929341839914662799518618908155008564079458791862806390592291734900170390981213556146789746701569158924755920451843309098811407996909959669448696544613105769974799465999903626320047257496006098946001784953920200883448085177725215301596881877095801924213093737060380406046555349822654376183142263090578686105741372126054629948035134888343671309743890049583904520553687128644532894504855504402255038337490332094740776681825859682417293389893923335597782761135538396502703989874976422278937113232274331657645364732707798346014883107257186568576699401907498351192086292666754912237728533347550421497846675620122738134446018569105637648425283358620704900957147029973405895386283955293057356068115085648002149612905682564562271596600039604786461098667196671342859278845702562479038048864335749899625619344302373492627561170021792042673240019277411227405635881446222361613899055740324367342303959924529468681627668440746074622511125000453235526568381654564940235639306605234482419416242988899249985135478565009618372900234106828321397622482671722173563184744135182049738250097647173727862371673335105391277888582044148328200009470876984696624768286382146097150152169424720805163430566478139109324951311318305225007463109828672310015388339530288905526982439380545164989677612793838029448822595572311749286259138836871182147896745887969970680632482014422081783865756001327027549240462522671744524639692254068060943546709860560200025048597734710450450544993486254316137774704133763023762198679124116319461260419464955614982276283233610051234365996350402569328899353978562917334674142683935328695777041038945729166248555875054065898710101401097119135074458273549040238683735925289299025247518869759125374906013056430491086403084986801362584789181861597734017498823383079565923181009265229699695033922858769456815821824410303585385664315702277340290145262610290967729222390767257448162485202189542565967327781462390566550117038406859547858671164465134504250448300522872551465276082093653504228975518444169901699585521256267113522689770796809139663463175946457213791193351375401633467550448080698662687881536873717917049484472887254644997627848625217415608907531727922407144277660782635185011139192946110679029033340102405277385047866465557863401023827127378099361153427226255369566325733392851973666477141480570888245309516623923619120499782913429426592496051896233534596591938485167942924485853295292730780975040158624272463107684889433144518111016568321247131297360444825776427573649525459336368169269316711064206581953412077138473215047186555745879353945945920029314537929127142317514178989326481974202973033715248681318901822656853552976229136698820624749827787638517491030379264780791258354320333668062710056842953342620893933924024521141542640982726321619850168463623012598534115061454180269418732838408076524384226224550346984110504074829128546683754943572572748409625441981718570271598678752531582148047035775817652316467264579539552110007688010023546700188802215317982668532232258410529167369638542531693873616483711839264333569620863440367686871063391685945976864944132794734667628402152343437002410789352189186603860594542788347004312929692424879062245963955025838340408878620081845495120504426291288118841157645213927439749824639961570678066673241554892464957841517369432831408441881269478029282907708627764454314408730271185585676286921945748580013110114950919642317668231933788550411202259400710124713558840235736934351819148977897083907784514287164626627554403028255306304407381491962953129294816225336218311646815593412256936868578238906115178671337172696996314256789937230866892473798134444959386523067168486564495245765554576979210219012475401211374868038251652185402756096752971208058074025379818086014238815371726516883561046060876692904878656625755819390432051588503429369864134677553794617855506158986580721410547851885970811048254626317170634735385017071212103579391333432001631396922170797354984535264062333240337454031902058839518055095282151523206696185193554560100289177210294374985140491357331176126490251751349493134582976199291645128656842984190531145810600261903118404501592169302973274681595928746144385367188568029772293860429882374185501068123282216776519815244961111977697522130655268170477249120598825119869906068515599760019779003748494264644759232183226327827202070725653881482401967223742500355190556138118861010661588501141595175186648138516419654754189819191486532402040915934839886561176712613071437553339759923039119193713171508847895105156822957905735444941773229069023277122984686162085780561096416826459157876289164476537158268144141158713208641315623737448767086974823726773946484035923663821337715047468511679195294406275816655281876195920270002854753472228469913846908840523167263228318443804890877047979095521653222641620518997476490739072236594150466770921362898497716427941472450072230099884320760469535462406413518649096502076846421870010480236127255674338952550828970658538951143071744683335505213526013164516998262346015641968009578000498780103095384589618140044732020464645271180108575125303438263567917082408738825584439064135471487596372363244934964427480365663250836976168717300517258557786901923042212699573212572389027111416187972374371131787751543172341174343472841268256024518502872778604230018607930474912362947313867542363421132728646825763514238456129429099131467725627380423309704024380503379974977807502778242724900850615169837379062111489063579773039017567528848433881451023868992121808908977930065076635541231667283620870930114616798532057562621581492237703623851955210401202962006524527094767968366483838774830282126877292753500475791007388603000765846284109196030775259774689964318097262619508726887882972154973638867603080496091217873256571047205891277527626031308939719114693398347525236160992253279343019949297563143822823857935001780338003094720864391719813858894699157384610561458656452011495166981316343642757655331043104944363914877275748999118553460410074273206147459102079468882312751812333292536631939223744180330703035728975310373040540614508917342580552819385679521133579198518736269014184249865906494815912509908206967646397423177185949740968478397250955107123266918921659553433170086845014328945329754030949869696360683557249606113650377801534034821101389987370657611431709506522932709055735651119606196624388902493181676965518948597910635575568473182956353820636332621166154905088564277589787394655803735417858137751762221462418800731431552843158224464743585423389263833455799955552925158671796919391853313159908171631719577982341140073750567693076210411567587504481268305499722102284848023665784228622026990518062888520526096748861402976562665817334888881398701771517230097130349831049495655068779459559227691828984545732120988067877234998432738148949313513760959262597027036950726042383503697990203045636277442686962699131206034213444784871299401456001929048772534721908556857738523610101489437126460220847077821938019718424254077530060628548104504824842414527013554603589877363572488351910611416800495899564745947245091062326271447838342739167519486508004673636617688563602279087356882196706466554512994785990067023662249645201515820026684500750495018699111303186196469002686734552365740041070881786084297225168048139598086080293549794235360715729125757184495755344568726394364226474977426971214840354416632913940067507035995595007541924469853538759165492029241448064613444175416708966535739034165025129229636757278302682886790155429885389950870106816199073719409704241076790229321523721027181095829481488157324838217019085054762210182940959967567881992083580084464210548363468019464582970727448730324297783866749389068527456254224739781994290056990598367778665324752587892695963827361204392860989936661291544116105147066303541287654512254625586653165025967082919931222693393892239640135530086346174412333115020237930411765342258897205666492468671042553000090987042736698173543228254035022178407134769416161042118196413171189939279532838564237516907008236957823393983632347414108082110734249287486765678531264450924983041441167746784582705631551259838387769921728784444268396023843934680902309813699473070983938684780935584973053016002823611432792179065001049066714721591365162191842825071178082184750019502425325105673382096684182603214063903339941650876173128963914241548215804367747559068051539931964935603845639265570023896383163370335261498227652846525007519789930120986372070427308201399381619880309644348658303030500045474573681812725699203512746044378694930839628978539791353784098641699934301292853852315547831831127624440869691468328989356932443118058799669527439171679243764735209392386227559351248811817062340089916987477542978558108360082620982916147297456458246234685209060983060827913680424398990104755196720085376361991824841938530737933413627956620922087433597689428870178049421959552110663331236812598759887935773898385535500537217956394276744985850191134087668443756671672775360781606028221288049462312446500692962930220907937632044778789969767279635733693346068249430594867404264938856362447941765152078443336616500472066117670493320741859736902793349175538347903305686599372966719073146527355463378913094807886674663308163730927586236087520725317472354576604495475837267557329552572851459528198895523441111049211386269231541512449070393221896892343852934939749965332904206266428898932269516441357159762987896250211233378359750191258451155735747888914076524073104228898405191211746203585556861873963809273684948020320189509970887948201153359306524761759860451929549904333127201071778521533273715974059496316382628237303010733143405017672376819851812084596114585393285440781860404244057145686895188388536052998901604193757588447425622293533936543617264312644269849001028644206324197051462197302661482080384846251664962052690714940603783058643268214218454380905447374433128590690091235318316818087580081642533369426610618128051127231350390184048443223071484735791584969933818643477203548698055711011765790962152377532750537778164998435677859272027829363882971241737408682645634512801770446094920337931268879360011255764026254341869407314676088086903669970579669682442482254240353980742274570716777959312469955232350705558077298220565486461310169503653176084992194136027601213683754271823619913944178225152253501720801834358948033862336360045215456180362043989651947557891817875117278642080866857310067197367485988945213035990715751127251574986050311119206244531614975763722192213275319640516253026217680986785015489271490815688218017243583394232779153349068523094730581811882688423294255714370464898447136639701677426719116509354714823019618400521913018198664103999668240500506473941512915524020671492608796443826283592934619862382322248400487382784330884403227333003507038266184471264133761025299473158791587205519450297674313859527408799744898481741415223024363823066259736397637135280148146893955394517441066332261939183432540449760869547082451369414104404035593488013579785356036061405940543012971508507401930041204694943883479139586825971252563689129320243306829024289931089720769754742766612241925025091719262165084500968589786769267941140475996115048311645540017989304805477932800363636333022291455760528401267610840427271367772846102830905133269782744824591215149110258149874569118188713731714536941289706439784659358369291375929159137492708030243330607200406928519238947030874978161913339959290567734196413428193572794672008411732039149172684795792786573970963842009473289517988079546633537338350421449231272644234837919495989923310118879393032146050109138629149956027675512601517668967064847644031578145701276016041713390928630755070258570641482605020597492444397250292431804918754150431008138462402244328144434780914636299003799932420853016244092117938496791293302240430570764396705025299043523818512680696913387184780370331434397435608838308935906737480792695714891260741842493835836587305959548272116575732250999619261249362739177117839332249846522641420591364118910309346724913002816610367683759491258727705805381325970960066636783236684883624738321154455596904037263433703659941973763242200042359030812549882075692856060221582539842643556840156866095013584048464401011401487246073302630046421580293576548145548521015591628408935592871430541248455550638741392626554492572935333088634434557683355439245463795865510925347335926852397797021912968885255844314285883801968296128805708292756965589983184564924038496817927131194776326830302568253794062932005819782317545002261755262009698719497405119768518022698987426905674679496773366708539515748228309102476111528486819980224804217732603990447828716175474477090264915293715043055977194520743298351995052349841430128170813184626960135346827042165225568539337556955957912609599207492672419965876050762425743286127850975762678165368560346035252887440976137639164730643609377978406977665191836708434441473705757297806149939616939391616479792516796072534849219355292797546624192873090029761517313138351975404674338289141196189422077621070440590469176693546784391326149322763419781341171035985390440250926783409239203260820197566806582412740525954912372963347834194346863204512004044139005715334964431197269967279534826612408999127555104431370734566452118684992126174191634926836406751063017383718204139801009749335031678083942239175417470737310066989509167122479380299651797895697445692638188306114167943642274896749180429936569426497919070309041610273913081327728203769849568814323307573867245949013868846290537727605337831146691423949558649835630004482636696649346354503441271314258299038353878396440005697312147465094404386106008653290520637167146058523453744781537883852082547948496572380051443275319762262808975206132081926170202390524638316030537412986733342052144267973835538353035853179924720801158317270959042000620953101159088652864329355066159134533987643459103390762845764844184238262336150276536215745487625599109187816047498611410455664770064070262510229332918089975447580319050356433607326692456696567265267924322679720321890106403300522405407141657719566696895174685073388234182292434322961258552451951652915167241534430398261938042080747175166499967730336749369657314476606609251806711747900809487802170523023470162917875819709302697024527467421691549339176460224679416904026614099605679824281996705545230158433314764487990822184484432550250346707141105114700391155889441959850600360089403416979701748378098457817767132304680985736735449670735953830693876583322772329724334318161238406376164980679913663178550677570761234356971218539711564418490203649509932417618922755912976709348480819691139619116785471329748053331758826470154155692303897178696604685469553602850461850505889171775406974482518539817938060758262764428067328959307742517015334388113070686389083352176386847882521446572278303531022192202488724138074267409363445726334208126270083174931898034974358221492788473617447356175000651889537735959964664214573879903189048810039767717314770553621238694876595120406766835059955849018656430941715633339040183837896567132907240115499931155914025049690978926746397891363260963925635287233705371401362030934048453773660702879970432904020494355003982058731806410650504134431490953532833683523262189533135302827950650794307573749410441250973360256849534620246286870731003011871075287193520089279196534303679322128857537169469233875483714669763737953929165292397042853816302752579035625774536711016137377882503439235846402932591798022830097057582661321681747292367895296226022914565372852388124868074664714508420315678221245761159655503432082274289256965350226614847852216110096800309742666731650778081057722009053035246365000631946593149226929192696329132110691884883333670166172650699572989933506673915959326120001669646978694890181692870353314951377740243991359064371860352721785752792810789830217542182223506932520650929680138267121514628557632522463721867732558959467604736627146513091944995601228034012716442696448282100626655118619063443330571831237409603214376566983270039129790495812350343347135889116880398831479507584582270583454182176554036669835328240870806605408201057309601855921518103267810343210205024947166725919303492708897398633914378932469618259521065181084422455681744301130102124531952873788637002022978286147076155210333038375205303120036565674066059838738883632408044741713359877496208155675663171485209280151577269813429586267796327756363558392668300769479507013528330469682131878328287202815812056828385853253488387084117998208127296088512901505116190903481052569036267469589148619494526271901364226734891644443778235494751482995115238663106478545630250355201675705266810585866093604137880671811193287359311852295071667490921294719363652131571782500289027027289452536104394362846972160695176963050543192915194354551802211884485240701518937487005307704172488352293620736991783209898272799846725720219948328315126302829615260806919626618565404381961436638422778850277913715656164685893855158574232326218722580473339251161758112324073326188843045123251739048162819893073665980950992450501345322784863495557406998475979577626989114013845119574196444532186098216730581979788237394579870380964622905530489770846179961764767207311227243100787209912820683773229532108778279222942412579808260201846469721659306041746097523794936550157631859160277916643680225127491386788140021014817737276855465125421186839724434024843553206594427696419753130596941155038697939189662143321378690122049751446547322024811562821804142245571139682608176922300956464043621000012935775239834513344101731835008982326284334761772760672509594526381417262389153689784497089453369241606401109085041003191127777327127912070803778328850254498126455494914718569568036609422302732216627155251227921409254587601452318359560800643976829722104479617598965600774065477938508218199454656547487574979752693195570175211300791849149267034488521426879766918361681994899347182110741301224012541932960920104226608383274841350017163853203734474384988118872130781456747833829360046704063757545519972449318200394409043912840366802094439095370568429621198205360665231205278300025869787774245528911547117866741402914852147955423991629524437528650880167596834029326027935595424577154694388769624110329830084875590632696832220295660055263985234323367516677496771437009439713374898568670752081951473445647253314257609698620516974079953229433683824240157687896069710408026960582909576094776796658442206277065899676917336063332694297574838664363700338049084037149241523937273490013724596799095299467407308935949971820852638518883331752309376216665073991947361422692481263516273952903440111845224177841698951256283908788914017520207808118996593957675514906598056307011903487612532383621791161808706794210500002443848128479657564965987745699611869899447689423284066954998191672034487025474713497128667994670036101710695020254710589144679833455311358350541172995663757431041718973364212920329740890884533422898530455639182860289130708375446136185402670762379975520999281101452598022770344042638512286480041905802214286924563879157831399689364135057708404627513765415286177493782164220650470203210808003502590649848863904782940143432319324446746838298265287761940635673490034267067272880087318520017831005871095993401286087295321296040146269563586931594400118147358622269041994535553989047152798451561794546321858397956528005183577559886863114198397077434333660490347986726300364395620919429314777615768344374134856043516041914076297168631259882150369693964130082011006365507476759431049447554811281208996071863854797063239040021016656318540658910765983822884772349396840168221431992283489026834487894698965471253255131408815769458977477730875171906574450950941249094413116635046201129539473938883866113562464977437033878417824022359175180404408637805558265884620505858682079344063827386117197955264322775809496901473738676879153454727540215027694971858415493130438767610994431861816800323055480192318701399278391092788415762565439785739144280888096118047642803376132106603462251882902771426928333708504357253324688905221690647956273018712364213083505832100850364146609320403564609302386898820188753493922090495858995227511622884462941530347204235228417600497027901391253452101319017419270154874457279178495420806806778338738622406415098242266278233361364235324151952328800320667737837288707155216361744053211464277569428144235595023029428687529559069489797847490905106330788490715615899622887286687314695521273520442067185541558417641816922121363726401477703515891319064793299260202352718873088594732824423093483384162681436273559292581475668076316079719595534003167844231240619386659134215893257566771277479672113670756075018241082656318305222552122359820921820192360573749930382716345976774561423879151275438368663689372451079301649486859099675042756126353862263250530681431696050455812836056669154402031210938352343918942600279813767435040439345319559241984888328134160752275334214463580875483373425649377029780442329123100022130621431155590225045876023491525980336725612239244122916228809593652085710262635046277835255217027582767143121011384857678897110089557652726827643949762890613530347108394929946933793338195904588739107596227468109571950866300069884519074915572639249458058397922603657178507371783144914089509093963836333000981454260267567922197597331308950245768009610930515302537948056643142482985365199421966996044222443436143068764058430815456142735373371824309842446424881210060571469497929859499529918805256393502821064746213682937414384853012237084194961449370871425496329376256116382990353044721785491508469432942935712173931077638662722086710298670288190351396960244690454748643724243894579763801101125434008175892596959255460256306094282756137408168612123069130126429474719835404424991660402542891048055429252856709565242391662579560144473470691173916196150834037312253596533107556271451180180267459109924575761535254107342684814389919513367155791463037204037278108504919438356677676397590367925419469767501752729885585078250292265948064933031147262954741826712649720313841352270780107580459067794397049399119322461825024747239120820597149795361049203246840419401445026983181105061419369041389617776602397629654211297890118717759602110364533596943579103295923023649665621252288609522690762507901617140477284201239020698563728609812529815973818958012546325754434697275990822288887479139750867872207572467690527385926060824357168954967214925391891391070071153132406655878815901809005702001477204826656563084337864059483404758703136157666001401686532915337086729828911389476242239214140033549518825600374320344717327508985016847220945116166122878330982598834686811466586281009293031818526587919474656396855711575846127304837939421024402593710850348951830623725364161828522715792863697641112917106671591747218745601056439755425875105543983018912708266831680403556318891863975439736035436576830116733726899039279970322432234714185832599621787203977653866003571517812314795628790419652119561324321561774202220052573816332180162602054628853508845200961899345116987311340862921631012044046726450329490665535349182524705476450679992820643402179553035468718223418400863877204878592733302958387520806242825639983466018305855910864793007907511410121520679637668564592011658214214288098546044337348409040136142331935387668253758390693701919173256509668195576737032189853694382958581665637139507566523328059911285893026889817335130554493565178379903969421051700843870684446299758386858108748694262987280911257596869215327971367393314887914006790483641517356063040766864439728204533156546088777625085469657811261213300257617973965674318604070117387876696933993844937671441971391341734517247973653558250879271528044462432512829417136362734570632561239971392645518734617865632175689068787814962659466622920887076597068340917762833801714678816225720579106397123702760948683314716294972603603580702448249723146736445845559833717960781657446901802410513007625589618468328477440518539648045848272028111994609680042008666475201870523094882599622305638913132809285675782210562939681662718068323085207746700771357001638618989425271201898275814586966762942318647921428128633753673541807689984871663734197654852920618348117403818700681336884901714590879746688886177228218018427621677346193474380940220434631716291839662834437872421020239555500133888387410346712673283252552004810849549446915308413964574598455068797558835208959121396865727094251151740301447842942359283816993902863169155203057072457859579153629668701670900731368864174260856968083185802004408874178458579165029275620817847357143611400463425658097223546069883633980506269631742202483247213747366327571979901089693755131338029167430319353389411076407206361343988959734226926133169486962454170388018351614419126356269768115055727461245124160114784733289292233822004074261966921994354678005982882162204735553376495835925596369424165820086030418641420373097551606956532581691577579963388759013366877140124150482384206421201891939239445507828587268899449842151209381309909635107411456279775918325339297019703430877401565006026584457675245038034069603257046530142343737474739752932540304056737057603923529486684043387741734370013125956145656148414605669915568833710317709654090103917247058528738650468134812119267000256211917345383584080443651254689255317387746911806803637600963291706706452606250425218492764760951235815875476671538233195833866704035633694156097278411736581324348921326709700235607702969637315620859705306800116352482189222708784825689649971299540473034923825115621181075581367741381896990634389987923508046695432830733253107052426794589048163457381902926317819571833576113922963335128100103646168721336550229816079119056220352425032396807884196601419535323286248879914197592283854046812715251931650942071482817273810370370935217546343935741028300387304189846517896026681259587771942745644027317802546226310237695314877003886110410787341135635307525252112124299813891996329463660563634913305112467132309160052675276457635417308036182756103160339342924508215089622396860058386229707568923166129037107755995032121556898862028487471802663624238404960158506104749868686581249609259440350528383769244095551025357650879832701081277276423690399423607410396224460567085774029682421881261528063091545312609989529105424623623834837030703643454426933307951285489095761579392865925276269860997356845042231236147568529653325660100825592726224354079744021421372177237895891035377560905169477610236911651391051255518715470555529363258172821151264090027966001716639108146363783661682826063534932410506448819263832316778196465832745152231452802792091951284880746199993895107504051960733248937912865947621908486800634271907088848251588411353514201421516573414440959907234946906881628182243353806826309109049842841097471690420901053660606908647227215439622304209018067697441434613203849571226397751795799741564178262309830378093673074850896509776201555202298173340132075165702096117156617574983977514688239083180276176894271542847900748302269308978775786966773357690249373094885408967515730863965342775247678983903143486468552576614576555001345990833062785518294923439037848587352325123269670407990910255244161675754470746077239169643561640497433972070939186012945846868254620840334867273116858891116416415638971536299315244796444836517272463731522831587944818181020182138558923233029741407555877416585065175049849837400412032851608657534909559124951063882848181608609772122939851238668790197592935544012367882048562448549032969659718699648264591581227593724747342299299604458422458471910026899532895292344821559172530605979218882224844515150548079575105740711266133416701218417629134631468440893288024557132324384493990715166737961570093716306950019473468908646835464056468092081412371672291779463489574796791869625753346049634583838746962986685593468672184103807669104919479567293860884580898097806510702741462919103065956833583405664411896700763924118220824260989449047690234252308193398756494212265122801121208767036365736305198154720450393030046538146882941998681505737337039810766057398869881672516146820207489959118334674375194494835493242896316123992208214669856428725272165591266614269605812784201682838254144720801328632605583591677309072944029431291489117721356813862139532020779279615076957187808129884185216717320704241867719453437290060974080849203532403062390435186627263557616515295033263960344762983806716972528902732157427399548363119387408820422117429713259738430921511803243067903923046463094579686513704588683003104038644630007213956111586336060286281277410302461772400205461185654104924570852977693997414943840999829822780220689294484671322895219159557360379597890236506930639359167613208183835895232142535840580898277558968104945735626518801771748231675286615849097756791145077726286070989425954490521765175070557667831555803071927687795214437546087222260634052243927102746444335186700863102977423698658444103430520834063808786064290985208244905350709022929674856318672586056288836564012806269209313121969878782650651731876860936475355665858225438831343045549961345285021046332180946917697926419347596189100107370414591209761624859231041069577525692627158620682119686524800366185786449665587154954271792854876381173399953120360570450261030097346085890673336652281624780456348979605341901222539708572303531150841690278816383526799246415434810713596509845235076714633088936434381092850474879589331034455797887670906787263014088900184135457553057228960055289144463747517804707576060623569437053819543871188594249699403217709271403773310514289555122598666073249715690142160003492490830059517432758220449018283499968038678177929476485744156763885596434488085328473380757038976361659759095890686673113625474834388732432417935292976722950510768593121421632087297002830146300831311678860776893444610071073177520914898547420901699000792985652481007506108117825085912428349377314507194375387034957265545910735366318356028871125243912736633740881539196471652826511913978108583874077941333427426401013390216706638418947744243320162919369640243048316259745880151491054076000520980800229958786704796771310760862184879255227180667798390283947224079946127053993573467400673107712879138517994175618693060900107216841113468866549041867242184082858860926320385693350207853347059732355976695398292126140195755125405018579731583563817341219505896808592053688929736228173684456697618217746574320444381146279028701950056246661974878899455087606592861453715434046175592203446611055326856800466678507550289283153941825758896693389063907531321105153509036447779366291687052444401146345125670709628750188902503855726195897421105511747005276659566331544986199736503941396230251876937844675888297017544126227831886679580892152871288147858749979755004751387285746621353149336249862649103036642841265122499026741691401630730350797421070224889911558615656765071591290465974978582453536340472612562034340323681556059054552608186881814114309085826878237226899328417379048667857143338268737363002899483170682818351868020312485195484397366561756282652094099057748096837379660294704364034145496881868395396644670904896208503453942610342467484363817521801294286913475772953742034404623655964048761977734146641854386380912872056603110201568640877295482762429804998464712162523409696320085630826502607562470603349422679918070667283778597527866384198019492080831440359740869922076701366030835013933727874472655443370063561256209783240830708806984877370100636669066468826187675572475877269812561999842740823946151234843652577611774496238017963909746625079956033274455188122594522017732059689679114527781098107997897572263584554545101132212284939890969034243502418405967049399946547826862609028334266945682876146477832778023745942284566330464148271956367545440730747811215294061459531072122917187721241092825210114464578544653574190365652488821532094077329229828572613046236769711175278185187507149573909209182638485923178846381076889165425725308734451901961197599609196399921165713896018022315118262676474945632044176654740564988992638057618781281633808381174804242429244099508965927895881907567868067562195545334488297442665442407217274359272866954345330490485629145459133631512817755888535737548022229249623650728393126535124562208650053181751358808199746624954544499718818120553706340885574705320698152968009959295214613491649496070467907227591567817563457387454830684001361996464635365161561732735898825370696689015196351005150170119226625609994109831804838992257646843464009804309079997795209923327146626236377878321253264670763172948462502604865350133024545335189602171554249911147926086976090836024756716142518036237046121184932747515623515896731222824218303466806588921678704699612300153763317396627083050408713202881792221221757855225875978089458088901705977485165262216915329169208424783979152250142366405303643479422189517321218866950290637147235501310290156331522474739813314702113499134019003249020908573185495983699324276970947459991077714178739255776341697020135593318014466751889710126937747813580850244445108717131155379064748093341621592925872023035257376993858844690735762789558276021585776982112569984474983648975796187874191721543929421584937681047870297160022476196889112494018695492608809279908808337844623090984359911188576278446340488244805463405138107153750695844610218633672744758716982653349711146383461678071330403302239395746119990732748698254531205569366455743251449553106950976084330624351523706827903816534688415489603925845394995198484402627940310450101198717127329890712928351922390961256523392401214198004335992333371105039813605216771223453964799079431204699388965862850162257707467760205871599978224817062220880424965395873069966893049982895103083872510242064135738030542441705896712933786868057973127273401294309262303341987275868400620079063060538541338794382902060212438105333260513402277876011043885946615390380344787766021547886426618398200156334708125166373138952016502190666130194190976164480697704052121272902940269593234640400943333757319881794945292132261948299472325998999794503713557279053580714696852232671097154307345079090519015648868969036533929392849570331149113582471385696645772940698248933648743777343442126325567331063580017452558332208654514040518448145355011005008630935561725655265441423469212888141044652630125462282049829002700484629220505392925124646182209503889393211993023457032433223963053729082547887913033787989362282409396232761161160400695598601545160577692389029399720848335612183139648404276363248691667093005385281733904329443100014894764410728779630364299781678944260712532500550671911115877477086152397677099498980436557879106315334341260418791981750376247790686775135614834420574008263909529944839017827598259661475387615539243294660572246314224453864489016579007842057930964258289887411349452994771338793117331436426250340643201709458107335607399031371237866238170386707213779511829223611329067470375107435883673630990266725213797166987711678050443606095912843591215798171363664482328888285759363170877620226401204815915651553461108517565315784256368191921992027992905435817988889776778045496609912616803857407418478806260098061881485507190655197061420730353478055697520900070223954933689351589808301948529652536017764151665052129337073124358077446497115984249934673040190750215911354622100378729320979877897225945381102937966170554840176887157717478108215369632992751856783843035857329661067194367814309217268636671552533269055921579632265153219269480834737807805720960185057362992629230361975775170264508917241881411446195687925059387756120482231643885374525091751208795979363287633006288801326354492942371968593607696779539393024353687779483921232114431389815260340058933471118495068222240443590562012477637908548111491502552573219819161098867370174493761230698144694974898780558872804716925149643412726394636011283339024382378340409176173269109205321216238565516568429143803707470364764072899932066022562474072730503355187199964337223450677861407163936976628543503780792133300788029687637511343992736103588984974264039517789869940234647440989553392598812046462308116288478818957806058891476241519245967863960346765034712986303770104765605012031443063789852522829488038823167186970934829815417549576780294856446266768057184274388417030911597761145924286345532232332821736612978197569730450502670850051403427559091232798480575816930709505618166939142215390138406718724562879816166570871127523336316865378067024497594192916050084646594138196144787180239599187644241241779521433867524322356468540427265057827048301260194291923260885748895321135377390471779954811908661195131038016932807299560845694080677701284006821431246158300422962539069415913713227748319041750336301913752239489631223702269292898036895105659525591075922748033106911136346675010274319696329586277818477914562536426333461866346236891950007009235860057268062235652948512682419893193222187292009528851840281077157085036788419734747846421391481639509186511627829898208025280342742444436407396592190023789161945414273350391473233694118525441698470125358796530149159962595405452893140543954916727598794251076024042656513797853740861392764551535877869041635829234024290872669672909976555359594493999362013682355951382047055580570285553792610695094643080990267848357834956766861123405151316850073699204808877294124634189796011606233960914025538045895960127179792460870615792491181354245447880900241445680795577539807987559301220106608046496167742752359652768453412927645107239884685070411623978032396650804292498314535409019490560023970406054744500254538464649015202093367664120038652165032654219336238683348430917465954296292046072442482689447027795561734630242246283642220391977505390185972056288501596136153994087695732830476272048932740219528793339448829660849736379701359546892087643576855230703095442867400866622437820796192917297214510468289568807129427509461225583826796362297814111172817031381363259893945956650163525090582019821348483207814994363851168470623769301265647398353867124324198402441742265202786149636443110422037047639963972158345870789315836245506386439507334500765969794815149783240218935581553233970716455869946895801177713010316926360157740736345273240890637902981278192914933411175129727341623449006046129498678056400703450503908637205225623129633058051113668167262165744983743207981242156832004872969334140012127678951575381748535452004379589990449991356535659311208786810347477195143927597889998569355061260412854823922679379715853761506900946340483030666950777151041749390229981545428870660166135643703281542732734634498630863906488726473686158157841709441447235789809501315254548792810257205069115053834271175653390318341876425164342980158304837481832357306476393347782372786992177222176542120988107462047308566376141151592275717111948570365809553303807983671709666590182327397106074707008051788449454689912438375878613017548797480563369812349943229847208141286298095015366954941004271622636934827019736663935573055697429890396617936120648157688223108423540624402466278654169946315214696469173518237629003487757895302983749608630037959470594018930834267770014131914484325185086188823591366808783268581735865394385703434439733903994650368583159455636495084494056027704087273929801708608996234683778658834739588578148189133903113004292617208717854838108725067120496908513367203937106019365878835558322790293554524249018151001843143845986439446339175756750521738874235045443142996620870951088928789132115376542708030507501758600107460964840079246058474519777646850265243332562721803961097885375304192964762183151443232606712645171621046006274700417803334009750524747015434726224835764385179765870126211666031501852179801607823006283945133340193668418296375413185965851127631932558558102580346087175306972574445269196649352023819840917135395749050184850483137198800735697539265812423948802375389617327383419940729636175478276952714457805834625374870922412641733972321692166997689363084373051179903109009459521062508301225719944061880432521592515317102109695157603546671879064319687715817570064141610479091423130273566208819988613978793532382273275393019538095315880651109805682360374601878199639411065390988498212949486401928248329410157213362639162906385332272804543556831614150375747644449583070230237693203461401662642872301331564611506067965945104542192518792924538958751952759017457257772435593409770287285490247274527940502779647916542157305814274916421384627954435008246410262141980188774904322626537250927005131430523773337131168764743851978273823730482553841323433082685551427370430878852310614451128907146199321815167135048724894353533981809993210158173647217104774935637595325452506057840150392917118375498930652526457139736502393792105150659200992335286721243586452712987607640671218279202610275392051678012762911723224921896141632928503902496537103368115456437385819305683605341176234325914807000829382030991399181510852509558937278698255115819330683154070545447066337204525492778496376985663449703893089379110512503724417462106677830140939805679901490686494716957045515135539420618008145230894128590793712681336793657751875208248696189688285539215415458535353715663237621079268845710648952880685997843478346777871965814059516146054192659828736523968918219054928605576074784949124687977166393669072847294234486690785486683322411746197047814432042053816753800775471730316947503903689596690289122103095124843918441497164737745756122027301027370737936025657506355963674098716309096811191361576640234584752386677867616515651953053473132074889376174857882070496396888508676626108511366534859823526002272215855150516086497203673926060808341800247961468208230857475527415037783322129371473337399499887803205121648791720494702727436235006122863426845260909549713918935620124850891167425768558904222524104897360055352724287197121343736634982286939534799233225898973330335246489682490999189986521877009433022191293971520763433376988283113966798482914666252732160118462520784360841486794720337089856786323693345004653885103371165586686662845643707208586746931061478687962488844822441687715407956785918547926238240293227023831393321054938926866495513031047530077155204912991272812848630365967921431035608154018578692904523557116725293481642947586366376256316992534679146948512915078114411443437217911140906684609671040107443700213746169564676100494366808067215905678567586564127629833914565250235869291377741534477705584688033177573953474643468554307574226779470311029256687227006344961978515654184850314452864355623428617217758388866748061110899646129148377859677354600152060378962405101166911549450517692509648340123449040325383886906816205373141646054181148996511680811241649378275754724698132309219769294659929863671409719100946001141808885120330667147866190517529444033042894587162586987936495552299362271754484521687506892775673855843951101706825720353600685571826559043145426132958974678688767460460767205652660886342205802823053214119589446307882071170036431409881925637158368702094237022781678616054671685002692941721244803781128880170466202326255663280103638352038687903440745496664789984864970085632350437613736404259412727654071724972094211442514344802100389565090778656072638089740615734295786145191791459914060700838528747428927605412077180398227501602939896194437599149199096057115395094679645704228577748892670798398193562081894624367508358045587885615967120332729193829528505621969675553935010960847790031888742729437464891257316877680768180088750356053109551597414345055872567551984775350272054990405019001203287892254312860333844628760939322823914322208620368333100169706295989705853011258942230043594296698708259579193068296534389674116132196388199310892376814028736955410117791716294341686735245982887924247082689327047169315599296874430803119599852282094393529232634112698597477885583456271956558680850002925325768514855396978005961760607399028225199464363317537750438120756739116317209964816667238046241050338847538961084412076537335023485569983182930084248099592157023251018277228192626870328876374603903874114139974175443119991708037908749155153660286498409618294499002108840623380218152285452207578898773617569854808996387125656934742954909390255579857545274153419008643303209573824199874393089719403697609478694774071258871496406919316143500697761315297760183282099362749851716567963616414789561566545956829643486815476010785237729598516728358748010197492755606248953552723462237299810311684178330239453181085688291366804931601860236880287240309860942742879413861514476628114369565954517056168527519870437352973240321150032252569767025631125615466913024260908781308069628444106506049789768955936295570814818076123289978727341233529748425993767672922452468105917027010863821785007954713579220447877685583734261082435772459334750545069085471349573209049674085179646661018997279520325359601442373150916035963352303317555246337909911755758050852586875515468770622133823257644659983580295886314183499992342452747944600506332220447336443521334554756166236801832107112797138386960196906066349779392326450919433395075985319650836117918644798542628775174936225260446394023345573277028551948390081229083701530407185210123527808602344680101914920629185028655801072826886156855670984955034359756516237728824526511441623184963986653758684790199136735290862553624828033255243132256374648206913191467362872903660048845849691705933850315250377243649086352432928954342990415596656381283739238746754581777447224554564308326509231849491086768190547879847410665855441064634362022863503830414975440012368376210961978478042652976069338845027696037212894601635688091022226052645991804808048928931362579674926684751705544157043113221812738369611418742190271192930283495632892720113966832538293986410077645543186478687664324482297048849908817158572084328108041758060289234406278798086266308027645028954262597383854533087447900641776621118242001605690317650935751879528461296750912835845922930757904542778157619410376668240788301749795441416973877260796104519766154821362672468928706193124712000233922548056597987549054122547907559845026663485754260957638695373823986962966338868175011274136260986536825601939607952964546986979227037252220132367728026308259218302093262714984159295100669545726715178741880270624272337238384025115851194493467465728282357335280009942168854712326576053561254121252444054088686608872805631704598674041521110002918555432938741915186006031814798455620848081941277355156863230136382349127424508250789798014964492424734731761477589974563726586511468634314594417066198451770002683274173682845124041046710032552024917365678722129947798462982302769881142404333534049269807241334455680354532298923199058907249810710396005951285033510713112946456264002654723312698809041692646621025434915598579890481485330431268330263301901419164057218610754634915328421236221311441888155330980538893967272281916576524159843667914171260468996865192178834203855780791258978608853231174683403572896715753561296776527161154773454712753469902517231566082002762036360206932989670089526463491202686774122469347059682872547290738023526518350121960726058531871984685902348672435601875886200795692906280474078816662499174770966465072051696345019843746178693498820229245171981042291596615711283824127663925016045505127861809162361148487919669031841545292345282657263745826317381161771259629588518232167821193989726010415213135122605402551603977772409253186034075359309908076512016202647478688398763259877556505719474339287462025338594274831053112586295974546599327841633817627800239976422925290771847456606696436315940117066324787050904891624719950933175600805395454868523412826044410625156187887568433771373805220375543010834671321491844153956347909220630756458986737067221470657750064318734804985419235485784922910357978273474495585935663231674491407339619652621714008229537644525495367538882522634343140896818538048808128654943225924188104601659737264533550727132345786873615933209251012756872484583475953064358892240778256838246162739580215389635613329898082672283112374605338895081573142826444260860954813708490645674339322041395678555005794263784948673588769005006129970314157815263064950460316038984132136514007629721297754325215481121567395446189955110352618313271008565893037258396466390751799531380331536082202461882338986415782910348125579174468380941933490366750239153640748866300826359066221254770426591089786905987574330228026791157925600378560067817676083281481436349457819514589118279360747117380155888382813618539960390359430618348929125179606740075933781589676464752942059812622827693327298859679289752510010978531432471103748804079444164125736893179457461264411804303282408516286434245866580002417512585875400838791617045136318945994889560358240390238274850780473349720002348678249283321703063714567433851630709352882469071670019609695401900043315723292466925069633338892538717428488146067630270165299576346659863550709094715876636177171546632559455036215129944340129618596818765804942726173676888684096216145528076058007098991170354513900805493709450260958446163329276128327396968409421851549849175905255745571344121872410784144482726699585311493563730267629276916460586406390280298035141202713406797619110315771419789741625499769527001651389684417946341257644120360382003679018434619971628763853392311405915837492791384192170051523353143538163609996640693435736107103996744728084657263810126128766063638784854547266793773823347575139863170952093363181836299585738065029555358306800040810181098404932110601144692735240402684546831825094579162170440569081849131418470653325016268640139906490759118111094749634853699806506744282267167132958763101481906481641078891376563507480004991798008168142627194486704655886756681609320648558220964121147854632572010305619030517389331248179177922325175124578496800770884419855864421417318534569771994180368302773785004252836891705668560638225286375147574842582740898324858324384352747685395047601923027414613730866475465701155039275936828672261034315053931902153146279166217144155478867559352149447964316372888797265643010916397907515582235865925216896351833483242315590486144411726453390429627644454945605635251365406619322410576937985121742124711113848694366976373910132075380736878751114677426881807188327407626648191173247026446573704152910531868971459252059207200748743842629453722566694871300823343956055754606754090287911589218745948359888827971380376098073911673383366977724929479309256574462305306112237346224521768038522610989043823731577147829786659266852089118030116995709400813704677463959138040952975048334172463370019184992254922483282117512876049992361814053162246540393901851428438152411737403254653192833739756501925655856392237046966931090030489780611707776082480677722440101201461468282266464998903016714989048640178877369318739795256244739185103963102711622059834668614672699959711957358161688990801004362962028108083827725460817243087449081416505129243533946210039336545983533692369037154826696007798223751024239487457706275308042077184091163515410016395319963307683724418598893954535548895568967851075075385819341663244506785541046732243089997721111254122626837575839877933776749156398175533171965021313232460074526387526914491210475387811101833589346148193124801551299345228543491258906837104950797016174358368707554071044554921613198762689015383770779926530320039337210082815662188402051565004362434107222209168661446132512173145873893979734659911464582090443297615294704129495172338638014082278902055335908430739646654128755377581653412502525270178175410061167582329395834931921004225497594420451327637251489454260361611371555452850194038755004535737165839006703901539971163240965019467588805794933921739185464567566643073335501174228507223611710533639746353208607121822722721314710666666313207247663456706252337519331443608314484129491585217145912303734046271471120080501125532725164468895963245748496208285582835683804925549711779184320393060763116142826713976743851070821754650568171530090350969696751367805157844583909108630591226562309952075835785498036246184952824394961454088916435827526152440048050131748699809439402448365636764125671043821321314756786477364928030148807796994730543074088766124564645772062305176920224671537318728708513756377560963258422683566350640253737052603175145455176717296779185489239006823276239485795501254280487301111707837913825191058936309513880246929671155349332862216425579753714862414741731197520145311458284304331181863680567819164761047384074498723769144752734949664375676617160210430550840014522706594524753827850896334604912994193176527573924731697426801375269292780702449529671874879171386356375122208379838446893250167665923922499429250143517698521995386655726657656323895295208138198548494671849177133997803352879858226371950845321050048690203978874206637065738558472323407952573886383461099426859005036035879439067927285553435888704866258551563191975357263468953253595704976425617432082604495215354353693731048855221503110996879123902885175036234160436358051680774580991871186966728482437911697494908639593768193653844820504032705246723595619886781737292142630580386279947538616728347053644486690927103424709341627057054205961658175933863981583114455833571289038475360176548723400620351145182027901546092780182017820473659425939286321667671318180515367165146891904642890876515100359763133640768818481354476490526881448196314206409832695813015459240051004684057213067598721086895806508252333622187075615528628826931939582352668089171556742414847676293823999545515869236068432408363669101746614383694839110079905241406244991921675685519126704398372047680431245799741000910393448086997220939709772146010828077630497692582479982702690578924229245562371369679329554630099875212081759791625476891142895854271286962479286574580392186179103544891552260211325814427312273508066218471748822417622915672546956744546213947805562237871649904558666068824232187340727338461720554591078535817372978297918289799055095329962741948201616805924827487778216306553723280649337887965440902647438215875620836587152568731788035559261436998139380694870683055962651555447573229750821501911560549665471125867598173210312449325665603576216919946579386864789827375081239081658018941981869524994209997791587699617568038946029723779184465981795453789591840352728864040040854683714570562553083347271179949849593405119551895008479076505625403061117147535549361847795840855511303117464050602729023528218459915627964266400440513308650412376835361014434647100216270196073729962551923274088052607515629864227221897473030253232572552702421567072576896318487586377535692232657519830576821708069318929494241714762406020379337828078407381207179223165382625724520206019456288603871645059037281818992237658507811145908673697745224442838154281604802304760204909631491282433353465785687118084372427634502748522945993552267160880078975525043279728171518196245165530962699480158737368960427599261294026733374075834350906600107789826108728485380456997380363446106667262865919404801456399666161026726848116858041702868366339730298900287238200658177820433441878642245768282002485805176595114926706973232691034223486467799550960677490746114482515864836703902586338136581696541320089408858401078368616319778943226188418532919518120641905572915708557564988037795741255909453904115334838797357884366851795428952569918860019058604024142026770735613490901374199202323518593116337126794029937487595277297233805355078712954404217604817930358399785701668779369780695857563735719958182314967511444369452472483612361073510800050444160581087980244719416426674330180045894725683017450356116287379971702843666194978903656300233533829112486743290254302867636111308575127904994135737092473564791465575811430954505434173980759514266445810873796248812023442160092050442536675877612316829215959470531669964488676961770495799010131590331298881081423432651451248597484225133144980563287327455755642046797500927767306773708603185801656574973118960977418810109861014094987351432128647666035966715808987952193157998554280293225073003711899827988994666799220787252173435604084202405348419195552376926765005413511919952620761518562588204284962183681573128216903315325508615960531043737136660637857173310987251104373869202688806093598644472505467695058456680333757845322992040623850122495256131381204594375386479229988618728107775899595722302667181330540923590556477965265941057842975035887560152163199036120948973827271267845942469466631126616601659631744829878073009004279587624621598730261017576072096284081404820996489700222986605538591825400907546021135942990551017602857342067082186546408903407901607692332403176150995388178950850949379839892984527615218148839601134600096021431294873931983986926779752501363300780733075853989621975059063925055407050085691129015187921746858497010189487318749744189801639866621603135790754442856280320241242442499710960583567082956641693673119206846486213769071353850426755671970770130221224663818345725167819989768919234952992359838389586440427209016061680771921933654054753006898411415299572656404979360535598745634139389234519961446543593420725704682544112529772339392900536441808451921901072116033622668121549731083555026315302848887094918360200368748003284342789988241038258772264017036110471935663750226715867311655963863936082485493267995632104092915560608406809857082947867085530789270530047482222831241546417183514266597689245094889645120125558140553907010747206000744928375578212234096526142952351706589661267114589227831346020209886495065609702829770481751183692489070179657778018271812787962374952452457197107967497611940984937774678181650205367844202759597648251172200293834465999685021286703970388878997789528070966564738733475861254948235580982005082276564227152085855159622080608439157018288642544219582732913638011367464849548525567184756641163571380621805632303611324981043874783779757212806602951566339392153152331687075956262227678662065098425575228336198708132119085182944924885925533458166618961119473798070967523339828298888079261815211362002478662806333808538829786260500190994363657774386421954217924382450804215998151210234823308116712646466712196719119268982523682252950674098011848809118183538188316075349967379396703922203981848021866268832042361646717048276574376530135838214231031268741348327796150661370987356411778509515642489059827104850601794730104813832372826768835663989466083700409596523468646274246970937182375626284293103318151841531406713255956231377778616020913588527973877709064177901460769265124755784369283070716904277477743727430218192166641346512506342774879999360584881213147859675749462701265288180656810795129663865413329654039830597738083654025092597968519119225899035714966407156383023687067104280410453520224769701797022380354210987476058503247595945988532900794441881945756372191969578021504593032694974480366618817564049624542002810098445693392357824374670047253068773124553957843076098378262268663551817213938312575542779415780174540604912362611815915224707459993582271537522537428809727750336148551434378145290071301663100163433183702718491448251674189049996417826434334592636480997550239766279498969166756006666443305450809392040788948347290727075471962374118314941065288946498051542466568695604699961162167584032307474192518357947181704755392275268058711345503675143386832178655620476333936111702638807844874324915351328325723924423535773333030115780489632674845944163458335957434776907599910992949186115118691601956956209491644307519863783971926248591404492020309945902933082020977760259113595895397199890949909043679250360458252760549117506876252874548718053342498238605506071757081407640544484284155241345084512586827200080530664697607045486705011648501023341992337355531162811437923080643470403934913636233025323202659679999695881349007730124490288481270484268359744362285619960953200507795917043521070724401166649020010144923707353934284114179071667600826343367076377446653581409157293108099552061653312212207383419348613333105033009479752374007633391056140307417268982716305330664914452150885151766310655873530735980667949216870965124725779665062627262526972324509542950533520733705417421871225314035983921492934157038393683027055893217836643905651471588299360448080527299418546885792992054367129373538490552089253883466297877675612516476802890701087946552829466397780785865218232112122380600350827102300232134289950583903338598758563479218447768579080250860574227961846534115673224076011172681411057374355096159823523276291701501500552457853087501360067229219331477892312537599356522934633824519650453421188131145625074815292330764681124329768402361958145923103975039997246916050293570799740103449732542864080902546529920514462895608412671033747154340330668090417426163195528988184908163441419133009317860622087150536825645372775839469698868768630440305113669034109826643873475923771856379181018741430426556253569859940050003264598930381800921902936138003861061105513707281996182750112804083028648777111016190433009208723472517277405984726936174603279702859081518362797880949808887283294141494782550474345335126556707606681517838853481975194530405885341157037033635423739934465840957059787442640390093781107832009651206309441854672628190850907190906218453961607670569075016777049539953149803857053300424677831615261519550610338793409338289950958185678987131296279283794202684070181702685319806770863483375872390433092163006688087362071644574565628105510897116372002813557936964207866944292459937659108080031868611140045516553531347200093041778315598103865859423011681974567690189154839949031384859557009761808878115854239983211403628379036039097580723613360715816951639333263750000668689347852343291984309583594150897865726553960416385461208438193806679909752337941985177107021246768739825643793603285224234795568275077976555689667100579361601770797220289912798193156991153158723965266445219576666310144493611804955553582408030872005340963169557148615080847371510403911214367909374513547212273752703314207839796860011662491513929162335121398110546617583317247890544431224659888609071251790534411091040324754532565329810458952658665246812993316375358390744777240022218166937390621265250980145989057514023916672299979944354909115517183318631008954418883120588497852635316483676630501924706069189954162699157031553284319009860093313414290633015751930015360273847250370429265210966982564484859337698317435505046678477139269887514771588908565065911332696664040828739931339579708156459483354004440920059615488819632169732328302751153347870067235878115804212214552395768989238921520712158906887305486757105591326956497777547484128024146145385788243266579370877406377551836233846416860037925766481412349779079365186105041848910096873873615807352791506457809107708750281528182366178768909062021278234074003274099611787713272891939623425588394750052840034631481601264539241532684864445864113200338122147977566031204091760881679628889119329750406551464607933213701223261293070858042951262624043818404908637326632547680077481542766048086163868849780735660482147305080014848240023403493120217996348375746076819007085973494324375064547011931570497144734811149988559475278607309585772502819024524744480820711364105344814158617215730038614096543485082137056640117703750881306789416971608466080045885585964974703645540995622974015200101673367884789043780925435534112245586780785145461971097869220091824098739458297576106351001289770729005940379411385957433200001105443013183775403010991992584240444178491119492597617920596966893223409805620818796334736468359932505866859953863650117491306653924063313469447792746405746707284382728404484969660221324817514779930281533185642262541025799017111791077012338532810963299414623493676848890071798328559354916530576337893929195090026579379418727041187513941936701275027309082245853501414028324644575187664235996061397642470835223335499952779016869982976585521354637985247454692949177614097490207114867027220888411344423903204424108034732125221128536393190914196568374235389177203649234231464401055525510691254658208978204840732062085703771793882972447240804390881183432119635101961323277507080803508533231932474305626771126863218080399978486115372393821173856463397425214591836566020477508169277578710409489155027982403599095901538181107397981541253667850750261586571526925451974981710841370525358950939195387754794345463713838810659637795005147164524988135289722674762863883143178400125038242966801391927093308130305925425698007874879772834936980034771047360694926538794748255480278948004130603737700387689443353525689197712221956394482701671294770333338046719958755414724645623908547801059480986606027755955939472642692796866715625426450389294198061004519975321154733950293780509844798587396096064287169285374434375838722730280183995906434962222335683678579502233265546207774716983801926602558700681214956643927880632350438715856579766227586192116288143180179163887224470341964571278270456143570497838274967279127183183484322959185411409589788842732859255418153489760191127855866343302555939643968094841938381600757925872783964066599700969423154950674981748824269291819441571831119561504987333461480457130632892360079372791224669498147851222737730523455699458023274873466854823055697291401650956448405830074025847104016670410932866952924000292470965808104581137221167275540824851599009787195265058009962894133789270964094005232203544793498413387346246426271718356733257001197876168245378163182250921907376372291730061870887937559905712353218418946354111340458251712745880218643425899358142348716695927869875080927322049554045579595638348747948691472226186795916936065354097108373835378870324007822005519736825307330258842241989773410257494445275773065251094340516932569949069079795567751186074087902667492918386867933819388775637553431975092863925054744890159890661505521050731192492132522445628458437666498743130720346400011355632917676822651974591431574173900569829044490822753266261179318003225036741035169996121790683403295055997380624610028184822192906871215970354832386913604012959305298893240071485605264889203849853180549398047722235941862602668322392921353339537268918433292038367340167883326687528434282850331427144308707444985227180716352693500637306382260718731325537662569861843476112904053236712546763750446297360554632155840322247639098357250913704353596638154189616549782733987335033171826827677648753321822466171552412128273945961914969718912552829281355428047222176389775939998589129431280107988775502218562834556600371303747663513958199989155671057743356861012998287409727337543406998726814427290237009683313680895027387375119441837754027502309856359617584780480601634180485616147548815301567799218467480125792634049076997853599370516840463414795030012151059743219137672116500529169492024007646805132374403392077543657821417613151958770170098263296065538923877547469523146514206673692788498577792529898291033441673301979843421580595278929934083095598417418905770477092431134282121269038827993877931894027243810143880715623111772472568307283854922289915715208987851384470470921719765030109745915956994883620056891841264501642980142167785586432290610483864615077753929227541043120229621574795064888663753017728320382373547649933127712670670824842053060990465732438604896258361786474932004376380220563949519558691480877248891892517937326821393471183340876340328058113085391278539200510846808378537014935587393196431846776946896688803520742141907821446770039060105292062878238780290414597030360315056514120238895193414371814978062086123049031020749424030791281439994420546712754058737739664707079776626957104475418719817429424935052038352308813287020627047843828823770223798685204477797865620957989731167396790744817883071869591260008150189870263737858807806605962594356590163826372129132414411227261761470046443687175705332433565929574760328040715788264022076464350863056920024196706666132655813904039389805039709945471758798929620901925959203468428926109531848455888955050878549379440051095616376055280150482191225260940961978838873107141154074146564134880494822470107524704632332768347764727103231180937116656349907290192271280073360811954352271039244943972843649530514352815028071842378070961095714441905556247000768146582192697017930302732167708577096572968356662906326791058870324330854781921808874161558242093431416095448087094168812556525379862090694441532090690277643837616295690762652652107407296388314017623501733428110381014454647527297944077976889240795854105290883180392125066650498177372279497714622414895766591559529357190075021346427706981032364667293182620426364589142871084624298889880678498256618236295784253450216111677449692130956732826366040165805112360455174763377966750925616534245276064710223355233047779312002237590940700593025501369138424252961866013548957327792405218283625332604256986047631948472526775494116244930300618148345042325347810002430538963159759967505746180090927013939935104559358020737876962208686662296482518804714286037738515316359270654937164723322862320066934014256623921525282523396625233703976292960582059811239952001881169858876182343751831201758753695862891714765035708084256957576298478123579793825941558738939614330886034361144853086039381361891811154071336673494490292283625985296351516971358003953509449367110542652720079773359595197990471439038149184841416320918864246838422200625607310284125874225024052960957869261288698436011037818396843968235610364515347351797486936326522747590165295593692476287348272055013357062415973988283002322742723122300154213364618072711239236926309607113916386292750678927720884431710822027395709212355435070945777889759246407599122509939507086155330674801838121553550779290867042601643358525107092464294515312903071840670702840484416385497967232470941056535445815055817507394560894715998161405636258406748832644531551554784816214194487905958528483315648106431372344198596148735728008204482006705261603746867431706507249059019996407283591369662910099730354999173287233819394248575265405864155223004243415409139205809953075628305921121688753663833338654369903434251591695228870842111202000990808555357277227254749688954899143773413156310724524267893552632242683973011711486217808586739636376011933522549447368650016701862798609097962840914918072912026563126771490332203120647595898836819114973505737941613441022601035903311601129269022318898118164155774980712394211618466978390275265913407371081069418983121120887097176797840147106358334848906920916646964462405421874363058444057686004658473349201883858315726961140952502938651462857627175950220381319244565563387812180070191238335128195286540664401570013646903263093007357365985554532029299448356344657582533355071154050620139966375098521409163912752683166956226284794962172695966816392370364199612956430992918230846042927744817382700011758529875564337142337207142351851346827079660106498853584649200707430508870456429143002432538767998115117893363134182450462276015577747958906358391073115842929924309285106306247260631535600853652068899444561139271614010091281399045646875881921305872335143404412369309417416569473686230168565117319462240879637413681927325510837574382244448149948844136369244700736034220854986222374658847366835870982160770152635948808062189712609671062572743603914545379241339117968482939921446865450235351162928321029468248441801666486972205742342572916051020871385363621733983155922775813185454347397726561944187000483036014445231271459186462403194262731400825840453954232313720735727369500404095238701410601605502408571917732668216052445601341839559791891440559001600702094141624522612830854069763652746382497604500546992168642954836789758687666699168329779128993972962961057971784216358597821938538468975425921890395489193986892762411541909600936194063924267869344157699533043088043479933096291565386791073137494105634945460320627069186586146125161295533928188260609199101615247197773187042475974150613376443701525813562579852773852210242994826390813348611349116608147714481115794919234849110700132481284332362353247178083112780714767419804476945053304678460417867053870140343490432272753739170550857484973413679266492971868338435141840693786382023938544124349836199066480010033579826833354241381121524897603516596623444512966386763548790040917850254538120228000203596165614379466551311631679323669372783311978017766560130171950623386811042866665241588815006392921996823040211039113758450854687437322756845216965901942230813309646471913353064095191416288040296997599120436367506655624877676623616376593761666239307608991172376863548005851702381757385208874716137013683232782077139198887476246636059628783399350358729190799444065306980648210665949970171654381603470711069408254765397175265593528062867270131767903724797168977522944457486580600241847147091466552417602543233675617945321347646553393780823661032401097772155989463805837929327229494404036284652134664531331497000669997865913929426683171680730299932244888730445988290361617798226990757230893352352895211161659460427686278977605977078726399756324744807537332282584942804894070017970093188318013276807117636845628035997065783292878909441721141172657162294791643495689170001516776044217223903857633290929229769036636563029241979370540692952663032733464809340464407861291465400224992035506910541624834188268201485732233120443613578829927901569657075246718477366065317308853490293049470789454144174611998255040694310765768957245896565283029798048759589076220051439798319546705396675895104530472637030306525482025980981995355665755907144369144373249899638785378948758504324372479106793273960155409967186594295793422725339820270365941720337788906682449275475596282664677987681832531222343309033301453676640763713116441951896233087585056977922239964307530939220321753726526766800180131672740142071666240812582888634064369048101423417818070614097502675348632055394053634316842793803943203478885250023826478378395982049797786623944730192529769660820351074685358187323699071155343057393403541105980826934046907160898845625162004064732090437192866420165701024714639879194872813763221757417398444270566411513096052936753855924711426589412279886119240816313393846111869732137390811883787560558732291172785759263023238754866684483842103400459884031116262965259584701808173144556560826868166002251143330578744094029177568189327958521979451777647305204145382975866363742271586796706505646594323589391166959769863746982161249628785251077840328440620998556208021780906717766552690314346242518059291508617125248690815257682155334214863197196778581795970621279088153222234309159856218825490411068706070755955869276826151584526493948516181123008442853770730038228341290113645475162361626506449437393302917691657386622097415846994023703154025156374980568125485227975652906095696338575508736348026924421892829113202704822360307763946748469884780360893090674757916612174112999489726484242798619087637943926809540750690228021463960287604375210041948912110284420691527492893686708749561840846634810816855445451289007584850401357279357099269920090205585677816469201836801487467897546447362157079233266778778262360096198034567810595637824200575546618076632306221670892248728637014537638738720587424541698454191027164840294553318414282617294153410658031257862545755566313651568244180611873168721741773104028865732034438892991944763368118721347705529245321714453238873593163669727824370059260820128972872370941149753319386402717670605574603693707527708522563095934590359772428877693764564094579600563396484501736004500209011580058567477090733336886422286122987742315694329667847468295536587978707787928411932631215527758750610416207136170952804862820153337352623867805834791177542415723513493413645120469045901772598096470515414656496051503660910582284075668052151675404369148125341962526930145122433472535726742941964287805477889761634325948407027311033420793879875534575671372883642011466969985874649967697168343907227697438904005204327057050038878723584647760078723071204022595415938840076076544610351859821150677582559681913048111997932518880951927627692430420469550164000326434924660647256418312886843883959111259038019254718183310020057036083830351736395630143241086783448021013312711251773047627521422614674182974250169633615128339409231885790449968636627798459020118485671080307179139088636777048330724739648814335383572033449307410755717625747418103595434514508901460195227899680868228191254644404863462722068285319443609947326580732719074289681711268337920724361935251587616628437176069005332759393610033429376174869377311973603673212392095851087792277547285707493565953022132681478173981803506047394479982652529208714161129112286929465978504167867694008352896247643663434516799817736451661333581211427012845992743943574373729849151345791894028975525451755385686167510720691277415125582294923967460136955594076770081701357908840652091131714195993802801000696083516472917479817654526303922950412262760746330201078041597291042377182593579712537527386836670506486174372841073073904454172879282311526863528008268298653331426849006873810287320509131232726234345682144754917880364041701035121596723927959249991692677068082689767053380718175718370915346573118350357492459256065682597343052239652410086071955089235653795201206875881233439514264250491802282151584772388887032252588786158407394898491428823766667854239675714462138528914838293202863452282005999559433547409496719366275683756311984115822645250092548102689811363028468258623260995673512534828946973341516706989011145655812022981781316493498650771004195172546462106511721322786090996258145230922189753569708888391343293454429197059216325711438638363435082690870992299236524840857818245758755499318407179958006124728495245229807540015964896844170931889822654914363520373420707077517356092829732449806976988954882750975749007801286834519600712364144463643149684650033400160088796514340318335076877197573815529714906005977612996137680838860235794236379260102003395510927316062138920944748018391645035588278097538842274114543534900075367138192351416309024159013262000942116069660644176812137599109561723524017088188338896748649901319617222256095730244234494593760810589450980350602790884564462082739405279147175728727178961317705679646677476820972438405128119035821616613324679024616823897543066381563750331763795209152235711553018147754023421536717584610833569762963944024093179759152710086738462016248198511571367560045545271250808082319366585703059967788861470526030277474738811259304451492811441585714946126025144716860919098706348589045888828305099203876265456428615776931776818326046339076399316456398201226858481013333907065362123734665926510774350472872895032180233558416889803056385688783746456636616445673859084999363556104465403469711248351762616525003837121286863787716896834329125788558125909202123227282315943499356672798689715355834227355045367363418173809849303111090402418246947346723365688272442441864996701560811920317682962175018362091905226592806042776413257574397918106548026581725488293001299565632389823461148049695869015075446151020825354330856624167041532042453326002189075858457316090118571045594496524184674772070265853838909386606276239461569460404124356451298586329310976472409920299621299914699367570091136669402390020853660218906969355945922363137279544390919867219466845950104771761470636440804697500697757231997648259547294928139137157889984049964444028547998596821067892525913384982731875115837606620466594330535577390193295256551537617372628140669435174517703189653313095882663117805481445231499973285837827631136238704140326480439616474683199565031211429781394800075678657805733082841743323371430887047229674591735702457561669921668733122339421355703861423220481626642890463298249558879123680773136402497694022372638419572629965836585279077804048706698901201556704342854868591647261097514281683940574150132834165861757779020003079579531994488218531756836338250754445605703670083168682748722590046357395885438630708047571088936255330283803531249043135072613022105035876242715930891893938337580329351041751862517675389422191470816579854115179524217683645747574495293917104226611477414632828331904449392889936841566749841902870939231372011431958043147052973703811025669352425409869762815044938499569830953116198641827707420615547881768921687531668202772571249100032150590294038774446175800005746627011019597674982577350736700523670933710048230485948830931031072369130494618995595005521062204626955660942910835859670532878030021032548723054830699033578290503390726266605890170206370757754579139401981810634454794668322719810129266277999057358358640066096916148161204355318800256398802286041171448134780180084268657730272423208247976527449437924976077963943200601946235222665104298385624505836415327250235489616732622132109238790032053839040662939057524447264741686167030976714823633886662709977031634232111725729134856441205046125754871499842034502878586803975205887910136299739503887049872394978973768661406428559902971736036410440593653580388566935224110903158130597745612190414009749394209871266012850920105728139543417038687229607325809413681685216294368924337539157552538730946043891410119650033780380472179745127071713875242711045458304520224208046092828696091362360245462971876708691323901585409069621051583462806569369814270138227708444786182031178929724461473804540079905640776067832489511918387888669551541508843400159259422185665650664183566872598085677483833642601859725074981546687627979093406584720942087203263340710089274216308588437982202752454708502917528753932126349093333293011440836290844718251689066030849697399565760369513090659120541359704583095425456707718867964599511810832903699790389704852973013241107691185948320430256727835199382512261717285686402667297610315840899875588975235905912892187613736244967032155390121622855350370341221826344293492457305701795240026874132096623110649113958160822607404940768758905784893679955543029686343067479640394144480448934240695168940066018521178029997219445275961229046719567837522237864699056452326898869327544622873988486384443873425842492081994187948653601470145501107147496869181482073363035125447625907596229053771844689871711226809138245454949347244255388811858099371162427028732669480935623513803905124487062605705018541896883275303546393559496119828917099229442854574766337941716082591720084856344172574722132013607385595546853118935002506726578175329059031764488974325095448735625302821676427375858596302999865974595163032469869512165322012653689242727775642521890480226196940336303867642415203580994030788404674472344481134281019602616577438551064862304352223916887352440869297330903101104444945992148570331192716293070034607440800680844875796039693524642332682528849784927895093482509821068206061116188507582586968157404364397647827504595189828364163808026738620218660692245692839851396823567501419289034495502420840753900643452681150676192879423999961959124507902798732025769860285603855872970850804814216056600140180010420876329337536865601479547756810539383100814177190338549112040882518172275561739787859593266052303500016818990907103485544706672104418637177350495310651094106843067350816346098684245568044475550841625785052497582496353489452899897344996454489396291598796546835890147206659133756419858178242134685808781721587103890129143341338135170362734899176719430605015821888495885090961218317871870939394307328240574844982454509493212971061083878283858428234054978213332043557227978150380076358091166305666258995760435783532511466944817962247043044710897024224154959973836546662654055820622191360020565946297589004798214873311908517184156910303094760876270715406948673212992115151766326146109021301953428248482212084873105700500668419284953359934214610066883386656249123622157637516817954878169989409962480987570959274210524698034050988675525280420845190629171962823939685261126342032431766650977222961188125306488673390677831675159779962885167012857256383686287098052062034398497922827734557448773391912064104138339320403698708636833149092776339509754106495519150867123362277906389726047005253697413958829613576676414657241406624436066519703495587950860684282833158087513134610955355847497841769897520100105938361133137417506212310110343997086100720720741747696056441303215024387100396593918553823652498506330359071063776279582992499076069403415273209780638215119212010688807715350854715527720382487694706479852873044948036019565409614547387136546177521140755565715290634135611901743248513038540069082401658530442852681201918631460557708689004450192669372603897155256213551401622630727851522656160165389429508592370494326715136267639247711694256768796354501933053045634625505851999935733483989925046088928087585763597200927370955935808793850348121171522636253133259556475127356680139068812560122253820147592611273732419884087556177205907521273070034503490983043022227142444652492302718494889131424253122024519374950051726844862264899735385153474088858668341922536325987596921999875989778575613261622511806322534793120133943149638062857967179592279193454478736439678587929740878936401749937508934727974440795771328638923234756624655390603465130496532887168770563964248560331956832364768762123534788425136683228807631712353394474483719471206871120653106337954596816401010214729782042551983958532564292936776664170247660204645515444402999250933302145095447545626795455624138600197254192819142808804357311379010479518657623843386366840622912581387738447821309424435236193770099611481910099093105925882787257102654241440781194985267655589925841409621505877224111704448600595419456001651773267550462504686400641249204884381699856653637006553178222864353143453529184691658428695138514417624339097404989989922115738190197825995215285196215019008477119577271944611749441481079279042791246344769424122711957317116182190695534600059110595986229251537408345872746199260838442755560199983882813277619587032797670942426978845258530173674802625540424005694870140189250379538926692267181400167409671402388176692708047128915935347072229475335359160464674067629428494231111404978101322802060884033308107513476947783324111568516265551186370304418829156012784347833728948398634785175340201789847462007159313567652531976337681939358333766003053264236085511975612795866530153221801937684586755446028877256463302595704071267539716682323217603030134563624083000252177744859827511670429355721932684341965800639340085363422901309948219900414514053880160993012057710053339297178909783858974160663072487246936283980559570220545150563479003786562997627115584523937773068910365644081357725688170512430672637330103190035280178179344301445725238895615016340533379686059467739062111514757224806576856127260884472912184576178041443111181009149333717368064267828069942421516314626846514714467040409222814529856341493655304221323764742220575524919586925564991403321663824162084245064144033587527218483638705399976345638004634940390113277166982064381873230108506602299649749534923637213465545951727210993884538024932322648123126755280303394067710902126810382534205173455240087150325838718948369259811841272604410611148309782887095038336453660777291174760285846972419751436425607535162443887789872951818076361520645662480093898748610526682110735256598922350964183493542067659176496415878463714200051820413752577031985376683854902734381556919257505034215458476689324319657919298970653133770897360055038776217536643011228919699081875137584301087203775107174010700491283730738652371511341586844502569509839522267393656195323767427952611517618479260869323246317072165582704464730152058563538170887393556272399520577354628991083114719410783040232594726771466195945036752130779389757043509406530278859682350369846675210730398304261458773576741717149907075745548295296744170437691730433938111933534826633749638514070367014277352735122988267422250756691298172005243092652874778144562922624506143216832954594680103954203275270276084149389790118131978985833955649805514818453140810545474368544522356246700754847885455167812005073064712653697817527643581700334252200943420185199931669157645094777300978589946559567965379526185923038165620132592066992113569460637727427787564891645099488523124400427537068517735545016393856476592273351285063208482307694887070378212956100849660644321896891678044527100510078128316214347595577476587664545571580355203261424324889234418825442531553226466327795030613974039007403661398795113763674671911914297441377478001727700246553814288742534404745638455872620125785854821855318742971652805496883497461174150700196449460678499249979058358518015237526840016681690097427330352568238881136282670741483987128022915431783788060651741309484844524978949177151344036909589558277180249510729561163292837228788261787930140301519388408574532146589014612112539642114422004785388250261457407810385880761464400367253527273567088881287825345539882803895202807462312929525986610973777637402199025086788974690054601426622469882571886345892844859045262789673897739220377512573206991957011474220418297336016799637428596344828558862850909268084532409390856121948199464923701835116865342854023147442723500409506411876296907920414643232429265915627761588243997597080853631165039577718838582871395676638119388098202412501419559131208537372030386704862122086262439825538104639910133390776015604704779948153229897869392953618407594925104249404468866915386776938486616879597068624103235065474786729883144627381912507437049045035271959526159689519348563296613798102359924614657871241203648601508382359685944094094680724406036302337319334609963539014475487264689396470086687131562948901713151510285247524722489445586764118718052597183697281600879658204366098859629093614366739048609190595582804369811773853547700127351121671561010063556782667373364582760235362599958439842553123543667563321066871643077123336538259320212000623351804357477968565786978328290618377728468510150592838374894921280794615372180939150935436166501194277358840664300576168249753989387575868175676342082061047643811843850198082026318364923324895813627351275907553019736275001725666355831658525564746845998735946317876889904708280598206733862314361404700938662041301824817025029813033555035150685777020148801636301519378633439356703948040811306301861637545441328667556129187244966091434555951226452932284584746541110664324589402856488218475492133463384771455574976499375814144057361942639418424337065984615105813300771783957272579638048144760059215076791435450399208723378351122016224664713693023588858353274795804097064158430382962489927114285248189237657897436634928329197050761170382965331684698380486615008267747550707904693071996489159706243734614525804147016326519287092565540614460822186482772951442787442976545446424112888185198245432974572453359277388722373384126770558841640385139750702252687178868651020138460211510450214986568906051227593122585122411285696750510216656402436481258222665419072362418070672743951170711180330192129208635959701233016682983898798814863449821500225284974976757494136679783640453668605036760805959224578885569314725020898836038092500624761961915149892705438183129400549917727505857087219837005526851282062636618985007224114876462411313722934103676782169474474209382004232358334848429671809006847561924474838900541813117640852599055582681044293439131568273776506323789888456010421040490926898392606456077634870263251266719499771887008194012769875594912787642639880560571374278438295040044877973225192788181793124283917150042838688024434102189492286011711353759450765766571944381377955755957266078845048082390955572700688762913058741282780954553664314411919910390753444739316996156295160306875405633582667098851167580882756498723906671927200643754969210083279289996056164928309096892195770542116210207253770579346209966409714311853727713586110558304646466817701919213988826291603739572273552223696906347650897941044224637166967327878822878910179876687400993734806680930907140501034163200340890744367956224658068828213972428471831311942576969308124148155113710908880116915072677840952035661502518491880366032772995823875198588052449410268954455675627336088184824357570570187118219635625070137210431900885698518576764906718536686942562852417347860664718284881764664794319993946823655176941989029269556596023689911400499910505501169381702205430718819564487774967029450876228003973187091731673050752726566454175388968479325583639257329624149597942104054170461476414036793821454684291419304941975496036967675689010161837550693670917952648689527475482425335683223523360417171386200309385639678975299159243429095596456686386450366297833054718081135071056911480255058688671188946421096941227626076122908680303255378313108923480076774378329946293329835282112886691269059066142350390844663234926562228159052863088070461138444914346599952118983745371282130978860757377016388975336504494933209970850757463212930029783301374518897294461059899903197885120856418299488739337394716597373300699857703532533983574740978911329232314533368347235523665837434280490591492396343808627769390964157358096229107645111277441382169037934652970139863555418826916018334055591200409338206429082150894472634777401440349675450910430354949877311700992645519402002387454494538350659023137618701603039237228093227837399703357039361329453602813950167381903288478082473540881380035820815729682758516648138819159961200229520404704209841736034144867669539764572759070688632336939614472436056102428305734347047683872199070790662130811015993182516843208728768836226313257720012821911383491808361984848382861398298550107434749585224382839744746897463658502551538537182926948797176829238089580316384351991974295507766242887666732232220361172009566882396149062799566624871877486407142183654133957816886663373745619171372048442728033491118245495091886858665561177943047538972523221025267017547205499718436173480610510548234996726332757756943323425270066682072561868081147200651121825966039764649255581896940795324042393557578450578187771142302249468447748000912064185286726226540165659845434304326292173050790660393193208717024393068514996607791562456692152253955836826340338083049053699979685578199419401158508703203255748440453100558750233743969500074640253806820646558470033877771061248941413002369887143130499148584864923013293732686238401470965987284145051458933602493719316627193124940007097654196140573720845637007632739724289456269632570163670608569067824096777558325906119496554038868328364411163527980258682549332348953022703395153247342516797863878546206539037872645421562752376635269247576683989706988408971806200387044666418739494913506477869795545219013543640372833286117810520706221027088061687686305454086505687059932370248731624233807873672109400932128603609449693025213996390987077692393502548139784724655625538106348277352441758340067747420476305694686107054693146769372537488843995062713764964895368325335886780582142353804267268383877058284257026690288309875107404696104730084919071028749454727353251120565892432331431399390450743393443172852045132702640209504137651908229447075774019274348285358945970528890186708534791100374576785900833002812833371815626754186601826941436836603903620936940252675106408889245136940420247435313035306020009706572127995339884416996266601429541856957505541654231253063503750300923335851562616803064585215587599075336001626226282575816509763177880031733108179664481754001708038501531920305507070025812401130013362476127693177295363252726454769109950544949247119607490526240782699941350641527235591029276534693569655628402887315641989224343310045010295213673817648254268679489353562790933004010962733763979021707256757555234950117965274675225262477572527971506954660920830436250996025150731112934825460867999427776611700558333066540975313665995612712177606272742822501453767328628961887011675627783529980165673505000462309948882955571378968123426518713703326919055993970397302462660389567401021346034854631245423435475726935057256821944141396444933972218939763920156278653749825062417416510392164660204113328131514229561853261316891297510242743366082442029613370718731587423681433805923814902369369458564488072329894247812295467977528610260792925450427082088090429667874617557581027529947524306998479509473400065902656792124621018559921492339712123652341073108419731580397315887219371794829698776559231249249780577326410451173381922086759282152417310895076083903750881213836262607924103121182936421342606546195850355593710429640971489258732447885795316574020745589586723580274180063089413799192806942892099509575280221032521686891540491587313170698146078638551604746098857081901704066793499818424612159756209988302549112219450111018800551616633220880713663260654439814669151337311784447511309824609618697237461206115481988865435683513156998353211525893546040881676198303588512491967683267978125080154145041776758419259293713859145275449443198876273607951885747513742765196203500081760744755601253418771604554913682860353640874699134286927304859003015808660774924520920642583983830906235903098122284206065845658980399267245983561836035869907362774492478808467380779257298843366159583264564177163266246178834986538212312234718704039957194923657509066995928521827612014765796874976288993726400629214933761927556416714587590048460739937634954520376429511947386602035544062536131920219776602948765451902927824875982349045819442241998360947947440911834957400283280105313650202203392263635179606095118358384552381693657973545934333024541558331187152024299633042851981802774706978497157607665212406192018848927100395207477341700305341567364732200258307567909932664052165175559021422749864868984156874170898022852211087582614744205154468297373648640614639896996585099505391760624810309266057954809786363267151465976508183105170139216302115679401752984080194757446747566067520350031739631991993860289022586372158959163753140238997832410302625462176664485462142260244489899926376942700404696342243510209167221008546886165035820906895720421343702225547738995729378524640042993957631520546047729014672715678557433970582483114474535181908838856087941986944267650569696477425344830163523326408253551888808301035600431108671039389669086697567193801507592175087463398700809674960969742011490194752093110897471161950559535275742792356114700722359079082961814480900767866700701072756212459806123862762370248067380077392203223339790715174855612533679813080258901023100150902277686212260861796385928591015428911911554879616593684522957243516501124596770772443284938353495304116052310078528118228792417455974523662782899944506863788922693421733378944581429549124152502480623825674509367032921866981489500705333029107471123059863737585663191240802406013650641218382758346715916433130662873598486455494632449723354378281587583863028404850689827294207390469349307429659533016076453283482650108490687073561536084942543757858739824496959671310410321708774661563154125537230025181604811651895396904053376304141081338065553144990189493896667838113016942115422940539061496997516581859286278133378154664205858214375411207270143249582278930739428818586858487805402686581232424052487893893603992648352676420475680582458675829946904914651453384875795070971368407386537720391373822052467945374130555957360537515337343716843268515525670010607833396531476311449931691517311937417399257634480198991407545619091626645379478849786090999511265882292401035989776653760855867294797094382570016037700067624171970753866253892430382268823488371362673914871138895498304377707052511877966779718803877762783213929253244467824037434183993769267158492858013735735011882323335992702750838944267039341633010578573042207000234220093108527443388939916580094143513067275870347592224690661787678870579886326314429645316608053133441152028290096921286581540687581757779726881325036438467482335437798428850843615974319406601380173908228201160991541861302152678099978399783875463656300412611321698939064107705892224120272055889857431311606447156513047026669344046179013853700364763286353134838648491336682732711431256963371666293858066705943681340145384522095545113135373610665423421914733134145687389587649256330186958798023223434157403864458062632603811010514645437592776215729846072469512285557940070545639988294148997503705630760548357221471910913693120950182287398371331118541198284895274164775810801343965131964676893982447088594088664418326938142012307098545126277420837663897315218134580903809914790127152744512457067688622146441072049776542597105752033712353803722550762013232541681660793649090780782059809988548626056084875395203535263758167781103898193261467626408560032779816100154327292967762861962001799908754798170918462153580408391526761393032482117168278237314118082406454261329092056650251990438775373655384636540729982228188272814515920516733273268636700583179000709900115220912618803364940929407512942528489071954403184195329719259405397436213194000396101309675968261477686061645128515671217706423744481247652315570715261785366913128009560792908078126386935578361978967728453932715682614013753486364528553911331173147498779574598761482099428130186080939037019786598280964143113512469343758755721158259875183779138749143097592778051142767888045827378755617036037073419186333443489811757254677835314833231282034075185452658608579431968209046049768413993942944247055238279117306603638826836944123013148246307059723833405827244410499626757400257022838418769805269826577179123071570569870295682681239577764524967542515238264314708081087569491791489132979331929563309050262185498256804418247411900044387390806383163008034197168054600610834440551646435398771041113576158582724249827368495170109123807171433348014816322253020494123790641787600249790423149990317167681240262298164473366367017656219388863975367792977033556748305125714811083619624864113479365723213369877766754825680708360838596010393830295600538443862899313692235680061221404683703307239966109325416291599410699970830874506882237248603145372148224717909155306637434281146376434457826584906830495425754648287625476248322075274372865696894077805452904858142399942124485405559395162358429586491673533525475669818718590502719558409884315335915728182286017951447174502402617121471188472609946306079656857093192326240773704028152774087220163653121613376918252323916662411007202870086408893636932969652641996740942826639253908900179301876915337082066531921943909728916645810059228320183804730585976028330104955279550375976132104841009660727086052978697937556429958673288356684820204831301490403050368812397791072267329213056022179771039050506532640381940805870602512989899192036936595258850354086055082437393755769008588612671650639195456810725660475479615914288509186208721479364710114163148546119554313794627528574930771243340750000605999101340564579996363709523655457959930304838030546847222943583782693433850853129262735945700357903205598760056142050139177724680972057224254247681357624596575698281217507595331723383278689284318262814839567506742716058487733926626003588655285632256183258941557583624700278106766898065005764293885872471716515073562845256105664826426707333449910839573309536893949195027906175873005310275152096177663451232813322168503295727128298532706111676276683418121812019385730294170449964770063471137669577810316830609301616382760472946263442213740336039062128077889335555571584911264818818845415466819746923356472020415621608156702217308296791912350475338867708873149914266482890068167016375114027290016189459060511874454184036569476966030229310029043210151034687831878812719248071594466970840967654283614553798268992208178106400537734914561809566963658552482925148051204275458519736976769836727803209436958158351293829740554793895520148890546539367270600624702366196715628374004189359339799219768027819388563128795885239910528644752643796296316024230286904050785301575629145156362754161174813044205031371014695028142399512060284986874678526548691157977955763488578667409194529389448027824932010601473953066851174955852083789911766859782101042002575449955299452365096640525870038497605879923040412022261543171230178054701132197745894801086771566325974923620826827344413649506565065886698838678287204953882447328159040065282663797110167248933963187963381523110143702956385805180945401247853729341669314918382778445555027680078937806802368643286752083221062963376465427842744905100544515044181314478590056044008300712004572605697505768764898402127296007387617048434408659972255060090668064226666815733564654990505517369369392097918352614274944672829806197370827065710868389453121431764488564821050236203965695445904076860536062737273520422790760478293134594899754743796790701656167529604673026046273808612977395269119248534921214232853638392868862854804573969983204177854718818150615297386578845144256438773377166166871329516380512955332549396201825841668728388491398223243989182174188720135247929158769095984156777177014354246313887375888527480094877932876324452396795972556287156415788038045256772471884633184530240079605861983953511382194349844782542135842781448089047010142401401647053207797204767773816317011843291263629122061479327414330610624271049736668866916411364034956423497472295801981388094648906823533453219582891013278978709983968270514492264538483976259282157834060532920914798440270847986467265193566706765136454512834284105510469275040541036218860834523349429311741371086141448356214189611483081695638079610318562335785880771496269739885483117340569201707527568622735696046143304671717661530726703641223010448137881629133717082931108886698303642842380852605215091442062578717257959860050339484118275600015379486046492002869594670041600898429838850212907743708281839515525468398266391085892857820227368430504648279632659916530738303261779111940988629542007185341104912792223429685486720383910184591731040677324771631791257761248336783474851534516355975639271990857435281627846261704470261527211441110081183000180955543894934649165699246243678984699092383329816974588510064614952748287256015307583207109710142250108775436837790332095358398438925608658539232539077801973082075555715556296578226115967086456083054999247822449855784627781991570704927188083208281842952529935562276993216959712805379803823697814437280591319408715077473726390999778772730816920781306718096098169255492573452750298169960778511395551916469374518980787305843792475628093553612932485205297453622841406701800468140732892628345597456108820872630257760124411688352271572257270719695210657481170741648764808592743079964838584247843077123594399689804035235910054440831922986404520093287279023726646203312188893039518874837465329844114012654965547551262911759604270507353819542018031936551836846976059857617225837607957812153722753982400969652976239902755912657037702618053285224190686062895022634849439607851207074282657977794818133263985651727826656859754091912650969121526213632303480536881763792620629503049955025984684532478391644218137752339530387296642192332017649902548341281351962969138077822926378040620410039432123419432575754642963852344688569339967860814138416192221911371186482913590476526991672637327139780443618015752611781327121478616118543032771327406622390550490031218795821842879982116116495924399753121570679001678429488003635527909831513261094253025374710301884281798055522990462565517255502317585167193922762326182796568890591940950963799204094259528259938774561312180145541242186006420878141873807678028817053524160432619419972871269350027007148866281741378005946867558081039452527993081178849653494474820345064612812259539520926259794506803641608469795214312050795901329818650391749985282747963525934201713628487369147057861105845233349760298635669544363753635650275602874621953325994963897869404662894183992627708158803321796953883608608532343239012659988338154612832144345207330329715579386625236113260407050125273861933465224335346766829188541852116467839451971760734742182764057835959602217791960682420200483269851133348036165717628673055729098325397864674857002344784745246683297874706958792954608461960233609315121586219413209279919365175283124662884176238580974230216009586735845326404854108548338568088121005658221383885980923212888537088947720280820470823580036494687510158412365425666755853339531968167496950757729876719256139959491107627769018189660356400674574891540041123481565926213089960709396640975387239473253804482349093834187469018697820914783740717413016603488708632315335152475538190021014806291318882020959384812709843035767725730965839270381683300924977793321481990473908583917492262370129058660442130921814811670692160568444283990706112246329878789605332930562013509592509047410188636997094442092668856023811387958382312529906792528576779660473106586130226650907061294343977698492998329930045079684771657239389552715661549394475636149125465860090844751543553041395514103704479338097604691131438214610474278938672345112300124518286300104642280392548067969677497349698742882670378216070684878026557409080686009447051300435530400895536929820903479106658183991011467594097340404099089700541567294109110327248814111370182939810471671455410516059280730008435076234224055725830482598275076949638657127759486907168511634394399342278041435115617017344428615824990721018438293950890188536119710961678457035823490765922908263235589715177685597065211146866132206712925802603187661230275344968455271935114927511859550056293002007576137471355725796851432999969914650781143563957940341801864718321096201600191766436405290437280739181662632384513937591458719090237433924461342902394686160970291618482426541276973953709998342094855212711101121113062614316946908705006190912777256778301886734931724951350059445185612374342612846162887234434021372494971432999527695336870896727039765036171980405584488214220741417616047360466521658818055064857944797799533011534895386604471132901064548493830896112772339344302672001396979371809141931869540428584534314488016870968501031593426276717412303935474389877341235820859012147826790648365049724264680864340520675127171738923667437962798885280019377784854594198969025816041881523749813995883789934968851157862791220489336545440032769327291389166862159836760222732048405893999988242187364893127040023300350307590214973449818860547058880141809555110053843539809556011569167492670886059749171567051464695259675861889884253254905674285480354957209956636213082837316111291008432779394780678905685524302674111736995953633776261530060003263067280479280295289448458268289688116437376459577193746190534922099121939568750885464324197443245719024649273845493579727950574221622807022677236148833753930891329531463983120330705289743976586132083390728628154013578777459726018588308809903298261640598761150287551500911732827468149990429164148334928304044951749915138076559010293248554337415340003518040737783176257246202588546273616836866083163750064038556393521251248324193878165830688869187316949265532783570407319655550749342634624120724335069873356758599369577110722301394330908738478896978549748085034394379322263320701857031343941278111796065525165250417292668378111036941118352564675458457523127250039751837724375503386550994570585825840906077411257394235730067521894768711145832836923390585827306482419352803812258457112475580256677532794249095184594503731913329324164717183673545754739818671006152118755014582215130724971941361982710564450253375976972676147316837237721803174764446269587189606326493660236020780055446951738774775499692268903020085715966775980544925916562749456483848322284547039121169749263056086331160931192577265986649998252142125013079073806802177768871218098888383507133632643976039218479265595357863427256880361014234096388172900336290454184402999693296901938982801892289249630443908917501309206266136038135278792201416689539079574119944132862392489434220517830149557094478492497596024505465987212967878253586053718394849359597274681717653111426129137251301955532715942616086134694719601999293308692819134645179578957573359600027377718264895716713442928473786623609187474432439940073247077944772481855191775073788656087217204018530451727445470992616495403704918321197796309060461752713985393488953867569690211299426218080132422848619548627719047988130836947777507512188058467206521169263606867350882613954009064215927758075415285189923902157326912535278822724001606788520152255112079635438320844349236603333093332690078924657301751382750824179560773670066206026369242937042228749733549846971684660467402986825551210644864605460802826229402595257183419857951193123994468493184148300188440764263707067292176075069627258075527786629247596464173340728192332293592807972890323790739732670558465791976093485329339700631608817185217019736095910871475602053041943811930740602988281257440424939642438884270201268223653092889016909452399301696532372572555396201156591004442427578015526052127683351482939981669564800100767714549909456746662978793995495343832295217267895985858295229329507368251704537559518590900324301761966859724386167915901298357168990415120277181590202179446364568118428825340142805909077601451232154649699440652976818194110816168331632733863917192492025470841440774322521169782956874890327889446943251015586184541282727126572509754918834760814255690387964973122929646165195909865935124401236628965121542311084643253688596882124746023455143851741639712276075336031898203472694048489556012782904492277230744425527208773737407682259387455052681482006658526692042059680744512989202912012309061138624041317923268599896017693317220692075984824393514562536612173505518621079339522622424281896067398642052068471748978705053316318803902705275429668603848746966067243193633182553659141377071768362868748622007503745084791378190555385096158811017381343720736724353355608789709508781691615691161382639857277605007698780712437063119154051851628319855768045975461954751349524408727351132864362072255348003022168985873259953748599177033077063282135944793746720734067052439194013926474147908068915289372334556360492620281677736986832606851194958982867873444510195941541724865196751167074355755565781027793745882933010822974962813145831735170656069257365641187923086107269148886898416610042903536148806220747853109001578889849241293439705952245219361297123203628508032996528491902268759993731178473487280114148932607208713922760357340873778850270583690125269020252899036086229446207307988517518320693493036111736749036148730853029851120678486400808077495279328314158232289240722198661397844623884158877292538168750322108767324086328477121272052250947296127316059605342311881377890331306583164931249872530545966194297220690244612938150332998345600067412714135387283963139725451906168602999308741697146054902330904899274300432012859742569746954443497070106716376436327951941009625881860522580545987883710748727704413315347382827719011116180559157795537625407166335023638250501391802415723479414134368851290930169802930887745327530644689178833027517960564756890366183300482846043664622262831736621912731348214917631506364229167390913435442646361777099338574282831549233662886603706495935907178088305354526414699874582290067031223931700925519099279982839195446589368962939482022712325641802014197526569709758066704658926334690823488706488175541546802974168867469214022659375221801404070224161649182487346492472533725876510736217582226311253293325828305102698524390848088103603099324929643385306683699194895088844813461375291666480274172166521647585203108192986293674833070256732815266720760755042834282773420692084739580514760325916793940788444076079395451345362056071118798299725508062455895479710095952406199296055046317382805714707112657730749481589542377663724970984792980306546269550788915447872148301352740537519811675810641050049009105154580551387769178579698470571494321867144869171415325122496700713900624250277932337462099568027619723384869765196747155561512028532810886260022814205628501373082536598441479593614008020999830863277994029029513108714088661445141709534934744719017397116658551785798043068088534396973933649528183385931503048513994779657651764663948862249686357198193796684476126394193229644154974394125051636827683576036402670007139470549504675590748086934169435632555260807526251210622627511551267752523800602550444901147517601303454125605038759828539689035624230518409244580489195178831001086861776292288363631992793602216698880103156741047300489205828620322914144410778740694069699525044471327769554534385889594564613352227137601975741300699109230959775778490943818138552839454181923191000819926605489517540183576331443297237648419408471907172795511882013514427546583615362344091661587812457148896233894647418257489454467452253554044549836444862806702725153452898120664050810609794687280577705406773117692223170888782555486255310137998792026776849797578782136583898824497686449565286080841097818771097270102925209256583401627781462253105740865761802023640228054656653682993388546778691884991925518668306849951884927075545891697997600056472816185185502519510162877141124291948758358275283780678106587388099068246573285162974533517843884400897134226169331080323995713453118144273891833366314141582160632203540496309205273237435010512353124518112478601809279334202132422837242584280954552391935870216206180887740271371976382981576376006753906615592813797469847193435598827050184868450107723276184950488343955429157675686726929293215807249599352646194535742284952829027206489423280745568006898219332741743570873382879323393133670095208250825729235314072585735613973473183265284895443796141122688217841909223687782895708357416346491997193414793190571614765420787710921520651741455426830746581433979534672255990869314409609253502969013198335852986471368774612489725879454757542709045593902685639992396068397115791964889895653215062165512307508122693031462409056013694578935640190833869918418610820307349752726454537157594628410107509980385302450128207530680203030149626460684700329880598889373958879715464538104996515147218687719557581644485089751130206852466974796094972677335608308322897263384623997148376778009162036144060616682360908091051232522772778198454160420178086182729481422130784974721111699647748669171165006824598674383236366049194119978067619150752521312922975345741153578092214250109865030589867936924677724679124584636022485695551956267736602251512896967303129808728378629416277156458987244341585389846268103330106925595073377968147858230261271436567690636549201846150798859556206105943160694679326520470221681618809702910713834273872592656544489623510053156708442331377004599772906501416655497383383333460164357858102861766569062146219313833260911377062362836110154134588514005553114256242282392417333989806049766280101635652650014541604599042101336046404836685344252403916496138249045709507389838554217254266373237073647353398555446092376353633632126308478679009711939085810277816140815425263304213190382724563853848478222964563775426396915642123837210225172520101078375035913100045617917838429864591421302474893007946044674048925007767832452313997106463422852951769595320689968718897628573603771312885358253663739075063011194808408712184135427012802973680958137284195131151504731485392625662974936263875578804916613342423530465963984890538083480566244584266319917036032268491919409667711755816947708018698768422766357367468013638617755850508677205026241693079302556817260574399368429365349806007430760892481631141008706884936065319261093443164158496202008301284565722198343043357209311606028655571231991438796218925137124025478083044363921728840377678483498029047778716465935267976582686318231482805986027445999465521247081241449533591749014878293233011730911888316499832168534004175660841451376354228545857395658616284897052856114465741268509093055694335963711365173223566386753879760652201964345929464603308013518380671747006988351031346784237875610892766392745670315837299350818803575990055781189025026622213465098854462257341366176194692057903872974763815611569985954657861255284957708674731458389710999167145739501929621758400371687593649441306190795789354321241399142418814154786837333268649775777445447952695605349120501517508888588004906774731260052996970112095068311346562814260354898592909895949976698330266432073142423778286790996207291535371634754222824431684619690784186567395963191652942534328798173090919009733378322420162546635835617597654280633191068692000796017220405771779101021885336467660536226399615882842062165695465871932565114299117596998336308978209254966359246214376277286476188395492622441379812107458026122758289428959954818852671389794749175011459094775224227171803391381652457152759660382499915654861233774606673522056394628296219050041112163693323657971193068111655738446117267917873924009061382594519596352670398798342377883983408292219204176434215162882403664373029560114232835136341080102245571719703043302925948414307816548509083851977595498503995452018696140462751757854522507133139118235284747087469901971539730781540569677778645442787669525219193311006288377645005178420714380420548021917435506343863715526358637095931193569406499888522728809906028761255071628759030878069904276743057305311696911795985361757313911206024111696587267128772755939318601902861105389616780231424587012677915011685832086832183589962932376970684919256537520213966640155596086151541986040144877026387605560954903752668083076185700529501504030453594349919562259818496628555767864280432359216321849564872681811471337040422400697930726238743555422648686086167023899552659633292312921713316798423777490169175356497875566921650177514183274927675544594758573759580477581578365991289389592379688897085435038283754442910800744381305351997415491123292491328332469220883721868098284764215749086382530770302238817127468889415837675023644899240254267618661495092335026901606371083020015964400428102053388508173266016878749811402492352352512411377031286501750282570594878798851986394358830757734143051049340760081752287129144512344585185326795535561796057314767967107875730025378272198001782614404760153929253207479506413994039027051620616579910749907738289273371201077949056026337365434066016297806403972307715544417907375191140235710088684291231794422768769959902482768091757407733147543123711690738343697309232326177369149118762278512171641289982129809067623238730852933314208377006807181169982120938371026478333209659304627944625976697451601015279137988372171395411648455129447803392850981039664879163500002236237794306791937295883223618457828474611670942118051006000737417806190642265904572378271937182126307250445265953244257491739848383220000396240789054522521667808112409329512676711590936206146618703444583695405695005712316487655095603722635040605964581041645475382229897772388734470550485933864339164646228168805421211641545131412973369810441195215854511020793006634111311151736994258106421676492814254344919843734043370202856902487203975222366818932427315035074423738393471973562485602349973481489038764081969347256057890263016786462260749143282303825668984915668716420068262137416557549866630994452796940879798757991297983786116000924814876258991602623126280654194303169831583497113019282131768697776044322058068316164824462886305101040235790877438221065746632808213626741954055028849914091093647159367863265600072533945605427134596742433379887513906563207583365558789269562101165635171985405839528227734595049981248054498098515035300273396437290393934592438585122879594486225108681553794566345758534725037928970353244412643279726663075978237900501808601355094816126334465974281792526133819774654505347964935851290737308258713790384061249932285238510758877614949802073098235320301052182249152935876871658923674061440012738583103965347216949034622973050879212496593322669580499281442187522583399051203302689660837255017643915539414513861724639111287057264735178772468218361425494882022271126744651730872299635745943972345487320572344124631633544875223641674433770793532932273202135540547557926891573322361204420199765749891717403320541672052835332177507003666558402681244656132501137515907179556665923031526373973271396593814476841754753863059557385007487336463174396735786687593374330690337817460376569285642703610908262137816056577201274671121360292582381355764858826795731333706279365899067266578532924289395358503809106129447966751175504559962195094937842952047964708945181527174228225082295266423468211316380183612998469028430481873764926138065181528336265322698717546785353062049402748812412637438912656847971357464867085402794286378099658723543544178077116629054043668731929543314376523113426039110643153560886352255359561746319372439035129510901839724862057412506581918899957662668143220793791383378883737745727355282164329367665690813001878589284564258951720846269227762967120078440281618486059487816094019267683589130558768689315269152838213091791839717842215426316909730273567033550863995380075484176894282259235838308674179381374033794909264068070291154110407213237337493885125164690421010162977796948290135669021737258129941677111281481063778815294179483009681800395934322489660113680330494208927631206159861390735737449769389380872898875872037137359938983107440407961187410110126806170769669356213866473800622543033994307565828490743682200503762579751169537163830407045565786581292827325190860020636126923089433228702442940636304399974340298175453159855046760024727365035493562399164775542837179847437757538560709175589434361946106063689333118929100075253416531608903746922495399770058948437732380595626765331238365843340257050387492825163331196169116972196992105976942850780634324980310428051275521625564339760203255299344115030372419148820992138323234944188045369745405498364373016244314410614742377059776426135443108584054340498926458196552750202266197030008109513349995483405853144394477695638909155574284197443331452274224559874875799102207974539916444648817774815685991961179405787021114916256620752028983056178972229504686291822039619063430668083126533147004336144117787828513952588808909447423042067337084411729322100283833504846933042602630955122551365453870624319751220584402241826394753600158754777613765296181677567543438527598641284041150103390341931554543929480187928836823524850239097793559346107563510177801770006746853892813872153715132197958389894635428744338346433701657387448047380277231108831425429605877657942670674487526669564940127057532621364933224015024956389267969605840504308259900281761439385110634136331587349915680200516993015018825415921482482052895509087972349008307188694103900452216933058257919454345199675636826824154360346711442034952706334000853474449296762742030868360068498728855365414982456595042975429643472561956443288502073583302784434618289321154463699538045913720691139040038205670119148365490762392015735020335025597566249386165601411421923444792949091846298521015569882822227338772773350336839722839841067464198053457809680092982859376369424654516349480741611936397895430078521865716491116748995697357859555757757638368640304402157874287285157768906361836535614965061907565905988531765749257840990069749010035820611590747875610193152998064033197617733414977360794956498219005325240550283901359191067366912337052215126326609355523106330109393916065806266671150664058158792086649336015150017158154829299968643027996784398830340088410274294460334998211268572835435758086669118280336967009961684022922035658091198084643538200396014348071736826907413058056309924577605630136664308586171963732374766686521893854744412559395995399091258343835278190513262517167190872778150612644221218124794500074279703990896876402587162495190726436694789857341125985348197604049161472394209353186448294580793602017629394313620927514520898095755080799200934767566723370917040505332348906054995585936663400344754075963181575717269113372406903642749476732269510451810352698648600388151554794663885330391694010546588825625352805024606382868554085359504802620337158566480581965560071487938671265998542380935543392342210655653955790872311729244503797863883255245948097448410865170538946833553421073642018559409419495550798058311770304316399155321541388489683174694254848766967103748047227177216341792306454738125511073139108746507367647109618404121367668584884105901012548133922219891584504693271512374214944313042571011175045041794849807553655890591068212059606757018107975242054213934185324284481250747758233373389119453577573765126363755075178804986268922367370941467454539065242169480167573979155437038097698852967201645901125851104344566026513821097039514921333729421498808423366401250103758209869789470142840189364022731005322887257555595237735623600043339332218910222874597901611386563311408363863845073697294556772049234859107311383300699318855348161048463934598237700897883031135923168972806624058888044914197332154256999935957755861456326137563268094486024236584950301571003500866885263685754006991164869984062364045560975926713505679234067298213367061469136155345743011588610020025937930075580244530925157341432529998961216117045305817962669911778893132017527342777595954565146844168726887210985125829260146235213391501304081992041936950095906633056202502917354624354004496975614013407470203597843054007288340282679811584711363520552567782592390847600517042896684844503442752936431197929877661462553462946752497721886741676218319784399623193863952787660496967454036911694124322733647615352853883252168543274215924188859335532976346144997076824188162539879258391867631525085045193095104533513991366137246511572202956305654416070596065270023875119068433334183343862983387089549168253170078830474172155128203118339473044131395382341446324153198003540823179155009803211818691476534337808675978173044388578170245134010216990501966643711793432825181517203109251013767408043135026549149623158376526064757641617297914833918824465384321954530854882299541311363205753465805087312024289024118338716589238204643255142132302986427391531327019052622615406768180766998934545285294261922782586667873052369917538648888274421362772411077037996203162965601145979413098681630038848854444976621246455654181305794234935553596839825807550162509123420183218458338815048968453555222518564667626681095757682058980595576632975066868755536325491929113644792012346424755307630744717986250645278151590589149425582866710861024623062044890461845507396880378330310801128823095097343662596152299134809510215105066851818804136389258264618282487997462935566941119566834149014054697812639374089908166513657475142743379087624897701690518128847567263051000749912634470997953291773617640283034613930382864728221769311202551551685776094290951225628513864045625121349891352383676663656223496122805222866679361193317726358233500935349998461948631842035704540782585738109700769499475564095671290538502273885073615129858603141310728929077330597060217733488354320414940802631715967373396772987781751918495892089565603543702939010648108135136812676058939381908048856722985517059626472617728213946881102592137398720348226341586144330490971683527211186797173006198017446387544618655782974130469814364148702544284864513087364946573031726984837844985055431738628145298432505170688829956464807992312620684181320523306381872154809273716304026287261828359398287347095318213216501512548240605179545213330330725402729433436994168102922625875881671663346880840510810486135999463915220480082095893996443295582307374466876119083611541592077910002125239390231924266376740495999835808766924616986045873245379511383703766118929895939208807571376133832771948678282363480383165662826666092218441101398847165958269841630511029351862031337341282217652775575531208727785599372044743525256421458456894357926591355135586112214143852212857204161273066592212940492071133335589459848037545983108759517798752999137336220134784361208103050652519540729602001401851195303666917890283201139277717853927943654099529747659442630268632649050839932357683249118623234272008930041320182399904919184189718358927595698352192170791540226523365693153947444453559758982013054465508958072063906434252752696763232613125386010876865016206505446480374317706145296785984491005668154660849092666220875612852657683216417449443298856394704759453199993147315173084644766913737360132894963551348258014520837145719740211224711629685862045516839935263325559216569469015561699327448930321598399205047335094662836705743269762524042439128305083969805382380173912196582871813030946272678484472006647839246806544325250370571509831447396264193815775701135421842289236172484579471305679656713851652257285787972314672378413654910957479637303460291735896059626698983047124043468692592544887086677184660496480260247285527224962160534068516422751903444191441687274141354955205928695058898729152464424209083683766724374329720312581797001846016084561389882491608635344584246491208814624482418429491809997641761457082088213139577838863796906098492037688670465324703923376393554068394310101700614720906198059674618771777516712171662510402474374248289181386925327446226193387722389455646709693907126919340656486310621361538558855405554005440234795291966902491146918369758831699426770240116626633651059846643609657142144985144230062660610460943437953468683508652467896497741061414068707953744321351172024065353927514197454540935635427463630392249904011785089090348861277428473629751474987876514707046362400906752013192862319270671951389977417077271539331137614951802035724809594734786554887536033931554077454631084030530760084853521566694213460032413567775996156563845200465688480697817845755932726428820734816133648523230210331340533701304046444553689847463087187637455182730914356275441771101171678033442568589472567111357302382192118481583858469502155578086605150849796082742893214697530108337275317007839131656869361363996125777707749850757322219349111983598360728433892455921230118481871381944436567607535873385218206258469171343843398277750029029068266261159961708182342666060179333299159036698903709368905621003332543078819351060613416767767026458976314129664892584513614458632922113524856835845667907141985662899372373504818316667034764767269490716116985237570075518049665344730960356633460142017992631996359823788461220484094823683985108062791296318528216447372481827678343129200690183591469806187131942337817307059371821799409838489707426060995846630490935151056418788048275149304341587318127407031574525466387590681620871290200488185662321449419878678319461599631783224541261390427770887059461659170985077765713778795299917166076668570646462735140042550865665165278933522257052490774577025387913939972642239997726563100879882729723293416952786444650583698839835867621406610430597660038354325356221895211665951838871109282449970463371265807196603039154340727269008231872668968519125016796429932522950935492239692628645508594755867042691844400755047576556406597720773693880686144128272851513058451926401477971396706218385687203203474593779967685840290926017505236238443641398657339597673012899184889973255719060880775988178601284626529142481855058625808677859880964001425164712980567662535758227541680284806328049891560885308671016580165714865379458553824341762579495760262504035384376150381593900198789129097383703157842261240782202732514173099597346106011186151450065897953484261582068951022027621274047590397767902689250004541480357230520954296693661306352315933935069567219830421998809561089852948184704422644094234471394042219222106740023492122529495581712925920012565295098016237865878897816143206583792250039872615148437084290415965573246856101932521332863235210476781462378533871786846402329669110332325080681305965199344178768960856264143572517235955940369569776836583643013617154911469977076540009262970505560737973867031430980988889314199866985613832846331223638042512400115959421823245446113083339136356022275271598643016833805809780668629483505892809406253894594642047756128489662863509180820466205388308719206102474573859175778236269571984878115059055771557801547993233871334937866018457169649191610996193745747323996589524903939000658267903870537609472479593132999887655142879726182646536951117954816250829549843466646818818832758487046726097613556578866765672451733323774978787518768069026994806791869908181377935685276537378489481302812179496426871021006148717906179259718780520172206786661363565328893556656748791366224093625839146499310195512070948306940937702068931114406118669391529922432080018803419228575182130034380012593859259768986374243416646443119094524375580454714264216238996086356904258783241102504091777709901851529788439543073928519849434599481347159963174989315761991954761785974499506610833171207468248156777262594489033890415488700541968414344129602262349867027245478110931355148791763451627748778556133513126828397853202897324897773120809549707213612825328905350967851644784728713952659671580231809276415892843427247928590914664157495209226339995252033501183620406784968304057845338359835423443037121524256339998829416951590113353188389627970741093174416664243054175057576219398268733013866967773709223685277359669540084004300705169545881356485895711811234510668732964674664513627724957249671494536469586960079012827879774246472162752683202655948473706495627440709728331100569921548608874866663780168011332081054126894539994753641504996224463006017861256059287199627258217241137599498682963116314084508043611970058372234608409110867875062254564584723959866439600564458552418006494331026878898196913048371082463657979259902942848767958748237389515480050747707648347606508347038641781750274780759156927118692036958355293606708857425103285641708249079392863421722512138522105134032695594843471342075275877430258883663663450805817413137272577240454080309108100054233076552339379490799522855504772210180732987211851262126638738463281968512865712755485720679639972564442585681425078434504789778674620243600134204777424751439926732601562605168040164780753018026716493875627811672182564578852259897451323247555463297695560246127156163619958676287613914121261435469853350355890310892533796543444618119635823438504956299162269525920941308745862345746532630902282887032874721958820590902180123453653270447741433049514059542877498739415988827784707998133518774677995413449765871752874986222461014184526984285494017943480237884645709761151454037304368571456090925026681806051311906516274244037990278093793930938934371221325501800302855484796878358364752796829555078676565008062026410000207792800971770262013146618937834215282471157900809137859983098820830734662667934129580855334554884664273772148130805520790560765645964951185802394916239977699372805929119717571928366104720690928249796774850746098344514952370949413166037999850323409973469022827681853546681339192262777867223126440158394846991121343702736112461835294926433350557401935809632399432248170400031253251238550493125210366486422791787004469498715685879433109492868271911244307142707050095663072087634729597832690609696147182498427774672552655129032252177137813176085999294069780963433488174360783770279329063260385005578104254989293873360119570747648732739249834132918535918557987616670579948148596660385133305000799137812112559752508483814044478588203341038749450249510525152364423686435523827459156471961319881212832884726067006731690876430143194272535305769914151855075029085916995521804246190778282278528185628131535583693088182726963952474867629787281296059193910440905167150351400923136493382926645634007867311500189567497663324696011281021497687364905873401359784526703732927899554119149430843219864467266143563830024090264526728467799165383745419974444353189347855846714358398566415153663467080864040272584539594046065907201456342573928173542349099830882032566028721276559921416328004988240596704444226656695271800574073558362123909488794118774150604996653971242422677967879872252039584790248233387283089528847018366830650883416080832286976044373289474808626387840051775682738327638690002607872850639145982070334505333373944554595149429436176879314489203130115016928482416842631410099242126417585766334629670661761733878727276156705131255663688935852779004908419371459900725805872204602819043200510654885793654569652912820751487528027359000998456151139393438292289905107926227434353071211174960115667067175443744983681961908531093929219005820997921977794716262662023709179584634529781380218907186386756432820444185125336986593430521807950274612187586215355226260978308901993556918049937838714089508521785732524320986644355764543505219661540551298539157292003186473621289442774238597972291951776778355056230327597232927644371325067158617767283609929697416770559449794748879878860080807559899883331349826380106011575634367870295387689705473706775023366434617741196159701822787637702696880670975917617251135782372447784424000672399044774445472580461124955297975133577397165793529867781325553119263107933942039930796389325536341645417902387680179572912684817182764204210688010362972996012185839263428177217697623898764130603339570210215274976163555691433710870093604728102788487818341834036070406539871134067969368392327678020636449390095031974447114834664698444857992051625448593325613701658900698333685333422105941458118943540083118315087367969935687082036364526955012247836180051559780158439633416746291025411614415572024054072458457368305974863340829990664755425751341356970006785029414622235117145955783057165703035533699182168538392203398286211227057459442608305464881602026342505418398574846366977935814153668636356473168966719513820184204459684204021747802565534233921596350851486334306153207556613955128931601749390185722587267470937772098238199266539124377681530795302152161936331874173954613876843258750339982634654029691610117391537050463571258113826981488624785952990932456418699599329838652082981845211941123190062965230794476222292186543392607056286638503022755723257923400340302599583139010131951612120282947134582083142956788377252677504646595074595412794002405244698276857879840791437521813028678797339321168658165045759221077878072274259410563024710908893929663429928954365528527591891658425687877720213980464522659257304646046083888407334372476957350261638487006256217679368111007594281066706787277605866423510542085394128178985134675522412139055333311421264802010067118612444867556044742282078698278437910019625538982797149772567450548469896999763625046846284811603501933449122200093565843611815817434027658445420587246398192351384826190423139692566000857889896661311390811402401823270243426372670997837786561017579471887142744377754245301844517809834682849315498310533696224019246624515162747999086125465677354260420042795000449698374292121313870495788521581379916287075556011312392588990486295775261892980048251932379046641570748497091099048624766305201848362323792036557121989735469275079444145268367419775874152341234215256814115431019304307608504738044853986353640528308456949792375146057668899958768398670800513329641302764289649263654999086639755707317540015145403809697404067441292944198740550375805790796673760327719262477929454356254079110575429959861104813382385827388435558646586790494508948315580048346474127135155029121313696080489256021616599701324227489574221526913634486128508462501413979486965284465340760667757752880208728597074382471416946944879804718450400918979625651769964447242024350672183686281234997282720652751680018863118830733197963765299405903922156727556850826719152794929184473790165647546398165499115857305210979060383706986436044073042030557831885285331040658645134948108416817551515482194437977157176454260525720803573561146305514761148668776856484262354498501087746586930576658617457409506590408041342586518652145175060489430048867744916135931403243953359803812341080984640817900686468947523685974705781068042110904954221809704292282388324125891488587835688885640913330148500285880103967764764706273730944757813588501711333214835951153661773552884389498866907095920596233647320657638870931120701900134797271496350364169706582048330096218437429530327197186629264720108664830340476311766710721425435458388250786146336165052446323584111443895496916782034266075188172798243374741511036394143512186726974897369407565884875890389525064548427776445477031070055017980170576188945778461948918495328276124635048240645707427322891208761878659210573847814256267063551598841443858066401434804746926361647184805543800487676502957739578345489217823759633056166638544579986824303932232269016040652701199425284562956228363089441899660916990642008482439869048529049184007350407214082133120322667243424422809105234053389950384403899314940974851302382688068382706903750934387952920373031054785500208583667398083705119707237984911575111865492837144176617363392588476146388074816758391062328495556890080388144802469872825956989453370162247596040449946464619172573089861663959886679106381455256717857909805745448424331795460722079718293165773134469554791669832192828199714808225947797458737521137678964775911999075756607727420612604245341936236852178974477527569335238004488829625529382169395172114864454747615228528691854187238238759512635359765550080316367840619809066815141539266394126122668569178430439427870073814874051432828131422484014396001843471962617990853993690771603334246584360454786289396105411169926422652197848472614301997766823197474520976743562909385464264839688386015401546743143830904888559663733157889897496989415179133065212038290175569862005959206482884382568948976327702570352076485245999414291900817403473577144535688137029268995815398657181000051340102771713460106475810835918612427351660132148465312215303315028258350375444951791136871993121867539224481757334171363200747665492262444777091728675072555498237053354279856196429057743436384321002407359829808199411530588376995651554156028770460365391450772772551660286084194057446788785499379322882246787998003534476409634435340034078217419205230883464717421033562395472344711675036622337198763007130953210835272307607152378470101129947688340523989720259089035540013721347688580324805552673505053184444768869856747981746946478012208866062954248932396093246392864677409807862067095369682635603937770935466385339756997102040885294533859785901611137832198039460110753157336878331682062600554302848703922400386343426205660911438684305970444511976542342125354197670738278638093886437776874189682937804639954261947362980310240100556274927880042097249472852398560886634092958700504901266751914669456380941083036440672294204983396172128545760742607431929124382107030579764377556763079267153578106608517116711497164357350356910405095140435154024715115880563727296938579521917416571243812622344716620656610116680284133380372217435945744235200767161987550106530518643090909939898923032282741024193804711930558384154253239747743922101259818759558357466258183388193987752719147886407860929638315460712308234774642792863349370287056984408062529243462482583758075081911834998911499855870616611841930638916962973257445035195852603671728433925416459206795490817332770659136866030076063509518878338501970012543405628807054452880108718182898565047189363909279170444640295516316702472758059590527721385620521814098511972466816620605165406848016570688133017748115801085283024863256148837186584020630108348945466970249884074783674778621246588570886887414534003264784461137419739698657248480811934833137556731280010977924684069992126840135059177458043140667624182627141945779556607295545834964744602053206962716684774990980270599861438912838220047606361112305271776828820943595686469207399933653084444608045226412770051363110298386635076179277266174252922751127379710409670900913510962101861121116466489885959442324245275218700269038212265052867455649532114611195232790956112262810942483579490042563399009054695348774620953175378815008080399042112003522716331671805459237049467657174924099564075683871057894718931358990893314511855990609234832152438450918681983226675958543415532052285405170111405365852333987003489832996916328786763963723870358196170156494777443603225617708597363873413968535534552488149137311302319882171820680410517443829318353511172112692006455696601918020890823669786178057373868900718474976498850194988720323368364793278571242594528310578025483556393553490640442439791045983957107955303796480706526409246094632791185343328816367236330464487281765284200406152011704969783709806903370900514864550439722897815062895824944053325413950322772583530054387660712150022526520529886955007920488263783084791129504417372433787025767359094065482372668811496173834866770267315338937351608620321246546687141699142574461745260776336934374814116270948838835350528390727602737872670395240275174288090473743963428311760722262981993182250788196041957611847704780674074341678951452194771433454103202290990362022365878482973984960346485481127861328011236341702064565380186350809350440128919901741759514266314102242948851614758510703273084681341375400986056840734589724521929988378465788136077027009363551309281796204789587557781949213026651905280280454572000719786711074180934523970277400866089695861232337117518679110777605116416619165864588587127321165107940811160354189808873278621792718556642905342456341129762204364513509414653037145960514909155759015622901012122786508331171473348973690976160233170015404718901517909346358519419842333211353535643940416674056253322047260595638900710859856326788900258784884834885481351736155688061201116479987801452663016957898327918772394181235308138499049366225336190207887679459614317488873576576460737698006707077044439840812961380188290388975416703487270382240213499136136567771117826346974412217972105580282891135591765007538888540285630723728545992157981302343311157280505965059617097654554208779334859935416679281956994590510551986106261875842208897712759057840520099117369392110858436150320539316251640799568310191072279123005548028982789058255590253439846671599665641898294862604035619217709122330338553896484316759562413810687332773551420764594985635517688658131694650195567202886657848936650339930269882213188262054438749654660770242962883980219287954683262450798102803927197916964254179876455144211163668908645226562659237190070500401847991718952218176051070492003808619452986085326290363313005176182215952845641278198953944580223157598211845620482781200129261133584343172277511149145043610423229549053917501937045461039098449950211230560270889300802268504997853884700123479212430838107226149942892248777208574445833442099849106942417027342925930413514151327621873032208307115958711812541129330210929773079378222255243653666126927324616357927480139301425866000727091111278874759414215082021925784704918282445051614997115655894335373480568187812711701650677350866534890117573369256319418467827123518151605653200484572163249991206454225278541618611168869903644426785509147130531450276875623795864303773061044062753672431255314904291677448815785629825968618021995645119933296324253279082131917589684361591100399230078693556024521727952393921757002873687186327615772831162554364026728838687069450535330938111213291787021693936740784562009838223121848305590826292493045668264447792112366303760191057815022539512034790772317515427795487779717307531576429225526500390021359915797643177522248358236988416588107520405839231197412082920764755136847019451644291638847218306383434391730467696614304517217362444877594256246780341262846318141637298985747663735804505961566490363462058010789371613457165745563379050782667113696125212513395195875304213497693068648692319277539449832149733260370705068294311268744843639028186345974139664031279576193320802159479635571008599052481315890707451690441211056741606343544911711915162519922208507692780878419430682026436816996622435599332499483134657661174709383142052431537879689622555254868142084906662044414538222845627944071796712627043627901204416517622143760487449440309035057152939379619765927498846739387486571331039025445158151498456675832827229343901968168160480291348007397537182432124182666960025998599083548425629348123317708464029262440840713132335436273780475959775043544718748769184290585871351879059303674006268366514212512533824207834899400855701930812465424591457058343853038279130730171708948764483592566175357285821209878165628642565236237498798157875891731845561297259195493655691503720627352879882371426878377321522599932793701949679773069062087169343422361967947550171729641710937071715948856724411785062251695927775995174850712344860150705098210103904587768720662348643407979741423943823310422005467773872352907286324485050902696539908827612611279935911656310894841105645577536699909819623838821728561545642725817643809837176011020474436438112248889108956182375020755856618287542873687114846316210492238596765790185466605806439811748400135351461919153641744998016461438268620256745157860580142785398247308472342103700661476819404203590773054298429466901047893371468518337463841865699171389470619648489432386391880637662145872940940883745070088748738226737548261508723245800384246940938848490166835103705443687711799468824462496973929311759169686035125714671208776690888082664299289841907425260518485535719602779460970178716957851525370016776782506988133154527927189723263689170213065090427804180870277607617149316271828283450592396576656245072174677276438869226027536026689867970197489995555740451239010743521770354476613385703146602667288553302052735084469968937576445420566857917488519161083158128664559325268862414454081811042833733634320944219193476779218409227791259755209086810341701719290711753011005735786423492429640382050470172524250090992119851147324949076085128711837614731257766471680988665075390874854588442371966439832933866381639934062003876809832327375096931666274981325127843126178704648245211515633472284533370058052350979311089876215327210715590025847273954033687199967444859200127031385537289263783298650816425880969609960161765790775817329956770687329681552942531972330372199212395398126145306852602131418185282494336886741693039341863912834316408887405914851714756493882482085982584188542918655130302232830419673360336723337371011213171854009458424519404475893577832998939294490921707645074493524971077182876033012996829591741117982189162282052915562447719501521696429886577433969705523728934668055909030556076099951825235972595582884323469570091651202104730682169359680467376513347656553930036791114747631431266681326562360096332153506479200388490791936366180336968968547119520983588380981191360645740262036808908900666384674193995344598445075707937827848706095648299632659255413912371979705096249914446102411824693748945812007169080307586781184275576069513281440895109572126905305852183359851976533315856724344442888873696776680761609140147041138015341307180360304717327908503261640351906787798001082517229602023622114034251868304246837546523288446128496884794274309675371544379825983406029398325075216153895863079331627909203856980719785329202367556502415656420322957371395796744317297398983491171278956964937923385731206978781099322699175386529166430654766448453064721419286150372647343666648498370191196901566910540284564370289065453929099947043990870477567892961875645602989794604858659677306162345670082816346944645284920504334581627501573471958226823366707152641007784398642182976142336990641697366618131003544520989712437037378755573658775135961074125122593744749047157015633807277211773275028254351195443022628098450874920094452192159067303928347493232278395954548997015072095415923206790481093461833250526218700876741819950549042812862660259685137595627497288167981485660026856653181585120300148379487841926686560481476824751866062413917083183080605083493966158535607711608423291140145570035326788215765701970497495753468418076222523299333639027134759515189596558464300876036295455571013059317039190929051438378996101681593451093904729341625631257612957493079181419126224308724020189290811946688155805647932078014636839837129806941645752688671469123998856567453332326499759852156372840511356324443999936532500869787307700670837802692062534628582458619778044664973611710004919860542583788942658194011162645531861090129262702859980398913178255458136047036160549314254654568064772852061358177095367205194370358625721157352517144505754486854033596957198048453176375084926866045723008158384928165215075177066511052775536298189557247343614063629514191356231052353810848089159071366994970669489662441549860698854757548851491369526380975474342884436586643165069386414628352714130806626888659660693330271843271698430276699174750327622693530821654891790539808964340358680268167283257620427087030459633719426386921825753108442569934127365149532165330911205561110768021902998169836270362586103267346136564263971110299651588954083247860933289727028755750696493475238468512411617624013957530992202187346043583809186589526459846439455434521499818295337160660424909757441587038728630566752983909342079557732409156719706791298478519667378658262763697412024220476756551069923408144342243071033589667229007570050017779936663462988595391783449993226620218645618855221451231355109111099789031776517498646304773445729737096827958252788810523165087197250566488627907499593051562428618219036689681691837263410432746968473603164289129807617577907843564350714748791199888837743026428323625155484675595506291990160155777482436343784418602924859451034247102178852819078893383895601838413897874839899044553243233198232013055607723658614139033840373054263004427529374720310943612757658114896744977035549961675974292848942386467367310716977100357454558192531587279264751613170191002940094750734419648273892432502973202172555716898826752945527402687654826337026160600249276056068727075931942972602361265533160533622367647714185632748159169454487976647518737847997767541989870233962329933961014109631781422912975498719125151002344385077732504119367557837862729805420052325849280047637956911788174612056344654645382866302322366982895557161361174178900040244222336960691929591088922952951090813839251330571223634081245466285857178095770836559221151015418185338228417717466639642998360844514455085356763544543422510725127049601233886689253145233602373087487311620423558560883366331463540117979491526745650919001248874249325412070764229261482158472767371597972861678995316518124078646031672654416166310060743914469927618893802440209441408562834255172280439404892620799313442681084364070715982393522092825000986563907262885421076992483306484773351666137202085028099511522080906943073582136949781182616599321398857199458197346727300158254903783199442745660531748460792406979209201492859293746802830066448413547702964397541472481204058274144326696020067665584454732220778785282385406468094707279256623188932289061963091818136486051975470439709635866686399710888405134595314608524001504615526661068895689048988483573719859344084786762944069334031535668866597324067014971407425096758026302492324514862435354634896432811408653159182260641334797677731942310242083231486512582568583322982344345834239265133069353055841663957545009523332680615509700067418282044798500359443320198930332497247026360865632824320689259257006999701195556481015289030340152759483001117373065514166712942320385704166532970556470633538762783115963115593531651608256353323079549189688766052371628744096839934129001362897076385374225118759372126290729666664844686112354054211984590936848030137311768366068792276194036551472122720677182786457746991042676129532294629650694070676135334984657324280016547236489392451040930317197591384788571929242409694427855624532259112657134999642915142012076145696935738461292765490957206740457751942694859786613501508775336902556905616037969931632138187629853121212382597522062960684961757969004388231702029964801035761386971412666605876752802434153159617598608423168295704701128578331271395856789333760275403840147858169211615590739763965565396593994826176491087220205413099197674400325811231899362163140304021289275712823654276954745243632281733358753305561067359091421073279100444086930580079148253497380121121516949494833267613276163938924288726268952772120414559250046395139446845127633638531597957940702180357816932716750454713390220587594963622036943553295519364851539407019361825879715720279125911427989463538843424780169434781762509272128048484234030732925270963081626238359176019054009928634389910615596993895367362406908201775343901001202204883251192027558154815379481377855895509319573849980904799036395999905992270349304706344883018561062675953383422869699286605209111208808583777450880786536065797088047417195713423577160139284836134775511543304085790391961682073384789368365389016734451430123942914061909599945549942847886308179521948763621745220981436306317889158668702459272502338804193787546710451881256332817701225958202024490004977893008116952449428777722148079743167355314623427485060995183194991148062531000808718305795480788598360288885586331454913958231349304147151635488073710389449762671987745691197617113560015543909828289713484857711173473435976701451379434087433822773580017267098276107053644104552743044910058404316689915334841520438329465405481742002860545132700529644977633747050842478145230328412689261252520499460453223627578204286871554125281854311423440134460849433036063088724198673935504857380612563019978500205886651780205109625291031732370459927673278112074775659051659341475590056952984419784494577775926141749780801944489871290790423636369858787357433795413694401626001684227684648077348477529373176486108085530676929722033742650419845136738009706420213818917677278417396809055266850456363389056594538383005748812750296463360143519626243629181393623943860860878367958295339546039169507288973696746940999505511613763355452349096877298109687380173847576342177704648354507942663161429967085035355128440224537064872727542591997320832473286524714987463930948659449998416587769919401324721501094281922965885298196313888036640977547707452116921173884308470193737651871248366612183163721214334095559021797812108051636338297140042781273635032836819820762611127448620238370493370763769329921486326331784883725609645594273942696356951333132286528261274711364102574556851987697926785540772148338156700443738895582535995314465082955830463210628175827697372500683934468790210207131871468411160982289484511116753539915595596611913457317286493234503085484257123905636066645179430271949227743104769647086721015679356306249133268644500032224980938196861241171995733356403494465413210506114891320403875605149342859322776838368684135224877832794394763025351997365162177720837084609262781885484466042395881014439812591687679732241261826986977650634021113805882436452041076159271323849819861862203450751074209784368187426684018440381412935571085026717624555532847951676084049656667258459865281079667872070942347287162038480094134789476549436999130669319347319181779549374925219239770429802883117871717551751542576532204955771944782331207662463163290716348735801580353206293906930135282017678733882648488176807279226343163182727764596890583097655920779635623736638650178446159587941817510154553095187573181393600137107266766863311759433237190079713593262411537782956629583482001689757782058685131382403386342980757630815736574053400508613313721619502291021345217802186712287850128829132117896314880812697347327255691954334655636319068055352801484345185494681648327226676618284583035693640083621384083132846657965525587959157465098804263385407886586891182925691513095392870263664190714969204530900999153331103615035074938847646845135822677238275145314638833369193168643415261051348572469505687817084572829107663340245029962017209433759726508252397310349669904997988641245486926929821525253453758736491441547849394316583924654226665195549259510345158766978267303033829965771987544787325397080136807834922297323874993497580794728821095651956843619011168906004169535836902928791637472107628775046734249413685251295652844405723852692441497052219481610067423982369704422757415061048409069492113340217874651880085609011217778156398109868276195397759005687920058735681595701418238034969598116580859804589074753188124164872058328748242608808764246642891244886795349105588114843173327363826515045848574867981033993530225283205820782355551372132474718953199388115895234261228391990646570520943727858134558408548432117903070064652880082377862010338909681413257772298835284925079799732794741802145870860284419912092249222208344691841431209765894438886670303351403621876606684110719313930918246739982135142661722390247458809890188991404272475359361135992456408265816036700712471501218615829761107554970439969246140212531871373547227482370293775366574016254040970403725079077752011955201535456821025595898160065941722533515188177749679267145929595393946675174846247570470840421115332697440391101242657684394941980796823065496866842153448664738977673477148155529075653532986504289126062946482808224247802469177731119234894442418789300808660191132284082249968726374711758308836525028658909223284126902145463959647060412331609381018853769961658017626434097819802416124024990994963598653701128489850922070747658285120927045739438641443856237082875963212323952785765077394032900991825782881342359812976926776764971659581614693202944032705217127985333375180240850876743853226109206714941123048768758209378415672955460552828733388846276645358882304263692267281225233450677627199276207892386406174645682325986657345893565494891178456110283978106408147332104598234576614083148219571760961080768708227784389594439821793815983884493671877412762132445395616764606713711076577752120276653116249814049555208579918420299215643329023049372278634258647192517335138284124187567986400582902383153232072507858582348747800929483152170638406744942614726244789715175060974418467069843358613955695533708004382245338854551693984362634690339026693102408112539119827989813392639594846378875860138110207428215163564122802851594360282977318669718510451103312714542642165952005215854318411236824897350697482023908483288090099716289932422636240935556137818138733906654331392456772315893671472575117863753145530827774291551609793849407105849778365017650520131196668267326602259587925274643705187999873571759090882803357110074607703845746297310209034053415074294489247805903080133833228582855972561447801131617369739139685292587223154193511292689929125344447837795868663274718687629071384234671860789278810350655800744400656746549613703273772862445354313928170782367026308389293988005507728892437518927660275920346214786083372877506814338052644912648374502033749725599087392783380055240067627175343238856523530767747958323888795999599640506344827505186094461377402718274737608940963700721978906020409838126359487134369689482700921927384578279158765216080223577949146992643503739709658544749387936989589762782116376888061265501286424497012464312901970824702589150354751874654381908712616456277728565360008079708898877455437808103585148038972440929730624957187896539662020468915060515354489384427945527548867573989992430135494670058883511933820953872620147919732744881214119024501371569803251075809218790237233781883842109679465251691252233817042613269826353844117985965717725091198639724824716016971645143119252238668094553042144583309841341726040920132920356293186562324336108337825171476379155779169082085844919724330257466422937786605073507045355543230121077832732262373728203486860872572408316207990759170826061476204718187103786246884872090445232649885948024027078197640625121625528797129310653806944682207879091442064809958464313614913228744121679524256935468421141983995600610856501129572194683265276814811798787255584984001315582087525523951149898476653076990834347765831558562063956940789275135853975836390849610381321928711335214652284860737537719393221936624921990315954715491815405675564219281870013652355140455112688101140314645486105159738071731803637969269792833072096726021651457595715688616080080398369837152122544397810119519253497455870590328097227800045258202778843584077754860571770749677466351458002667050150073002816051957498130091075236200999181154887613819112079210705650131854086263402201235146045589871452864006313643760861315367478873269961268632498972962319958303955519226241244762450927307895672924210397984606638337631716550645718365659753953154220929820253220217429256912808644234984357826995132488580294546623106050445768684125538540027697525321072783399550812545634614574997475773016511628147630577292112704366698728283578840896165813312007244045906320576210679951519724090855671525670368849639741954804706071850549816984955129742532772746880020881104582173666761865408365978116438307643790658396069504515397382425849022089218944484666565975830406422021001462836488300060248392096610676445439525423533990694381168156078170322043572700461145043248411250544578358380566278124964187507216404337081296380832305459627704945114119706796214865427416547517498145675611540020172416548575043054548034479898664447119610013689495525034171454160750733499861511669645631689657422689222461735436521714414689585489414408848387822541386861785303380233914626065757988552570609239718015091586662232074246136544818429679125174772586388341813615107196468418292306195978257462561257923506001711642144383903092683886299725655791088376816800441270560817174502560380326445928026833275866246990573225274408123043683246598611134006873356061069326740178652697046807162749528265488828887906332055378955637926302786887855667706092699055882331640540991503028858029874740808933126288576366429861108780637975469062304917355519954925438422965692344192772380368198502019498798235928913610232347716637566863748907447651022125246381437369859668673906247770818916528785480168839483532303769293296981997272511717951956810593006815821667765135268062283787687386729790410542380137935992386831326166639493417238539877671520263905762522080879385758084761198611966406023047973253728555855463558251090076852110246744304531518313748168772509556053513599289246676513990808569533266424173017191784665265670662985913307921467947324776194784515109719044211328029897353434497081333668769829233876606177581678511848271721284954748574894258870405553681443149332620765035004843672529190297478371446674111630538696669364027087583545152592203645887722743131742863947717717442384839927916330587691620646473862602390912608781408546450077946832731164290202767800580969687611951210380338640309571911800647238659919143039651733882761161201450596671070518696711083567865143804193324971731260782564277639042520654234362827536800633393839927842040009136868694865111177879609618667496320258284649206610465650060506577076530696812031375045977838620966731201103806353423877380377416334495763859093782502604928852750846715322557833052126999958895649943520260559272493894851478568149043652367348990378089827852558038778670002753993114435029161503057301601064555110078312194674139048246778812968848574972899773942300337140023274556204116916173911811714655035130133417525042023116330012363484380321946305023315280107163681346044287160095545356635299072704770557362744345159444933774629203681427966541610816861408750928855670185923467492237387818509196018420408656969147680567806823115702838168317055531401928151854597254052874445201396988675330628136729612473542883884880574103190402428806030492806344577893197178592073754100856129035374151772317059136194454442520052531115012543835290499614065748549059971290971338130606609212635214568814336504124675876864995608707973021740432706050925288672523534242198790511268192163879369107004402173443902516695045154079010361204631124309089691123015720022467613083299100860496439442887452316053766343837754654885408143284311107300775991754981960862547726415106168497712244849135419774336219680068635477376911439078638221448748548384814305766119251056491339010517370994744095104699515398545406304407371453457350559698377715335231476986306015274474398178276001020996769188991572595166335057460368535460847232997673411792227731015427150904773112102460334308816408939700940904013089886511636711989245424573347674041266324011808867427064607226303386334942248803136304930559711202663406925541852667342089423371526771902544784129991713931223751300097498232137780743217410236146893563849976273609855319438557979999418680855304434818921751070437382635991990971612473949054315943492593446926774089831135537255918435637462328961399301011398243058672640920421301040063714780445201511465156244991648002504832202869174320016127145665334875425808614581923712972909803666086615148055669507657553313167967942067068053716433163996429652890887286623874625197197729151660426868820514621926133490715742958793038894633171517300824303112777754414078273539286226334654648654685630620742418798277461355287773007388998960949525540570938482593609966930243027435377743032460420511434315247464412509731037851329379567757289730680365915899876304634223266900060420761192108319955580319046359155260676830523388821937448712181129126125225614866619316151920819339544351928796083547908708488588559830977753719569446216610820949103968636054785356493594376633878341911500020478967283830532131732068162253068998675519716299978211658166043608021958277139263807283064441665239518769060748423107256245827238389077653602682394404934256232448502711329028919327421435166112966213298225131049964424339978359158802523459963941014418604195663411755103449035213815870352694241750094695113057871354676898273199937966919669786802709615313174123473758210167809782973551286288235766119298225995960609159613085513364370101139836598221604299356721289351029747727563795736702541836515374183035591393851712996783669782423782675432598733685051564233997842713541961571816027329155296016265281599738075664868128709774578170210089161970063155446048842713050317653334912235741889274124665396168417663682173509862047019662839867331053086591066575704955670030319256756823997599752079560531043469530753602782553985277773974253536306712174489226574628749653127303836851068018253692145750295004273514293034313369753561056730805153198318660421874471747569212608826341647433672121065633991391888754665665046040789930557335170597168049604346125096246392198054017602529052349076889332788575243435927787753607137009257614852050480428818861945427199620230528840029786628271624766738878481432761878296410757523447050137989792469124872456779499630873019006337641775386148895600835585211802051302648597740426358050683387526234754319980693293799498943116306651765581628094251602958689308003811266832441355666547331145841104862106963786148016227275638310721173453001254613860571917212299197812212065960311053897402355119517781987834495108865724389889225352518530270958626775836272293588955435257171458158258878575676662976584397791802265990488771571974271581639286138875607271699946004474831437573624929440845921967482402524336089624695531898201295298702185414166638987872614325361657617218293109423197181193699086347484093710576409138910901547216679484690011136953597857570171930453138456215264255307910602465772474989752323670617351813382968466542325582890236508271658947178139670546309967002810718813222109704804899602795708997074694974501082604602872934255466206478023793049724791969925458079717387175732306243426812887390562851184797741078732830766186136124626507104955190052760994736808483825154257038767429063079176340857377683037085792751284307554356650953453923501829325921736656705436720113346558627100287427844634276026034234996914097393856969261809334515716898989454260575693931142616295591249521436589659689768257629120471020175466600656888893995520118326638232121011314426943564200527331781926308189680476091292121677715451514909545479354527457390234734319483973851965717268627181283601943586947934916574526238722388427553105165569245813677699212445948928410174965563919020622371780299882242548069752150060423500489058190917322322510794632441868612718485302888300916065728522977933227365198834390118531470136409068334676227853555087710468145899285784815267538916488539616549571219884553866451630860674676371939951697095691467165018257301577547007239813447711384529060701401367671710847926689987574589718107769546950679649315868709247466059371722411206716499547110647369997147437395552311079537965555579278820537062055427147448268164457680836278699583753361665140033297757757454171834785103898828652032795607825471979517574651726551720203646480213572667170216759591181797277765493816230006953051134648499477146344932323643452362445274714725797638471643526989047144712002609648048359049532438672902543167795604578305200078714573973857948879956634192905852595712764111422135981139782055910802815630300601792540079167367332594280547763400504372983813106577578882080092060003897010534883383216515315407702210793894768570607836908098858848122806386254026064237716646640292229184253646551759117081914290273496729826475481015927274333778864192710174162507243738037977973535202217673304537413880203429119016961467771996199373060728033085094868577224781569027716427375842456434887462284542812747668999016188236217551865046708394307397709332644093395167455048837912537791950902236990281912229973937225411320050806819958996231172085458205260634382190665432124362682952609573550253695337841400745614805461157959114114263775219859011205729994878194689768062841739999174570093948075407987815676185892011795136193433100600009597217389278956227073511673977613004325593289548293868673470251808228734281438825781024707861334427551739447181657501378359176368804432232993013568653344347773761524710589190577133773224215754019234951314422427593607534440712559910897102856745621570583242660460474025447331520272194650986569404871448488842009211142688126323501195639813545258995113892808360791510737239227059727207495304633491770586563765008611778409451045097360204015732682904298377501520531588895334417869360513400598503040417059618212900811285594443746795671755644203689045022048053042166294866845407411516863115844911709162135498583679014293227265636939472156162778241020336729476300730947178376586990797127347427840459607893929645257650898002417834145039218467020712807496879012003771158907415058744784103873276496491797888995130822290784036804583945441703507120860455425763048270094755917807445072576672123240248879229497899136915941027529756991599296436738346353859469597911362756372374626068653525901447623140457181726162760648015934751211645911362033388982544635194248917337936542352109584434097805378722962897404888581057809586960236915525999610399233247267855334199798437499014252237986140121523245038383804002513162259533571429086823075703457434676993555346726872802240642367508430008626905655714851006324299483489390510269566489631635661879709137605024279624341803320323047615436202800832916556592141111611636861007625242079909227488760067802480483249782232061926284541563427372420244823316966546738381024942514030947641695420565315780015722940333188352144650894728115838708487295245855794775604269744758910943878426436320743719294479280856727853858316385138437071301927765858963763454642440004342331345254351163878616413983453056630749708774349959977988226596555581577357569908895402667590570045679303981081731225739624201178253261731345914850403228986831123352025030248648246780870425302053805004578636450962102464724298289409279350349896895477938778183996891628107229094909186456466161195060722996207240117656215782177262289936627454600457633964444195988239563845025590224303034323460709393012590792873147273597671472003590249497453256532827024812786761368076401267558103194855004003199376220414034613801190218836813168898619282065145663966169499620914739557210774512119424588365135478287521731464181819255731839026009181483803229232986561198567747486629686327108384733352671407929342528453745452191645760283247225725013688621834058770721407169833400348952237560676681912290010110541084193367946300674051025258991557924352561824044250487235747458052003418524421073179490779908999276198219710270201316184152363574418741320734097862928722759428887858882885155494567956144821615802700847083700697797278898416000098105604583921936739071066239110772791681048751110644550107112324133567747526357521936157859598346107632666082555903495374632595018128089426142440292936225449961666336270862105858570139968395695144962036214349242623455204554853282400786004014807420765924121516828468811581479503963914229082388015929641589117617126093109314217468759337045382269052677382708473023793748619568560148700932432378699539102987784573399269967355719507348716936588441039747083709968357934832587427881667476112396394909462007972000696005721676108604036328131954251379662666174853982537841937385883342885249721899696198060122507480992592941757607633702190235832944792913996050176042992414648076335507417520572636307197511373856023118060853442627062863477403652122187773795416685990096345408900213566472649099832088740439672481069981952344092556105161866357612673617818289544799971642855825030628420246589258178757757613760482829005429859492510288849525815735440386673729941144265906123413797389338054485546008243945635822420692320400988045584711360930769162171762115838295355041026549089317082499358828093871092085341349871808205684144983069143323141454970026628641353919453294030090552035980353161587741664632238242013746489431814380308082364647012333428922589037838817153674056490667699876521115448034077347601708698539999928760265624520916190122656246187263614943025028175857528693727720843996752054334960526085891927163722408638589871932591630027302842284907191530041981773260324591647677256666293598501433020153935256117511638078823074684973710201425038675074540835272599080428119061752984880924542356025230066850413883248871984405414898921512789063441834304397417317789801098171640645761925853958811540189065430490615163268120686379121648849945292985309432096838129646607604804562728698918161012852744794077246623028017915836825117830017505676031395570893922192158186677713509653895587239354077171635778504210400162686861507284530448830821811741552566676841433552307535100219169445368636190114606045370279654362075107593808930141732273405344577436288999849192793617972185925306533864348180525100929558131919854248343334796429169449221122543000147698248338417310934760128964657373566935700697997653649707031749802530914383243027215947941161102802574634040241316961417333261841248986557491069128672100746510338806632498341276124436224269789416716709907837746995704665461083630709094242128885830296058244025859346607642953404731464238477460510033596530757070561085305675737760123214200835108825788220708494763358793640882576265767383772359827493618264007016207425542329495854331763746447483514785542498793000191470055442074187136940264176388302509158417258587829149077058247817473399292705043294674405201556745675561260458772834551954763164021389348371002085176928607062021420146209610796842888978226470223509263187045939892259686047347745169124221508947636803781404688809679863692023691426487995024041752460000143359978513937719763688970648094809757223153685663404079431216622065590303478972712526496012232954431085229267538030854239362031719633300440053445537315428956779304653726222711753179153762797280718232343309109710401791105711261843901303953814813601677947786938762918719252647280654603622208603275014064938950508863022493630845396710021076799730858865953898471286693494215677794436659681599229137786600293950236033838327450166886204283648522610816687898894740100175191373859966885080244101318519953854019265548080451953458320833169632754031347193246079799402231621787891072999197933290950011667429083436202575453706055484047881761953060901401758662482523473212239661095787769153780731717371407907330417720616462322453786812152609990279660608595514130780817091492549081908909757023458624236241871098926093594498429920635826267610061436599707215530681564001936313765921557687946323512601000648133934891075774562349597627944053314434519926014099926014245803700923674723762178374714472420635107850451174439459099274737067958073534098222078501833775254936624545129754014973404547981471611225379209343092455493773263164860701776132520759136806160818001350304695500474519331709770034471922146203012615801867744599993474704924746659565432462708605471751281426657678601179333916978470567240203066095537174095377118016545385610295556647325253471261751333644635034502237890633318380147928195517181089512072302555802131156623295761960784272731201999868766612903344438024674880443822756787370245471790967053409671933105809555246447377593758515920289817935338501195744764050461699475801215681621814470290322753225764971782328096559170605433921525964285870975184583031486700164322296257025579913354730417878299110379808274897501037754059935589653771004281205952412921092372817334287158750984769014718753558763990580052967153488568337970308958356061124847780253070540141310908895714281431737385154997770280975764717445245688735215018108489259623869860024321064163537411816490339669562482852212989303506160464639447034791565933647167565898203899074555226342931916243207648094485407370139558409796892914579528728144511508910211182055909819794414175915865837130722523843268811954086506507955702890860986508950148513378445751063305417050209520014381424583609396093813517339350440126991305461791360609327422982476574962791489488811082989578963770821964085407926823524033719866035516705554454758971853270973967405725971605535420796453230626278620056494174428222336115597918953309295073312166733144689838792829807053645076009831744114325973794831535552797773249010077111757916794147343394275771222925006005024674280707254034860198409707941413760065973613071405473966977072340762083318448392180916300442867210066160864712602123443751606986373530369644607602281689962702199483867067965840020988510781419878750202503843578578901133823220022551560797111027799177441660202696229286624839731217557672368977728754173836811981058096085007840933437199947854187901618623317081588559688769970129897222029214595001949733327078674462996479382526146506297186254212227237510094154875423207161635305203296885250777093710160081585880173763321417621582562281512265901371516095844232019353396531592228062566696672801436618651365677616363953521530045949668302656972693646967445932512073497571527042463567522926433241344636050515162634510620318708347766802336404887398558368004618634368008935107702676273944213629711477025765365824757943435130904249287563413929251528139753267730711252614759333025016079887828244887724514439587346026504712089742850460920202688832463008547776683105258008348136932788424793309981603570022858511882402793819741915401302251845100877133196606170856108382714283540034047303807123062589714452436725271359820968308237096159600539308624063742400187810773654237169269524557898405907580504937695222766031565546449470511178455675044934596903793089208058888802327412407127872063994852432714793100886206389881836298420012781693652672325107235376411375792608690127268953533046099530129667740310427814739613999044625951204508484472781156845504275248431892180352716525129002718285684381226363677421754535648871344747667652497602746448588780321516090783032108345378064851185539362432302719069628957674267857269947524043715869437195322575937110899200653099395718638257650331557408844319950404278743692185164145377011038073331872913721153141317170964900359242747880610459726435057693860464714409564241927626223528320600677908417621679475553440901443826218244869081194666096802303158373465329901733661032160239857791096236539124051160716055206198166746812665830497460400538203223477294564880663802550250487937309168067992889249933668093069722862400435021868947082887751047370014967017916009580512064233416329712960140487382879666358400339990338282188795586833509953122221351274978382592885761329638089089635962356086820943776490456106322656222152240561311203804412410475226482858984903711352043305143787821505700840930273080226045603844967028196269982107937212592306382120183777072481517994018354152302715550577565068092487921869929850243476574995888010590395242858699045658462538386204897997410032183148839754972040749511617751474835952899354540182393595819003718668650109230539306535224185389743542693379393592149713335202618386079623982315977293612520425678577163394592602784784671159559587701470425152775475794337309223656195662524617504702561018398867704167354053611444118266073116674121618020516395713926241168278238898946396566727671361534325194647491168282173670739626671832083127489550097657301436529661679061356747407609005552574857971984958948346456537990167560073262346925103072583947369199804842875065443105082706710008771742112626792853912643535569661262383411781515065686154626162970652285590726121775626643125260009250349162019102153950203946384355467663029075295357740523865794448138456530435078447379108825608464564965820204432039784629257841631912393314121566435878217666657690556495276109074722663409508011424951055734351742629766693825469641293865789905894881055303585894605222921409189080038229961566639432413764254278212953804637395384446865941312307400374949738189759467139898203646529446899349812358776974606224192138000383440541053193771040001696722393627838766395093497932359300437625631545348217728068832476941119203714420587207755916457299889513732727476230939914217588025533123016378103554792033937160441946837499155155629217516011465657048973440609587366413358567673627910910925360542372982453745788512107670178819214047351790776944272094058505726288580929922470017165528732323620349336478797675255577725019788935543064132051520546822557076267341555157099245299802010813441950124020763645323256151236769719478269996032346693059210937025501815298724897724038820133641871843470091175533936790252119709076829352251097043773804707926555819255809230924665074048615160595330322243875967426036723711336920396368169446952348004134860784365503144506514457127261270642517756794343943480847535961122954075874743268959286391894668765765398621287909761342811369010262684072939767296851587169147917464344447213410200735297433665830366454585235009007083245200057702296198520727561510294906127079547313012657005947534296473486386340872168512835831505129163947939432669942071289287080054375434145344372391361825304666134871275086793234616599795358798148985663457877380411204198192720980983569805426873352150181209940867334859832450616405168293872403326028748387308701803725475834577706117811931791120916410149213771565101323027931190267126440233223562080413681305107533598678328810723358171628331342903114055883643245114599009166148882867563981945243455142907917741210930882082779173596472349341243332995180371055330949684172153929279439356743138387057192800164769419820294003116211314490985026142270484518570734482599484747691267666399203935779016430101163587445302935324859754258962982130926502847988892612238199048045090521253798929025164330358768381882293313300421786251672458587571132286145458843971897200304317533522629145506302046569573812684493087193226695583098669879728005208050008119959372806401491330138077193833669177086183219322448569614760501662091717905032324211240170979458487901953898969131087984364042189115846678082753228707756060294322890105533105038501250842582853080060888043209079525780288537594597974515404716535313821483941624154364418840362914801562257032928393847697935882985899566247779300076674244013889873854552926714890567223290538234943197189903639681853089762004123377540351183216270443790882747773527415366422803545544443337518565372086111869386754849987507067780761994076228971611458038499451772533282934915698256183768167114451000106714847422623013880578712823594065562115293602823081429795657998306507966703075976563734262632766601436061862541937945533786751210271781674827246573846752537238225187008237764682577686118515184110389579008644935284544260314093984663102933222271886409831496226704472474828788803992164188652618384640217761245175103888747090942012540233272109674389096623852634944042567425404053494638393616940376428616620564897222724235222296304638036169576102697159448354512758651106941188266294323527408388095220461901898341661898458391424247706039576983410571510379456189055802319298529284856374608685957444185309834978819121916398840192484242825723997177395519861237936911098754042062971077507737863603670308876863124569986390135824603729094785258687797376052452475523574285089516811345327784881453631235340176165427885752803875260986031713150675384557656958608965708384282537057321130152973056349861717162763509583311161248177149947391111706891766043376607968869488151562487405393877295565541973415131312314743080478643195710401302682685737857145699413638280280462675907101188497530882694595953779153171425389369746933468750666635026270554767898173392255650078945014750511114668574617989444353655679592343109730898418585949372177382356511142911694660670589738495953794852305940778695731063628066424473099348076163275495080120880716538711263286290817429217538851166880527428358618088499854607498894024928234096244160894278464131456447534033744214818542273664575148859740321406467196740149577787383060468407137402609893638008458131325721616432009165993675621085013410592448276293088050893547697569579095306510788278772107903513355222654411573544541149537039791906890506416922598091981402450836102366989103898914217720347686219561675557528778915103371994461151331205161272762129694847038054552429325033627120540397292346794293848101281586270278773091554847805129225609376885531026882742243498201929538878245744615090941790758234505647452295963911008155628365431647070253503524101617446960908657611284684377940401828765385040126909040953204022265041392452968202308362107888398197109751241910510908743459133026970561446821750841647562220377949052641062643353220716282632049221022691488928571839252142480836847903470864706936734820983175834707461264786998698146717876782015420973461720284950553972324091806093086045899124945376800710890316040094078030375571546926113923662379796739763546783290597691023676605927926701617694922295303195704653008531251124882680125001559728959971191371651014880819650017262028641927254068248011239255118342588093296016442966498999575748289494031855428990418506651929090006666717460636331729235922618173352254361805318373393502831627591201402199148822476227520618977914777205830778385105297031181393758793787186649487811552215309641438939685881498559718364318743636433310041188223314602501333166222272539773675441165113556122077427621623835753228393277300913956616127379182819871102537699627191803230603243386928080209956081700262719982443158329791422631414909027043225304716953525408154185534835143266774871077159916285433860365054769085958723268906647717805036979017724389263639857239530574971195633803651643513217575447137945251831947015871624436885087114515617965232614714457667283959753552795094667162456317798970926449637803299951437004115468492657598911259097878232537577300327403202605263514589406197683291591540262818688599605136977303587944734758162942255003455045133744596853348021344931869503244353589067582621485654832471642111521327909055348406199213699922190856757440734610677909426093183906370604942243184545550865103680475564086817103344460214170164151771753753836925669982350035352527975754906156038163096274801773448474193857228867844039426322292738883579993212485966154390165750491700306730130944143320407336978366933450915153489821515429308055424507805285776446470143785997473743711298350904662856523658673738622693244680375981458036931750852930995022298254243604392142822757358245034931527513252120842750634460356723728946245002413717420784647510709843147594077683147385317671033328329595369051730390863394617417891604349432125459148725440451246385584394363764747702976994285115973008620641744961830651512765217799318752505734984931608932920095409899237963602618995708312517679113272915648621273708260109999029146639616281738474963528947978431372237959155423582632336764950719141367193176442471696298686853305335579311797755967147921287298049793337536539447131001226155106474400221127256263455047254287054164145372522538043909758170550300668964672752613112235616930466267754190371292363252260545238221008265076703097091343179798494650841561888008026498592321281572428331348630922668410375040690889337293281689138751681375251339126407239817985173731618872342167169050590950804621216292719298229805955718533916752473906255154685326976738428105763853403951868900329398815513406420971230010427048038629336060247597964603678666386584545643966631559737979926962536039686384144385546110716595995060374386709037189040531224223759411032424849578089468497031320536530532152028077746552741512408236739404888908902023600012548228683192631816143648277814103959871537365864710339077942509063424220466106570087180684386264119091337030763307772145125201432306510848723359988316814994463041870907768061063222852013511127689938248728138842749495813742115445857133256133243956886704261653353597602475078646471393955259002471496236031281460960614854934301919574886896015814383110959518287324692471484087701343191874965444096910301428064020443964463050256670715038100541767074174394026499767141522509615104759932227626850649579615680047559789044786103855287645315318857977092614605066270833004257239385421261411819668098767444775958111754834988142663954481948553581853782465715342309750255654342937273242398265533350302031323891422045800291991998775393945515635151870393496068574785830798097813652124839179533492819166973616706030026684130362434208015267368428208847483865914470088545157537176060096780648198355819553928520856846250775222078519984901701274751283524893544260609910282283395657917072078369630967761354218205054352235745669857769028907062057072903777864192261664182189696122152853843116902697803876528018770346915454751611114003091541263753809322325795288983975493814096419929451688513860425530143550555642287217086715590407370113515389528922618567708270964434051048302744636260563666355761045886184462748959804911403839283664271494086355280946276373925635414206377238889695462952348963182089589815306500724641796962078808377568405407728567312159842983070372046730804901858543387398437292383480093901730099310000648786018232073004868957671486664466170196648698825662915502312273775794378476788645516634069423971299367568191969525362285986241741382003251578673464686731447537917958111038029157184150746811435426429861827263328841050987905005394057494528237829656195875422156556419386448194657126752647672653069221078563019152510195598501936352677344375027008096718329056611286816649525830961535174598650193002230712621194633033806771441115199718813645331944484667453766529862708570588386035244184810267564711902923500987772494114803566100040848142597216098403632554036553918892676288781602398692348837596465423540467030255977663467307996169873776278343904578204501170895268383734660127980111190567377213489233085906512958344378681386577304295425724500578965949206197067079028682780252034796929110065649396505610770758115109702272169176482531528092192998441854448766066822332896916860068810177173168340167009126362145634249098340892941367659752632068737042471130913995385793276903413010456651202479218416838014298790667123595245587495355137783106030835834960224635289131894516001715467601050178480637097181151350291455510833485024390649682495006636719658790426168426194074085739943882089855470959327806364486110653508122375114631169275791616182611314267456626022476743303638187345628091392894322330525704088208292809515573542885117547817941880108762663603201303390830398720375023205981059699936686550913104770279559890554220859192552525720384099537747380135767953553174851266056602663785147105848992097480995933493845004666284175925971941115562351099320101702425458294649508381466773643406984542352371552823749715037612558608889966203068317616301688660448370922950626040463058672244466962981266917089602435053894697629075198716774785088036291165550367478207824398286809992024750687049964314250648874665851954614032409069821217646704887936208072107457371011896014372172174182828271315320966892244241040464121699657569445885376906138806583714208905477781236411938102283387818658915261590047767494831601731681322073512473945058795422395274380215455912127071550658678750182354978283582806691699778429738999053880030114119860644205966525633258916421150620372831886064503427540446182768261278764245997388460232505139489079871247004147809518752350155031828838717834386502395890338367806404224190697395707163747368400239972766010035998281000398234601910023167633415715174116486217487279785481370167333336617886546670994395582022146235639755117048590547187331521905366977232724925204277199003669661585441607878833894379545221438976559955737511198797042242300570037854633333641744150206518446212654763403563608789648556224289646791599388656560547003208274282054531072387047613951950443812958465197692447313765439619932387154257159456255202632199419283735273225131711647925660051641574972467800543294806737389658585392214860705424450837460280002525608047070939637559932574461158670875212397993122317496462491590317168030959613485847036533236603538215056328461688230007228310269645419913447762350258044146542541051199718389073637616455517170569089237897006066467207532608253727543831583926283073603074816151658238645971736960855378301147973549456860919122950702144860330503742511347555504403301452667101611677258028228708717426223493483738370765437377207458223418664947793288868051511646716748005796646047301600494512996929289933790978087256482927246179079351951542795537471351386923897270164646215040222507333711347658489248203032582425670317280974543342087922812719976403216688288113944203957415988260092932982507744509329522921548401232465869504390413128414902277597629836988877450392999190919890517261996064618500913135621146607851845454974163235425881855106188854573890512288447847584056383502100199711518520848265852497207594185459276798964721896780402882280397314721718788682916595078443701861364059921780683792412901986842881909463454934725792971895721775975366874704727511448000327975617876045956042028107436366436576141705098873492609399995161321016754427265274259324048711655662244104444338099948813088430886962250028308230951620600857072532777911807959629508243071179270909084897650479208388187137721752552583372595737274257511907536137488476606886763619957719651576341337933993373270795048728099699646116426331230118388187910343524376434706571786655549142875235141716082779335364331697738629489568134534294762725769841417556069767741739721306954892677638193527957375984125709108908744572422780895002926622411780667759483371608257063117273140411888551861417576619210237933249140684168760921405168373055070223794228863808648946478365168145004150705191730192121514229011418718658187528704184071469974822721284650740172274666494328400247584173532876991641012784256507332583488495498963193934617336299142816799197259435216886220047575964431870962882585332681796909969761665640481819370117627972229063836327558034919822683603111557030415007138247240594795114016838862887354191604215984714705796891870675979423162211672348871905185338230942923494815635384569418881585014360703781307342610807651977325204881192781029485581914112594221227678065538161134716261628251695500900772165944795472426913350908511179685384699382973175880838106095891238896183326765122549939697407462016340830875723971023891810569224767591244198876613041458324984697773215302648068053567959567259816567361155229097378402269894641743007839386452610883153224231545236483614153312057415063564813880327431584854451647859502591847192613271626554914190968648200689919761390747157427015857933533182707678926240038510005934550385129057719450392026749807600734310685750388314570856728716510082345446166364825178955737365996521049780102318874234812975569798785398631211593524010974704757494324443292008586744922214854516147055056958081085334406289629615935248355496601991807279705929544489582597871644308557226996094926425865688592139786803605076693109529382255223218540078362969818814663268046531615456974483465947934567127257463327342859245300156135043490948155521976028069602613310631455205703965391932590243068306865051404347221405154735708762809982813308946193228801186318317761270745416855405013781844242536297638296353504665612766741629112762680441805124728332515674794210386451593384153106024210509576729337042739845315857274488097116277037352222664609049524691629609133300417438450007991284135756070517565276821346194982312504661958800250026600613684073199047709168927065750325261688924442029569927460141704002003717342792951831730211088672573377154036018953264932390619130667924229832796388186469560095774769972766733834436222840813678023515054941756524310303093100341612869997264858454128360997063783575278394540325360372883023401942098892076678412265913911898193202060314939039854360194615162886679639659697427343091449912904637365088817338881363846349769983971602425270986784633433840250714081538524119043509628217433304455954406035103384707650748506905636459525130755455543906081573546035704575073046073606539988239536414297076119980607854298658243776060984057076496619040570462486851840323195681668899228093364819837451811009890298258885295999188158695175671651805107410686821462541729346697535980007312365069158644610294177779734124344371815477420702382144469253865860137305582785131901942489853369948163165644401512125828171141263281582437603211388723028476569092756251840372769077271416438601033348444356339724342327469385032406638507989302640338541965601648094140787831061022332881272279617937031523610958052068062614206277217738779424892813299686629849888667403196783194382722392456179805827929864442408012596754959589585550760387948906474682962573823594196931568544362025548168379904717986747580841842643887719892105862774811590603714966376939397792408992192201046536532491168261682524321604257175716681046468852597788664076056644639875633663796142329593821781458945804217397499482119073847026611942043797760018602457034991619634953074799643214995071380356412595494413186900701237550763794141826390824217707641097854671312245330398021084806964739068608039602868896988282202117528533400634783931757206023645438832782083633055929413872626390246080963446689898216403580188676626825006025811423966102846635202208721042020119421189356447029065757014011710511952526244649686224213246730312691162279133712850660176421753259708180297010258214645616717314718546207530794332099011002144774404391247953375397117905411785085633643113922254585650288915764479090543902623279445767545045666743284409815880058666687788246979334978811483395116348806932748370864037513741419001016752325433518236269257129129657133836412495822367698709135328873169670565537228400201109917723321100656635741738224350238199342035380577319088585416215609671510303581324926963658777262990214440648928897065375082787601166357710801212393610934361667347656177198966272497953763657468138974463383889412011336777069251918759225551715214250920936661506371421429437063024120539533650336706128766430641285524781880702554104930483196909272050910920090549578566416629253681712818516211546904209349081518003454578058723548240003865014153240749752401968219664945880601232169421671698451804220703196878780391085300025018208912258930894755975389623674318331489442191759752322922732513911760427476907496095870417286175289423780906602745866393930601071413678711603228305294882760266670959751629605247203296041499239292063037878463877486595778243232356570446910246672302872167235837142057656176577437582388477593289201661407693832648900426026684748826381877543953472975385301095656343573797227407231211196630215237649698121148037127283587571356530838309058306787975328954503046469499346668551337686607986287235407043109429246502464030676824057755978755541991971483315366941158327530888910064503467955228931242559519826143598418550741814677337565478471990681799200154230693841636315970811341897017391775190662055197823964814525378472271740317176384144418911568150626669134652501715513261819783063520751516593030123255304259487326000372625008223161866807080264194810385295575323258349061523139248631254012159746562827095627469588517169881810874246983759114592814554976001064892750406470362250209111710648931326787198459853294010623135968552142309721789308526148901970095808518158669778708443147939980759943048450035469582474845212630329566542454401767283912953884510362330094842230500843653216012132048817744494095221012760352117885797879049235395542640358705955430567038223587909978583184898868462335883940879660511770837162803480251581462300123088010165178347384700645905683684065861324701464150409269675503368084367264663354445154321854741047960663870273016131555592504545376046066368809294329332449547427744998557924938704258250725879313284285097934820753870318597232832271578513455196619308647954296322309407945540284880157798361492987792164280581107859666133867924074959345269420566113988286260811452878194980019351552754654916132920300922994137397791953634676415262744977771583700416903761609915947557373013574581735229078133926795665988340042258545085068818775834199073015238368444038555111004689787526700442875117297750503162997968328327777727761198178766706053989183095158369756136984272834258996229903443714623794079903580837775082650338543310320409222456988931592910664685095765775213481119270603893799112677876664003857008794311230359213789816665030665390646528658894320808627997232500558112937928137743355186025519323825756323460039381731704968336676216863603869841354145791758090577936592064125536526595247165204004855690319790383642590225459108187871647663573695463637450531674671855286914538836731148118821680266752930022019954303771313877803647850739167169932342824614133651939880051950198550642520831196786192858206058441208431375112209891017286489333916468668559792519083166819272875254321442349000867932454384967365706207853809052993264483535384529967833324719405213221956540980633415221612141287511736745736217539555679778073013003778223341726407041552397586008844077919336851730453682292512353823943281541005970431623768870185740101135717942782380940529480942143936499989822101869119050774256354579979564913454711642324499574881919104311358494847167525884932554025120668794138285938243650830295147516631175709336521207806373967485946091950076013649243728892075982826782733831677244551491777206882194120791798714876748944657068097589024272540554988257421502438044907259148877876597166961450064548908158056601415253190770143475028125626230640767064114982541518704108591777255110487944173434762985702794269341946124445131110827119041447463219474765092240433852649660631333506326271889619364911458005833082530864550337886912742285939826556993437311548819007226958857978465919817591785889660355472967949297429410931660165961231483099128774423869379562523506211171878499604767769072617998619543550034443992386502473295670035567939999173510977228215222451779133891327373443297072086055874764184338939602439457869266814835249548149992850784262917824217508003013244740948038241191825736408535052385739111342125041199735798715647903916631671530188784461635255665671733830547806902938311032194691733548200140984735081520432379272959320083531025625067017312805842712030603544392376521584960599405339320600987490457580273445800849170476531661699221079917723528654746652326659416473211288900177409100144636047967272614807948060851287608072669038123193659943692754485576450780220753407538133492624633172343715359956586535982147441522318957321092789164934328629048950282003375479568874580763169456972945180459470707057550132560079185558386017611817496029678382176583903204277133175015286190190876788105681235324571940619849512547199827695410322852905570848804395964644223556981746185315063206080778681547578054732356871237301170416838861749395667444978304429686944152969847128829977350996593458794212085228202837553339870231401000853828177875128967655747601437790179588691443641428932715137590480907350406672730129469798346700204536593972951059021867491854502538801767210972232705462002017526816846853332945836461973063787733648204585321378428140515151305575922419488317652553000589904923521781124482589521581761662004329875941187417215217008223391046921866114417127035157876065771537839003842332723846513019102991692397233190429093655236601136239942367804534043755892708831471759113845542804903261968464434276962610606719583588531417076327166054823375244876594816340877450994505100201745812909542617997140209072083536907111046886039480745445297423535028674801877200178263603611452403790673398700907249005878675235772843579818769777609104415161465571480396028265149591412225053710451856752786129177680241352685353849914691844156516072767136929657421015454945093215288661546425849715874362676526103129820521020999036112647258848091630427934595496801425293493203659727231931961341260662330484375680681708631012901310146965613858169128107561313293188094577835294609923786383980765156578323927340801769453186897990378672194207747738446645723033331904241365377873173820485284998252957980209561411734295239363158499256542692101960342746701313825475917522881067269397918787448436400467431560724599240066160015037748330998698538474960247255943008006767735383805734629732925948204625990063829332384851082088713126769193241481836751313466046624647030463374176525769913957871444843526132299502549284756356278664086174263902895223353387991676556687128858714229603113657216800698188736937051836725880218289665296021330385307889481632683705323396996718923757717250157445967329466955777580145498379209608911061689981817693855576559898773080196547334898312971093092054104492517182222660946444663859188309418043313590189857269055118460332703676614087821701993436300804043955067271624497548150403853163698778782412342999094940843994332992727227402728429964037181031004299073447216810226163254334977622569030594725911990521191316935982991511841866894730456400528531951951186940166282540835841523099596774136749299739153811581179779084780349101530647796225091142787517354938512232239454256816073128398902559332444604559335827462147692107057650999380778765773180036992819126023413422019575928188158009228831314341866416813064708869983485714486240145293469672072640384464643468027294344221857717989980443027039424072703935984124350681063654727183620244324250786565672051707736023668860875957993508751182118066956665751018066222903440055943304738493666108746707465549918540685476693881956137346793121911685542057406638162641118015451230787581211761025349824522471756623449240260483423422785301169743643698416615863006518657167249429943904722972372506385929453333400251038652604123772029901010635413071894144515074201315487458100362801854779549698724019393319494040866335019847577165242559788512725109963207285152637796402124901496447359314329893627937867442530000618059724483261994657279628698177516801797600282140803738223527568580529728208142797875289729767158370536574913273199966597458158741754245421929467457758431949713942364510924974136710227129363894445592658027439858351115653005157325845303418446797495553045623489272120108314425198515298504946863688898455652144850625340370937146229073478930421109833620832210060764353564483826428021763068868306191990034574909307262770662954172442862027030000681897166497595643745767203698732657357473962659749222926268996290560559209292922468268932482279120479211379853551947183696417202751266770083638198994602016797179736651910917515143192566910977292538630978030560240627627940340971548129908834556168014817737246696014647336026779033390957195073262437942531909642141290953637933864418392470255703582987083489705280289925238353543086393026957574174401051605841268533506100006713832179709744867133809987013839838236961811015191541190885875127637822952741235269595411996761503556628841513484467717728064723769117179768808484770221174742489507350423376889850698075274474784175000627859165311230884520349575248657161329364669972516772512502965880331526261932067128893254324878802604570805087145648323608639097995521190948520572109167329178364837972807469734750536714245016611509354034040811893898913598643007466742115551827269600402138258047793615546424305585168620739947669571343908013138519545817166360631540507629681060269915834174443781883274601351953686027208981085981317012244544263343892881289192279839079583369889509859105130759061137577953910824820563893997497346536177389618729671615652091272188895873953410944318411517258496559736536899912184905924787722219643699644091723443158006505616934937595871714037176128015741496266435672699714400738662993160727411659375154705135690820733961421362952472428985349620481294591208733282980575608279169841179259971010955601500592068555153535251894567772292732156726846001276695766088264133937128480904929627283397552234580836433127781617780227943872579349386071057627763793344387605091188406884127778346133254451273369445800423551867847905845209527665779779573280746930497994956013957919863252384185363300211647085163610185730376893776308828148213026344788380607752599908798184093333511998859373520748541627559124326261380574636528618954827946654014970468429959136589020443963238538840730097758179481220874982441206335050065710184532448567997381622449620866789791700342404348455176976424042670230460245697642732057073368411313114389673058722036580981053373911367739244697089322069783926533175493554526987973896216421068439996845244852176062401186886262812777694035084362741511816731282215444282721993112866014948417655338687257194938876598347739506380721797435267944492739223352560838773565605001428551810690070069670123054937287519918319553558364482253877520332320537263910064910912419186102713186840475290818657080080367863763199174870694987911052070040775251232127287828452040505649517598054504065365795400954074722693257962571102957122925488794317117835222162011324267056408432067648342614804727294894325847363684051077118431019346820815340922106269425945915739201940554302064947729464695167276957782386030935468443428932918847451509492200443069732734678334509039228786272094198431627056862867255663907327574859520069087531759325755926899189966695590496709208302794700748923117055903418053027493133071757145840304783035854914141807608434176754709532679394865814387995134760988308644487638008058779185053295533064026981646178567053800918086275891489595873994877531333458662673464185603037921372321682768849995569193938990822568176745206920517941127009086796573739902035578806336223714960733241406686158068715238386614868474099976327898465137219143203127121415781495969410713902787765688660568051757394949859064570842710842457113336130900182479318436098821697741022226359549638845197677300768990824502451026579875545060345547670804404967142620419327491128853504990973072668716138843004105477396273811744272157181031502560396283218340536374414474164389263878518490367132719800973168951236864859214666880841842258785573839641352868424629033969287934865708131073848527441133630573022098932255558426648807758507245277432602611134827255838744187780327310604008748491017645565484665536277459099809042684049635389580325914534464538490191183145536615805266053848816673298853381045043562842725278038447696821621708648575051740543319017088615234336327846416196215782437426284882520707441576691169085601130036729730010123972386287884414620195454783647176321496017786217784436949380948211773276235620677410211570294559091059434483764905923147055934350829651777365474808534178429320312466268011882716138594939847767595340581035065736306877543360341459659964711384411971059183415395280360510492860432041159354921753786706318729453574125432390753468081546402773278431886601759630322237789492363015103979418208607881002206914234204619142332293414588242505772560342856776984647589879363326008828807727005491810688954720278178530140117880626923092535142154075296212111214069427312583085075008965274182438563882861210509668474900176339777136374569432660648555781182832261577655432861390484526554858157082884996263678091392628375539061016515029245342856687920286252316070749625062976147350037641058396851278965681083030067008973126212240301472709754018949493107639833269118338283221530163689074365434280911354547936609763114108681808135823644329599242415475553972733721918730927589024264981214188337825422209425066771086530010690476897318936632748866492072702884071539819715075378438745663260132832879582571490979633011045636242760350487094855881312342870797665437490849146385783529108253305254443465387953813349511151743918230318058332611401277465867066829900408046647855470228773995365941754204601094943253536841758938117305649974696890726255753056516189330794535216215791567889256269570461759751471376831808927442423838824555129007211284672508214240466497399692931495295712327821962420150597672997741247641376285603515054928406522981928651951898143824322826112252729029461049463185774312955203104327311371937119629312679785146002503783181209928255233940915573194132382666305112188775641767596081310077927011356203162572745443265136371437587587625396155958688886856974558633032226357144546075375285474630513543379905546332718151694793784372803487850479924048920504661337826070769682543132783663955666536931920487717240723025537095364620246436035065996240478800859265035122548171383570217539664202740814309550258219066018427598167675319760850782002128173169351550034895845504327149400509725355380047171157339070270641641191358213452675044262036503428818253298389137034151133729484316187876541380935930696863415933897770650515710415300088561509041507031517750916218303152475678876009924710378214298738925241724611732736101107521420694394372656578353794489953229904935643503258524852164071800748670861002524666777352741758644845771548312334225442112646800877845542877946269689835752324569345387309504685319430683077519214070891077001339716304181753692656553959355233485624519703927470358170656091886148648500426739840651841270266769708041063667976485547930220773376800627433410779619009427496748361200471007815041365763131494025908873664231218356009318965417912902934611749151200197391540769637801914267737920416318131195999762229350466191527595321423015438370055383133828056838058557087622135485817815308693101578782108884591195797251002494126262076834360774969567832388398471844687549440898407792747824550237513459099511721903381922353923474055888171710737570209572024152771496831951535399327006237227731549503451650321039846556465139863608238960566176290669923897176556149398877702658524141553253917798033409836926747757564800629801948434437188171362653256400176599083942826462439486473080503912868965569675112087843212990175470358618436939403554973731887555027828816741825992681625396547396516980117983732706675233461529009228757780049020731859112031959427018794919290301209228629390470195979273767859559552303248697711865218858714575657087994521850297518704728156967021614015609945890875452150539319389780798750204060523085522995738686905960874233509080393516875672512748367631028519626101276030043557550401188211533331385054386329286759264164944699366587850393300037039058343807567995331392707810974980037099501787138789899328229920799394891901096080800578408059751573799760554971215032099785372480248056175157231882995132208062839797979046004559556993558601906243120533939885364944768653672785031466624539865604896283757937904577018975583523089118743631418764747502697456324906261453905873886635993842874717023235779835085749083744675040593372604930690318234603850202214710453825259001777934784220113131013383637109439284503561163004092802427682461063254827941173438530617439241266594060018624462340552300526698486597212350625945618223894252456184205755926711903815131263470362905203601480010922190339960597546974879068045878124599577384227996638587119686567015749404432931197201872603257923340022938771865869532452716287878657315932162305943876707699915049694129696388412696318200853007878240457840069991535497230994874234725359121729548778475106984062777555859428646267458022672345685871943520819129449117077250928254593750751623391584601311455377753351924120898485158052374040942379324761338030703904977560258447655400315770160446569042994610456189224139604007673610171372479619529393756294094233164350330973903935312581474303229911951697605129113091438225188870843726071206385098174845690852138873457409472692848902405643644335329031638530983591729292046184551312196464608247530932319467964756471724470267659555423197231127318622845567904019553958527454263905392445668111237746174897938795918367713836094570442078311921482035729299197831676057232201193676758208416212118578025293124934930813370983155818785565971097676349032956259381055563113670671331450295406993127192746235166478583534558832375124056613320267966641232390914467204903443169650965819312867051292849844380833319821911586571187700568200730766190667430905718419953716703628530705295527237452132949705376888429469072296004375642919309678713907821620752322841558447082977979939021230774081856408862694032173677088045615354760202899725197761308635685315270149634104602573284615119177202516075650795412050584612356582925459898622830614169573952683694757252678000616428114329996762577561213841561767339011176653978072841497165061951962626736971467593861311809319976655278372300339205790496675887441611157564875383322913976610188083347277754150670414390177951076987246161590949142091793479039631872528419385592173580328665394157777651789843010312911381155767484310428750688363674699925678336917883435536829918543447082471683545655743055477446355685273434889041320595769371186264457585222718828493196401565024000291863106497213130881068489938793339129782045557485222734403232661524635642156127229132369417769016319428762819541955715771694906931819944865701268863271466964509021041305750365466821707080129694996376970040572636544757470219192104689842437366267512602317755991709122086595657750946734843729101280095803636083096458634514306965315636311940055640942796977959938644640071558522858212125178414083021564897058034409359085714262880526679464872056277391738240443682050693086068365346412416170888287013080876622351400152057579065153917864093389187715331438044943278260458807116645793387642381352943011175039157565042752043185965750058915204687202196194938332252090375199401687318479442661964680540708481326498915942996261314476688019857541439388727960980963270646109709770238953143085793348649232734351782505229009993563230539844931000241217234671973100177820072799539440628906914098570445693558982985859966683589434703305811337980118862315124861910841899055611049792689184637772102876665859343232509974643887514012283976574374582613286614751971688718147348780769419310141087259226913486664258379426217902360713382532852324628648544849409957475748074702272039153702880050845760448293063484895235763014521505386183135856987991752508847827574104411675454263786127687800083837810600462626962760366086017522765320882142445862295466222724591112475816033492913841961689817990011753500574993162171174534408819758981666168577613285206866560968141750977049646985683828118523015112712706363995919670222969080549984907846498399469289215047564283201230980897581769565370018990678834302586663564032093867151618620257919782786794640547205664380444912107393050930641920043536891038164595630168000733542060050450161403280327853057766858362725052513457682230500932127578095866859953696547807940835000439844812225196358513941224060422865295165189945357163369498590275214285136410652636683831026804899372734383752209953367586083682453465070220136665952088768976165925777307869499262669966464198280265791472947445818764462366778650820077226322770840550040864102177037324022785475046090767188499119384974762954298059459572078602342679050719934363932365834030965931124231989272707799132867410607786898615988934122910195823540120204690148925738358019702383214201746874606356540490352285449088230279570983198407535204275129364682797383548936802856741265784783161058349814784850505949149204552860263401860696454691129794120086193055468003515577444803710619094930224698891425955767066715509164404717659005935962917398171468447088236056894011047809547189583969287559815276068107756941657397360157470821801300094686496498318059237881890841499420482823118879386450242332921994148211432329296193781005209738420259702126312612009713784909702745853689461404236258880110319585453718230829304434843174822197146617328304615121770276317884808544197153283147483719356396402131357022125503639073885010607181290326416526302494371747538765407733820625025930185230949893310874234780875530904114746703046890180146434334828798468111071481292814198993377596782963368969440226400893060028961604602390401944255323607190950208388921487897962465219549601686898411161070712346794389231410704031270519414599444324969407242023933704927468867935949549574596063616723276737451813476889564790653174347549973802259628294614977098631336323909581001246836599297465298796130550302313103832259540638339511622883767487291513348129017797631322924653779573132404747982233951009360947112679054740462082117479683572625935639585380800950946913626677884062068408553433124723253819781834018957362317806759288872875022555549432097309653456711390676993850516769154715355230827272763318325450700176708255197539094712080177887531596810630726652666752843949417057542408884982015288313617640179356207212396978950448322337828584472626306401603252850909177082801374906552379605899356658968995670279586805325730502438716576340211778415595480732489120939094335725495745848669966240082898417052448297732521512935957736890769271993550287231543648313382817965144011033341394666708828024989475304411471474774074490162854517498216145604500211324958301998327473096891342996669622118790066237318164841658232298711534782343638033004546068056848812301430045171364170190594617552113529235271793071018533024870197276590902995212097117818801729296419281991453874188202936229731136799836846589295258418232744498092893697976286229919682733976950188785442403144032564130092267881640517350218809194271204734470703385445208959474719481173913580065723552255836656410844847995296496086577110362962116206116328235139589075606805177547547831818296889702763248118187858783315205442986316805790537515513783791959466125069079864750511570147163394243701903056031037119369701049493714971733550152073532193534212966187987385474563318955902121469034691677333801513559573958537554033771202811225481797966085399873083131091431654140200483152692672997184103519388271294862898127246534427558002139850737615067484586780218118486514088628957866043429882014525340497820283633071429193574907255077504751526247434466883777638222587390569480279373798972118364898093270551158795539157821440719758944385316547557750553308643531803778009896379967399707850276448806684055912504613437153712052246640308626887749121572427694818143957703444093962903827503013585681098135317001274608966595548668194370821227689329541772940527345131161308846283451158823783762466939930790437631358192109622808150804651454305729074987503427906213149822681802898478086824734953549576473344965621134936102394072644428689199416391032388261462273789196092379050450572391416202509506645877623167536563453431101016201988934908199390178776966402522844738676245793110062789983367149583216786671481137438998699625134376899723059000317064076401290059779947717892163901575099879121676735208483874529082597044182466629163809123800837040588372706886986577921461602793185467092757840407357345123981122943645721552688394873104683077005311442064560557556445574009470036865793167811822744054667314834619392296229385529212752541391606780338378188313113689456145831537644834430829736687895362528262107296089462481207700437874771894929259589879511717901253581952269866811906936466764101293114205608515486768421212404691740322714563190813733939903100579499621299708522549467863679535843876999920788003924093024218027701415188930865992082822416289418401866788758851041613211220120098370325412381237545854345605572034439515708428286066929367187575242083563982143006526689762027044608194639032972421541507615097244312353464452096709351362512185096010119637791136815446206482267749794712320375623777750644569081830878177148991979034639055475479799359210320949012093724301372283285814859889845803100181719333492687279076665239312039292675679496533379616575244597444512572986782041601753237487438724404341215444646721816234888164330784155545245271872717674787098641883472104716638151718382566219670193243801571013337546652314895824486129382414159086270823756708978545285146995852528707943790586603881767041181060508991829438649594715029903715611121247631689283213480181848540722462682977970652930481952810171949508823639536279105523146440538439664786412133207966837100323748705566570774750914211591307970263506292754959972673639432262704989323678574213293574537551354182547794250634822624414521371284832707344166490878772643045427745571697477960020662427433063044746484250691024730171364861254175380745854883689277081862274436627831798929880128243466723123884889002223564753977023417849311413134774800765450569177790372493701625635708419035495458475330330394383571816426744738467932318324889476318598114763152929585179438465921790328709735886490108056877597064136655684234100852084854213787925220064660375546952404691922001184928792082789135935175581732552900039992719703454493218673649207728738537525702562088242275612831479729904506412626345660341626298118683285398718545606355858520262834508299421696594638449973582262973517800100162328702376278335438422565913890585610367633562087714316736430792271425238279779196017741129481362796363116948541751122390427800438382166394144417378914126879164169694663798870523752765902256993346026718992997806674945401704403511514731625539490687050191395222214424391947222832249036697719263767098911455186868036147945800794036743973850620916976311347512502800893958046512254685224626624644051767849363171430325283981984828384424728729987089144734265227982099482957791895293843531452788378537401965617120855371179686211369414569822676842572410024768285021310403424993957317663237292710434024479840350224484899874723703982915883139349453956384746246264326788540080494914933563971455374460910508987905909971706849094267506924001497862205075786670033479443904642810562401939748179833339100145080219840570804902176392782038482330034328497200076758384422896169043631744695379421584036558265385549307463725351370125349081825679831579630953918427935776991204604082608913689373705477583216676257410047714200110044803624049100908198173368708868238409598326974951934883423543956636274272304674812711239762208289335183569030308335872428806454037085395520159379870409338425059339126530919766142967395920374563962593828697571025978763241404707871090671753055776552872932726333936852409876036697946112016746473174152111227327692619197302696178779827183185024922739241531277951537065608117484888933792667234643435020728496948168064813164450086359859718850968409632296705500752962429325840173520375444076556095286649038835041526749831513960133350959763043351208737973502033166714023727128787582656512460715051277875603616828509599149253326886123353977253116307449181121169695003232343411659290995657396604375285563278530716271689283888778550351641963773608230384615405606874727481847669905940320557438461514525471657543955837286917151781679873157923259739737364925999353220010102601556235113769979095559714680240264396144542894450009450846825209843159971798330893239202276922569438606932984998417775467445272804863422615145509903954488973653948172171569996655358604993724315286748556065872855689102329783380587777076553310865060680708118221244498534363439040569918433305239544302358163005959184849791765821690467987410488730345325523202657721852954691609779761233589677322418178966958603776746215592601670468318399373792877355909135930274704540092982254750189780953544272401307928066206782845045310666369089967837840230786347393895173887973295560651948595617987980727853566639141144950917874905341547461345823950370223029120695950426813800064931767911826022970956272826509135185021006527173028855198052606958883747352609414337202328249172757414565361660163242037311927073615885023926881777253621323590969702761405248160175927030054088919880596416143184551901449396732467564553340130154370677923296974517041833257611473653567395137378251496040703047403341911773143722607570496184854268300404905136656861865968167553574309456929583469828928200434557614595634891232453000896283369799203726978413802019839077360662718978121388169821149574086504680041353812007726810959817486483336084266091806998414314888374667457621497145402389787010397682962562843821691889994906608134266458481862779485402319198923187866057958768233714223661170291725170575410185698764694243827799963573257915091613606279239584771736687236503393945946525144712120576610299500079832842196778186393238068176309501568322490982946506545117776235352474959236826236725649210683384000695949017524766721512461591106290348265642432018204191203258834799112367221469485350797139752024216411734754718315913120580252887525304481498170740821681201092466609030892336150703931974412975307212921956358742687290461014933415181527479974111302698679538170366456753670034261845853327201078618723588278673633040908219759873576501917027121874803776974781265937581564153394369745833948347364200707612363480737848170519484675341604007369279182267043031107659869406755425558583715809983070085516503574953123557710278562915211169100988048382111454134157628129986915075119466871286188199040658389138126627706127198657872527513876582821951365364637586063369617250147051535155776180424073615319962238082612609669719516381317729235796935259551975091938918715635726573271836853458854601867536905916995797248037503337081362946458314704324745712463451440772339415788701698047035973976083088042717093558523449542183266702881912632083934831835085073670489340174477226027778483835475800394630654084434148241657114463496884396469401211889498545856531027224314940087202697271137502162467897597204607011830678728981070432665034678620510922169885021840779613510068459556749200876546558736947221579376877406011797307327174375149468405973330269721527588423972648261016006437105545084792456695295456994258685577470659099751866226024042536563377364522171908540850691604327710797051035056446097082247587826863683139659351401341900524246226646349207840944006319416383593322389915363452623015954202881266329353545475812299132349257970612582923533743583061532047795373832993314562511452056295885487744042588881276236937895838913879066597061105259799464667459062282099381584428985869811511779496157140837518334085783153319124013980900348986890864389505635215913273995157731610848805175030035440469883567768497262201880295395505015682126706831784659472841795316234237462657247162906510310594802909074221053393328539870511918988610953281101691010301532715283770543436303476139465035424787799541139561738805222338245655739244513329598022766284606951693770916474920746426451251337137214408676193792497363191500254066404926743547787541756259099130122735929386803618549539032317559468979310425540952962527911992080650642914317258339615314966091445561650218950243584280684324723762403355937104434849176627766369288411751019828896077054575258190436087816780828018878567103315022848395561852873660656293513216605826289787449829532747004091541817420377542487635835749104059382575094194637782679925202600251731168742303437530759618807375075974600930644362273057341792053798032162000527701820005716228751151930022770300930321839705083733447443747287499585746289449763477015759230700890706538422322009499895146108610922593650824828377116512428993917441372905608614326068747450333245829899056024938715169075096229417297007948203211484849976475973820636905769013619169583865370231295597013407192010484886158849739254635299580395001806619653305545684239005377327198172205765039102399327524459961670891185329429045099991628573401059661543509689532619143704391465433121921611562698986706802744275406530793375240825663855118097668925443897370632105648668662212688132074482165229599363332603010232362960652087243582577002110729978052051011297441296722411852924589454097378556446025622683634302521071298587690604480479202152127663142166585786326543562769960272514829606931007704595476371230754339226009467084381917151460045876171330584683038555935491920349991338059310358643235420934855727985120026503215782455440183513928338655196743460717393018656642411827507897519150339637190003464931980344319549880021555772089883010383284113120474772253858360339790986761861367804762377834096551399869566987967591817175495949680053892615043024664877683282473127298145680132173818999222818870431911348319754797227430243201913570485020969497791789116082812798004717024206564430000973401440093868657628102078856594515549631035822425503323098200810461158354253583240188013089964956140677956516587608729326118600444866281892089551538778904508781178380796022862122199570791768601141680144127731188361340072444278717672974437918243554508852516511839294278635174100271003097967961819770761839804287165443267904794253442810031958911685555887077380289532333656169289005356397271832796571711236490567808458881133820081038372184422653410280183506926607653493836634181743693271697703946869398671641912662517625924953583996913140458342135858745179374667059883482335516504822155391872167291604636409864571705347458939495306731580042218006504703790786509744191652061610423219950012201907327640179966106206246782753079151435353618463508524246198938715611094893074995831167235868464557823742264691902372608554089817060018459470114002458828389451263874239179854501791856016496680944450493270939624660139637500881496332437298813350471591996937782496668096512395442514124497919891218868655744208096552965932454305472319626948499969260724357711574309499193707161922161011643578805009020079827753913039469943563708029217434732113811084255460910221031128351764387561027794108109907960308575788754981916801701907470395266217836713720900553686728201882683587699111335978798509257762846450004610727386718238662773719836581953797436522087165232800997390870704010116557759246647124486185084230823476754013559853824939445152534355689366403821226465139653564801859307671548343890692502006896351974783869818996372130101085502476751140972846571663205467918055433551376183346970139540451320770216074121088201776185633146273405716376360564598271603952518908032629188001109587054918691813949505358383120336933210083924346025971101476589854668022415579643398910510242116780858169945946736182974698188409684806238080301606430475057603105406644367052157405443828109217833602053018108260571445065367866728534190815217257039822990189495847640418879146905136475367189111396249959415435791330306877077929949397953754795821005615701111199974785488545662007872819448642993799369201594555720496563842567078595781428964808532356750842036387646600227948507673197066956892094019517957822788625244249061790746595484032091225576519801560093989320023875368828343138106689443518831210452107662581891813235577427583097510834878835088595081024323821120684784433203686509912522881499297756266338535060598699468152786328598952620074877469847496893947416567025007716345651121794519743669087203318380863020710477202857875676365738550188930559776342016424685819245101758951055887283404904520325638282743970906570547489022513166366696384119734937301219684923612653149413669678326708742453237217523433300835180876922358574888752446500610668355900817801884459691535859385762887996408266940302385553476251606699945423944712688087353073641471076435729145791705321640294929235069533229763637354476649489725078094316663710227455984748493287078983818424038680716736550066214202819640736455928274123783950288221101984805987718614282286567616388990186021465973316334680056802858211934559096030330140501590656014527520882672693373952634849072747055291659456770991453368780112822503055332965928172946529181232060963038031698803484276426894135378841020063274036214558362037653149326815978545646043859158044808806758063265028153855676103355430808394698810242291546392369782998373675228148406266104348822140841664555069997007264396131774714255901417761361375646209856512176383303928427244780891152140976067465490482279452756269612223791354548272233459044514348809159438352968846478262800955565254516087742651956998565318054424086070750958947037313365729098348158775041850259735469682768132661301356715868275321873534416443950638566641681859075977543489447126175424207468202037171604054114374629221548850615390396503740987871029128367032060352809480174348848815449795435460084795818787589788457700618756558775105253803783205067673769100104490403755431539471811446853835279794671742611595431898385067806409916555319267391226156320098291078329193033875976853684593355751990362986161708536122155727425861689595803713683505216254708162667060549853754107022585255585928830335266540261188922918851726497144432692781078397886415592634399189417658789999792040725540672994189712357803663326784933215219589538063558792305554325020366204968764180456742188766624042151018746368290517861352239038575785182629014439342150185667903485817144844368777405498306069284482400858475795809288708214264575496140732047008950343208267236146478216123573253931200257551922542031240122004059957030732947676249174471643122395142217549147157294050635597569083301706430501897797429390648982660952931550824605575121689059267218959077977360224928411188325411062941576650221472753432794181322012311972356078197050080972230145024423309936672337336720159584922934699384560261479817691880351612208509738314348707181747605061050445613779412195146880491920925519272670999574161913135527952226177060820718087609944664314927017080880737878888593096005488216390464494450475342744968502423706406252265119932779470959409282754004694055513237675782803247715430071678557006412492823388913318637027010938732063926055912007821893034249732817813793526653711960933073235830455865008942980664446182129027081954673034957837923135017790219880906269365665418000004206067313024445396356844232991094395801707818944125191730774315954579811732764036603779905362452463324076616192587895730502435904930199151224161239087596514635432885499571905397097559139467664570213757050390848370640652874538024476825300063646019343295696823110416191366439661120087933025921095103936894266662863408454945179372311350753804458698275059374353275227675751250656417171059086503249194559140263026657070139699965920900166095058824302725978007869317520718780020419739539574063256814115652098669791061216687097529018827935524124130565238250579729940194849303947217199794077920258115108186869966820357271367733752960737150384343081046643960871576248164804412197829501021696326641502325265393369771647828832604745814253275194698675508038438627626040496275847507175044530041282038766552959902982498845574695582811431186461629080354377082296511926666911039300255213867160714349556589649155843832163022906459622849820660753830649141455661591986529805638060908412637746390222415224795213381047471953348218232858917273957940900325455432963463467118974347778855250088881266169934490937113818387312192047061807243233848830685947320614328613546685649823077909762058111591303100503924321977772136653524820962398311653148050479169156084134868967655232082365667440069789087772885818785061307655545360606723525312574338096156910543405961710583573731355205702584224168271551494796622035254641888388250534813626511995643548218997485324124545680891182576600405069246009961120127856507861635336044668970838592451436698360223488136486286300292868369965533772815389740949257553011253629946472740753418074448412863646406416721890197757535633474216236696251926707913637660813523401800035236156505467224869861764085474681386823863155863315179321128091559153759036301484996638672414927176165670867632703675361693103669274338591288891249864451819548308140109656035939801651169079054862645457016187749038772894277102423803191958748476571293575555259541156248111920871746925620295090577773379219930834614203357352664497064070927679209679904934306978019420257649159029409948414514484511419078776277651616393284586410505640151809079339401106384269834886711202855503273489927365693521227867709560755640985888711573744776519387335872383850920031791590159775512285387684133269723477953352320588130374058845297225235655141780766550628706145903625903050085870296109909561940692787778158961981626846006271782849821211623441784896568191123884647204892493253304372637132062912514360459393727648277224614260208029946027415802851269729979611309379548915497239505213794422283636438587143343613475891840208514990217271671313560545220303000183306046580317265172750016688346198530845666473328442430827009990319278171170099793283246075662523653319750571171527419705469362074148049990696597751037617749269783297531836619388363805225833750058656293868220251812144060158905344405864762830588060781976592778313693238500698783033071039648852885466100343454934190938779614616251870604800761027185242143020430161549696430817519269268283371491041065959666356313242106668288422767744223958103579822388816670610411973263287385150084106580044965375719263714541381836374431560520546131583062337537586312545258713870368189069730805860884773166278032999902226481954094066063110112851433536978148708522649265396768703203507620477117652354639930959708073625779062263279456532496181781971249308927202539158838241192417544931725698119529011749591135733185872481924519214566759376279785758883627100088217796524371484700555354706017689572881635391833273159198726149861803379164942200252733286119428857823929740173499263482804287599396958529755780079398811939243600342663495485904207675095085069095148945041559717836195011596017051126752086509758792539422814036756620756116559989604317008551258755162288731540493127260285353136281160928689036383324511997775734302538181479672114576871812152698253078487501645864789815757182615249345318752156959883264614566282830544091134708134716511263621746537087311074705333011012355607240447735865656640567583649099639004081191251705547711402724819655513615284769193246524269263915039849458681976304895639150227600825837688725831889554191968347656967474991593754835257795838247028047150849182442692104462478080781383249358303052228362695383794881486936807508390104040278666525872426073655563689781450945395581282737536371437683664967218093263643768235609077527022500630032435429272008276709514937041576755924191859693846230020788399007759687360144102568276030177040009663467088192521874621004131506451146589103335771560108402788766453596716699048271679297661156416466916538209114709282399404225702113422660712009856502143060769604798893931891301899420954963166459223533278994393727943363766385068426203389645514414053666561029208290730263186050110040084531221144692046592977610203936555727542390338471851512535283060999038332276989374107259489134860946039334065159470389726457879014311255461672353776990530400567851286003864876587217431607980456429857465802988569550334226843581357252368085797250460501639705983322977791792953361264025856821775149462596656429498140557640026688165616710122955012329643435851844646729986763334913817541351648712864046946547166021977255646489137184422323332167983745845172960640813559851469218560283189446586867429198622715164384945771436080577556169205214880997932971410270230457420819737846635453239709149413441365530159731453049691204864742474896453200642082945655781370536049090606488351757061254309831689843299357718130236120162646476283347551765194621359305732732090361100527339906154486354075047366459021784996151664616846365316183785609290952177285812062302635716183570838900103616075800880882387585949229214419259466609896387284638506953560199539165074947238752449578017158270629119559626800331259112630216942707812923968054117745663237931283196834895521656344935973732753074929119292204592032886474069517749533241364488341227517046763510692936038419615102227056066595786820361724256252425007572878472422680561760174423303424951896549648279073546469305698928669389932228027738358345173927200378184835221084738907960580575709113487406761758388735483157036642025608155208228977173042377900466207238209967074202674091208263643188227459310686032939497606699934565753497094234608427814617982314788842284285327825092838063018714265592984532934544562341402270418303546315877118925585324434510705027679726619697895330488668534772855377492853156682395276091708463829887779767144935974131864979599631547386396788464532103393787435969367566902633715540684451844580662587956753081955888942230403920720870501006916406426303587232457095212875420218356209509874159748694644129195381089831952549199992884776355745123540929840312223924619338749562215297861876857560563778222110318716169534171636410707538080312398769004594962886860584221801092642072711202970250195974378778082880106446490491296610254137370980654646935826774367114288650817081362389672503985669329640505274319686321585352784862508901143319575653324144224861371512359222310322251667643370269821568461855758753256050052105717979759650008081062956167621999202746574814899614259905347093909367211682556792599287050052127188724775085585102416747097446397481044619331888207512532161374475931540150448940662603716666136183358515435738558492656367307384331128575663711251053493463024955692725159576211849711795102928942338258041213033733521345921894363551986580974892936650823903111388340048983764800953370797696489368193306257263993753159958569648174657786891947240603062362029547454564064816573700532530189371169159418060023149575036348369674556613036197997019689519394015143642757562831889715671797794527960688596255489085910142153861142413265694951526676978788645115184806492944556507431013988172907610289257475766666989540639823892530770930335586680740749182622906150324758382367720601166587786576713928619093592273819549317037053295107319739369046564294057578046038425060841443780681388480054642544245217683449878175196206354548161502479220319323985081670174793152364832503273089448400294088097805795195978490742068561281945105511330569662242254309872515895397564254276064482334955775854588783268467375253016722640921450532223262814129365369297862472978126276627001408012363073964376840606310359701760428980320146528723394796584588707153962627966285323354893707746675862199761048751542297743330294199480047824293147125937863604663311148388507570146041232370776481540089799750845415759186852097934558252376490481761900230222694573199926493993751941733151758429743415640798915944749161479444452178401483526149826735775761930791517035374318746767495824710043698108045070739892292391609684649043647318817962416810470089551345720461956982220995892752299981671235599674612126570673176092392021039191596217634435331011026893761328198492120870885464286744658089942341696764385261447455219607215052014991406609911092249323425452989389499088584588152032649330059828692320295689796752772836605283502046963201741354175016938606393176611363651537320051146481047359882420134108809702915616610101152513094978384806012041792439884282708631578539712119569355852123561747042106157300427474449029605424294645322456966916786552658374088533020846375481333493123476180652915240965139696137073482091326899468384141121576447397506903592544684174909097040943778399715436327101117272203477536338134200074589868889260672491341523483944033941165008244521187741472161754463283853246354302731597053525889914338877179372474793182517886164213261228100324040222382516145883497828833709164449766543675061505732308303142169504023617374211865665954139850195731866566054835714164627355477648202746209067305415598022125849385336862917053373817594019357798125633556132508125972030704753936827579817923223917126831869957021070437414230643146380926621190726195059773692760199420459380582110347227760672021606428805940048384699441004287155110264806541463504362991311859162187075080146701154899912060398827773965540869670066852073853773067436470930089149138716421573539941007843698102145598630760193381646095863812828306895591394304558919784505969831745439096853425413852356254234384885839140807943055470190898493786234766588009224573206600068889004184410985555843787964530855326830912520162238137753010629453422931610523284841198889614400960568538675711754993327318659159518619377718488684891162745757747659554406297299040737346739314958261129681878806315445585084462691577095436211703709618217687270145615052086763638607368532273058487679422311927994736205230663128267212854072768734978538733743333860251234160872512705379228317028486612494134553530222204273827055579220913563810163509674979273620177106479214388984733617609671805664375740604202176263246988594335311286206010874520432423356817387272348429995867020237054662948295917501667881573517183898265120738912122147164700718720681283874504072709066406220255088482115609672521367891835999170487793823109201628364451656663475226424959925136648875753732717456960916403863104665691616207947302691657674857500941137482774717332468980858826926054661559914268915209185831265867015475632631806924206811597532522560182990492590822113655008062370527578249646346988629329162326885065477556501785869172619751729166148378691288080759094343189142502323251723231240661627787329498930431362106578191460647031814974130448523840076697432202452364262821703653027147609625269658236470220268051110965561833980063951979008154969614981698626162470955384077151492891622818484082942680837539672648337758477065201517545701188040337884642290353730276280082427973841522968130526453264271687955284107017286860213097023813216440872793891268635782437084779855188137080146699311990054801024105920306896758611106258630772029360496098049720992909666301219172787764960861966818584901371655933225698672546213973456518056787238231821582606105293429353730844935092491124233147258695132464865015560532973291805937427951560634181999657798177432638717213093098330326512173113441979537359619358679580101112517495683596564312929178087408886480124579820685869083446106146310189264736352358106401686086469072691740207546714425034296367698632250019125447368038722313393717374980557301949246715267601509667029762733086809604573175885482082146538473408650682390768673401410772091373977093932686689118977020651775012039986392757379933508703507906922902323774661166906045371544321568651827153745927025436377809240322155151292913280377557714956944381183764801219991813264556491020748626105645932302648078431920116243192420132439302357585513199563798450455445301277847321533093781145325879891615826804736099228540424338088491523385330084478018471602384433643519364691401810637751856015047604686415482984896477974041922733788255095368807612225407346809192916479770314787948085046976932777997514266384696264732524638301383868400722481191084895411727549133672490318579829232103049079023678318498289251944380087607467795379762544191243823058504441965102377784242536876201832600457518653951726216029208151738311533370544414267456982283206508433833629713101708816297282318295222318740234959987340235434287715897147967220593362829057719060282129938856927590813187190107262273106841130926333906253168152307215503577522391580425428384582001596203148369966901808579086764479304592719140730665681225603938194906185982089921972713928000551881633141961970727492601845507483264309795254028561018577258662319517123854648502369318051996306251995259624403033166165132798247006183215575817369393182418720122638271108233305989057182240239175995761651925953212129598820992256066321649588090592985822885401540630130827443204400399353777358697979248832932478354869665907963746603616930106965975113762517645671872260542220503467264340333541005836153386363625011813180342618416573595735150747257726501007457393681909062358831006803062729646394267539270592158740926864393922094212506179171633539530895134443509411773335181174058499883270534396245476505315247191810747142307553710380649868442471682765286584557109530873154971497406566506963169348465000137891739862243860347097455773924844439607796165510723715551198751214901636863007471807821321702834470407011520767838331076663397980858025130313100303961290509929730147551788089664329783269799875626354889464584993277535908694047211314816817752557443868955679287088955949362373116315794354606293652685517552402009634065926062950167455641144027603396070145237914500518978239675649412362005318160697764324302633285478225855728740200990553934298307481452775734862198964627122292942226209770713445454648069035828583707352664204398574552764528533999342486268954384503834568765970759505992439243304520165329546683891721378024183686315283336290215958881458643557526783274250516800475803908491673187581393010463589107853770258075763774990769658541507946998612198945280738298787772244131879509945429257067699586887249191106454820669314360501022071839037545849682057221760453458851552042466155922726865899532217677964799836347526254589163033993357070667363296820113090798094536548173063019032069572904704092595912089334982878085263633050404671366469594656285414282451750783961557179454610193055354241871135798486115378098064092453868611700821425378256737444176744940520015281745386905346980005888505128435507341713102564489308907934638543199399572434333185480691097939126145956260597121385350711652666891110291907285405631175096549726786968636266766825194582491217997904988351566413470689044218042006172615909799629247529071833918844676606280392516289315464154804361013130982857673517417043572132048178477361475316392543037069950978346047541560962785802629067562865607434350193506040444890720518500364242966903171450332685255054619776651082295360014148061051609888010283307104194813188352957313913093376016142210483221712688012281641764489505145627198309864801086494454707758300218329067145851188003029356060424112736673261340971959710739262515951246039499337472982827797035822455300730402781134532578961867759332441708977548257829343357053448951375165943803483094435090746706535290268384463322156436705251133707778421375211514127134729335334728485540775827081320830820463244896321034414659504619149257067594845061229295693650745756093949802274339162002506698304199432111707164632903000631101011607884110401534038987787478664185446072276266149687530683731013900466310988975876887139381584557770183047461942974761959247803551688035919166680255514032894900286636093972922377129338405515780860141883356606502443710992585047624195524024145664217629843197904852415391028673953620301537184266960042316039375875220814379825080033099598674438708713434778563694502824426756850679469207389103145441656451457789367122220556366882437688720226903417093875528697405323904333674401620822581903742748840232633455039209978737662804224789943179783060711739729631014769784898691924154223160051620829008300692862487112794727839012327647850831057775711742530422155042916858850100280354628231319255681288460057622781390781322614018805314742963121939813992423536840368174388681769622362642262156676310088953760750014715510996861572118393713275340835138652025160654702831921631880549512605924031921803600522504337237471685422739349064126361445856589798762267563003395271088765691165472185294526200758971611036005398702118897320689260099482035662535466744873471299737892502659809916883622791287321806797961448751316724572399285546157713922918832346642673005167446010096218207769135867444376365694902818892065520078928926623693196284822319284905022707471524382177881095133937286809516737018804942782758600558611564153902566975825094645224500698289830601675461364659333321038168425149538481638725783427463753679324719709485969242002464978766732319869886560959907179930157807853339487050800342718973558980719659913816503456523631771817189996408424182514025911048678479956416780065190447282770934926495242950625584065933061870987474919053116324717273434389582518717005214032035475784738343488531590101410777014239369483142237427518598881277509685782355060778603170529431285783380328882808067345114820489294783310911757886329232177372672131959842326504805590513320657238855240327780895493691807198788363925033664930063204980333396601144158154278871777807351086139920397901604492089476188410189067408545454285629158232071332715848284175369739612152006182444143094615238322059124435776215216009329524168865142854217194634309741432699074405255099268734748627412997521060397350937354825704677083044952975492727551882668059227873609361348002671645985581907044911857140395457611697364935794749541825700986105455483179172932627567220383117539378695092928214639501271470286059331976780017127747198847479925187001721911009222904696700917645729049064503970028843452544834681899309587110543612191465587617215455815331022304141235223233984107691557543350264265724171953182179711791774986978118864933009266109436665826139236033335658224830808186690887729115810946679996057256724419123553209630846882464406112852783851402587414325622100974270556938377660826186764113297732585669322123653755571904424096468927284627043879992745482269910680736223424805826124919762115956510897010672138492043461602639671137083654227538041196482141368850533542016215370584881380465321472908657698380049641247654203668599446985638578763241745904677544816208893313043762654809020782467237402561969754688114546101140543165372455661972022368408015254198888233103556242153295766301664599892629961345983715116578458574557284332724848389791881190941781835045341729349423778560675962773838659403458503036189692252344991685717043803927895317340923687830143069823798529519237062520308604147033347424476120712935959314670772344859513107617528209781789344308563595638869571042823522574396695310490720219175869647972200652829424904015774437118918409174147414804634062425902986733117081429380811803960312204687818845546847767703244384989075685384210650071756355939735916682617195489999014027614483978367026973344785148425055499740023027672944755338897277849714438830309070414834121540631475000514478596152037669182180730560394327197026334100715770155181168789226963156050550802632528856095834122929076523298185255185876910844650963641529596908659579025647808625536212070013212555004270908541181018737769286376328847586497403047386365245262225140660414635799406123735219798852754528748761745699638281510984507461525269534317282858731437160138381863763006471929021331376186485689999152612401620548927933614163653972816957683145153057659855484774654441751752460148277022156879757034021551021558097132231814607148307977890477435094932564627406356294296650628006840811729030953787446499932149214853335696932695282266125548409641817413544260565392896758211281398712142363628540591010681653457610090029716978974413046599906509412999035132092007061002594179809978833734602257132581159305965700447226707246789407939875626442881528568511978747754946720317074787441390680134828230097625571796577338312220711703565849697199812750461233799246254839332895450322845836838013790075693529381545034087292397030166679991817657195245691635902760828059143763765304742551426858342516641545394275359263600242492599444185510127660152413122031949732847369415634691994299667571834775782331246834182644867365280088672425888147266548157659714165282101321298692866804053046680825045063642970015438381302678460504656218257018677289548858308241738857553028932675072906134698905448841198817792643181698498409741000353027679759383289054090493047287949000698246170323324896347680683986729984585487276099342093976343414423769987433641370342692820233763160013099906057423672002488868152308023402492507865483084676084013240372625097134141456959980426822706175091916728341349625729280020352592135163054333745895012614107005599006804195628487881684969749406767746187396783356579640444442776578714888199415937984858107189381998242495300202832672331845850281025875848181947440385875084045079289447615681745400118136190305549138534805647544298018016124049947082888243825800309055695005736687748133122803209552591968079739340793186876845416726092480643420826951278180383068789166796603964821073927154485551283580244506407704097517285820220172085249908773529989075464739336286848127583168321106298858650505871548307218126624225873082434540938016791243338736192093337611881497185241182130401450970046307846908373182514112917767164497110297769877175297021276000747984679900617730912427628280068198740450059050267604560509614682558599053126471254841838453940816210475005285371989597755236442679804406833214649712175224625252017899837136323035108013924692306936995741373866882427376514712944587669675925428351040980029715736548340535890056016172778001430272130973133070064127804486862866295053454922994440034672491652875283221068595639770557049131796663267895591736514742699411056907087059740851167625820453244971141259554264605466680727693046204839941536659728514899086306721038804049738968041380427435359196199374215089132228773852976220277686759919931362689403342234608334739370420734576652800670662294434692683800671758318654693237151930827624933833373672735980825013420765415869978895852759238771989528620996619282670773352905515081395901110440129058231483074082244917211598708415695638328761266182100623755351160053964749907030612015089339070085101492621158474846515688745007598587855196727499898087103003679012275062766686685049810525199427796444624849815455077300600039902240230607345260123770216720758923370562718268335252051985934209859153145794220988341601684420203482556430859819900392566302764377893385727959342631385409543978931162556308923548820762872994438953551377180457365891604686534292517015271139006833049240709793278372288977714047791336080887421635428275351620663715412923330190996830049814005209306538419623835945364413348998414975593869245110909660351219896745817638780701398040349603076921890663855446690703717292277485581427707135512443356303758170438664831778554771485946071326986158084720005498314851717930081689733410843996194251824591660606447265843788725684590480051113701887480249685128221992746317489291728356054373631183343995054479912545633249582408329194501084954735382140698921008290391838096271637736925960166634759858136153769833878252471453998029727187003930344876922980812676217155628152973480092848124982505149945097163033392114534998263287174216060436179080646637651487159782028304611352067067212339036597601153364672766795756128724577605700930197989408546961512461719740714473237478339579913344699045987288275198087156148362461492568051175626493006520776315957018892267501518602132609393371407298613694853174872402365338339825211489906575582569010460773040273749610423232691285358665399051666129505166909345617989202899636694809557984194125711457955438053930703602828167697261709731649241422803346821366595521539319516821108316284324003395330139849748571172114739813332763927655016182247162281626918253458743597030018025662660964796854039477820189030062824724726026688165200418059202569640173214585062932167564103025236379249677463568925221218665267407671741496482543527303233517735105280593455168241053065974514690541046639939203088591890331507442548170161410961774669506186929249186834552484200507686408273779188275755805445142937947244182595850790259797942602040743146209397991236749064990712184724958515892862889846479819825385944257360788750616031718895368026544953210058210895030535671707265968914581946978289963489897064622228896502956201030186474580950393755000442211124668139933928605143727460932361922448512057354274974620928983447236634709805153935444616274412458482702767332050056871570461264181926820594415068339868786832961364881658139544378015050485169098355175696048966282922632005688869957152229923584934742169152617312827723427743669861213991925284935213302440137381530021814308069765237696456933695878604723843002029100687706683618008919839472329606737816599424884010595470818938738776786442606363643454067850438018499649199801343014504821376732389352706091734143479609288720224858284657888100152472919100723507631736049231142408980523106956170296996583190221945426543150148650151355067885683014729390265673204707263157473758344577315540573621883550078930227360179913469591115949553434763075633262532756605108714951514680535762505209979921311765493766521402709191149870738650339745360747452044599298733212021138106568968423435973011942669900213246347705244648920514852070807618847954809862707053512996890730003008306945647284093258722170796128001791185545316564979623023682588028567953948759962749720330388990446501442187775878272783998188503300882580745105321023267107108331600411185629131209021788836146112394968280922585922360625345050196851640076202471454339868732409351602407119201384624256984906065918591143545803816209232071155753754154141674239430907118419474240242794960640560837880112697401336446166308566800669779736894947726052335576451085202335381939625731881749509659434717559536608588322904282959169695991683373514608448924453443477575447822285662993876256391587713145644200753928614491745076220376169121970619336776083811139256252882989934838664658007959547628550435895389333774147926866902798055779592994743633088435122051347807012263031290186009235202162556976478369241293421425111845837185762655021375589170957898393735321810276020422048977714559508388629870974249127011269569130502494427086486271819694330387926188091446253916042181158229325851860912471119506713053226348107289681401784294545827799775817056359352349397542270134028407346375698877940792357727158680950244775949043943858214067127985084430757273750978692493263599092034216627797658001326781473558234302014379243465464218725617450759623846124183083771096143310399018347418803575334326287889075233175922769166416632607060713541011095820475777982921499199976307507888846386308159928009583798264522424211574170051328286334787119061543096625178976125585668316540373415624165272771511275421389619672943269109738856957903100919322658361406560748584846920995301557324131415342438160776252919393999183921928893718166157402624797299580464964268574169985936904636549753280021746383995349156909818956205363875836553208501452233966444615753841856728214880729674446129723238375199304223553626145063194889656755277571626412828677134829064437532570009998655372406193044325957541469109615825867624313186820634641769903333480855468464509318300947611635315972250059466610834395814612496618021081398707173422880175676431326410232857930199620182069438056382544414637257528086113941897077563183692456197434615402099464926032115121971268107415286468608903790968915959661782216730735820319525017947271050053688249807995193073404210975327533534220096509431965685888406071859914235280557274811505138806111941061649009009961273074700407759430944078196690825861458952946288353688456302191179243654469715178324953751505154957340196637919148399693577167060729848507015118776380816235727561444397625115812440030786343871041539417817874398715045992861362667136463757585130286871829396701024781518485061534176155055737016885871705176048554460410972161160399665275537525496574116857748603137334447820834451323849291719561906925928578778274062036090633839007161292684083931581969750832499791195969462333240337017306476789400044355064861843225100180607963568391110360034230384251159881313432683744510496767189247271594299120068426482673782872116681378912381907477597159264393152464144035652619466320686117809844894740812706890475726341029936374986863499445576433722212483889147557204646387284122619755368419134284723888531730748182809810446930725054589574835341029837791628969519408192965238893433995700915616850229940476423794599403395412535508912205511452194779357630343537957722568255425674978507514677068928745800817375235100432940120478578846932583331245388662850921277787895365677414398983023456921076371444933005766626569007863134551042266655139850557966076559947483506945399501255287254430793141415340308144865824984440375679445163958043035851270227182594680132621644514476962442884615556158421239995701422841267913323004227117201576519045113275738738150613817588066472033106779508010289361991406823667907674861552352834456115496956669146476031050888663707038543858183070554550194695393142798483145042664609504769391730665607079772438737603050903264765806619340336592929230660794300914766034552984230871661925008912605925172538268823135174089396404936214013183823786191866135297680043679614801035049712756105852492459001175758467181552233295119964708216086681659522948893958892249808986837131896615903303363048038203393878471279805623615117370677652700488737626126339013086437385295813638513372036579321280838993863533664248442901470067504295738264930330202955445516609142860872470544354681809701412042639183594402045432565082270243575863352877973371554124628508115124657319320081368860251479901218472027454750122725836715685505322814478526447333384514007992979555984703874543476637064476268501942793863662114036528773441336687923494978937208609158597706309722725093073986936596202131581507710371415733161022407423865807217270837471088834852533545639329959725700737556646855549712369919681071047414672144864421803090047213826062902830039071475926004515967722003844016710224230033878823541432930077244847937097048479658949060912643331646567337144682658041367798531971665253585261077193127719948394877109040468015596121028180513789212106844405885531326311514561842366357000408854901344844038449507808133537146117573354433696564047110433839121763643501227790933120522650591692179137694477014494656389346763333710074031125964591174754977409740764149469037453037746180855893154964590540084750352717951438517110017953180847755304522362722383832463260064774087146765623413879278886618964894629321521849455971913945574779267825068385982185149620396044373518888345501932920926111392991593686437863847074018017321946087129561575967220547690069080669001140369789297406373970288333144012438973468684853003629845664938477166847118494759680478484310627207496215994861232801194619024176016302066610771021269768336207143019531306898385957418124163150195375725744262759593026801685897468213311796509466363992513456378494679631468358508331598957198804167031960814319446873937680045656053641482671158969678591006551530822656554993326479407784823882914531860283379110635417204279807324701019956296925581696618768476534401862773718955218499198779679644409367893545291814015984703761612675674152784978385787992905156105097241489879151531401389865070349015577330345934407258844170659688139959935024059921378671722142285148374355746607729063454156122085082712146165657948853991313670986415101010658168899719180649142504561259781285481713385168777484645023816939458620413203043654424880754216859914363736772163336948419415753197109039319222645446198946844295320272536257724712980097319613110226816903382491067029277061732713573223918121377563191553597442008578106826110374834570867863254975782036493444251702661647350004002248330952761585021954850134108935458779859968100667841881923716179749870520102141538227773634769523009500610043676326769560057046647315916475705435868818024433601342667746822653523782181653630001593821132678706515358854881998283756072953724207975849254310119502834562981894629139019147223187280343993262294507363441623483924761484058781854252213492220255719195142563753794367710575048015863001254250958428015077417305467119691800526511975577075285579249263747625090871143516040491447810917195738554308379266705108705818983672798632989560099284494309664047081772735029138306668257157549422595298483550493944408493957014300382428308489826066159365351523543346330015963289076087193427358849831935477288147047941337561798482692323028441729843264112434597948007926818591260299134178846422631659002903036678824105498213409159596123507682569109617990467670961912379545589691259566297669840881163826125936742310939379008679331790727447255342904198683809206010348090455947188943600403329326519263154444827335661643516595926363802095545647283562005610482391126675488998131423814674637176818973894772694877109473127694815721477079737492747265081001014078700931703884289773743206388209827905985023172609905926264525439976198108966804110367660693391837967134802245799578347496947240347296679677304405980959021512302649386089203765641951905329300873233674455655817108357739489688505586081731913607719619377524530342767741382489176805984132503664714041675131094955139014198477055132382218336154104751525396120796378331748646595695384649776421000096278917927834762270338697507140646468918119651795964467712552216339838443579962228561918520436030453890391503811564785729817846538680170269322502391548424498949294847028767163319143699821080548753307224135141797169276993445466473826475210692746350188381153656655906736208692614500664118115133608310006151337960667794332697785328835807685003934248830950056337550256068336346998181675087841938425053833567846478944579907087041167796377501185983549971891052573066127658539442382929904434899525945356400691764946743197613913343182961324180781193240809206728462109942376991396187411437933874878488045227958816484636572872456413368371402131264632292451876836175269737125841153743133790184805830925130302018256041005274743895849831771448733862978346941882925223849895483261062751507905572306085420234780875041107592758080713849111936236988759873395861180144485275613663991307380089503611088830299996055805869823533439119992106146950371134901615022131079314192991206675589941903251861182331445663914197572307846594707507035512899095126985632118288630047354660453448812094772315188073431054037432459826847430066229741665219701257008761779746930100570732062644069458121616633077141099523783391488784460047898520602970130200961921529335918183499423606258254881790368619412620307291021145092505674478181426930187478230566004707415788088216749037915158006352908378475705440321934745935379057715157113344227016008642208046023070387052397597964007782699423727623848608617740637730687509848166057887861049647600518449337508544161690925226722676647937150561293099998710912517316198773070933947914024255661859267668314919668560911370258365666593288544256617909455793128375022838264585142825994638039187481544618540450316589791847443823240363036788210654555636610781946828706697307956513807559687776861861947687702350495383232039707243126129565686264691693950171994245689434256402236666326528582634576617772547686785985340691151688780919065866952049180931436249603636397780247585048159514109698965984101151526641997311012623567689525281956479926087957652057631507915304033353321265774973625148862242260432620217977113759407507824118567131104509631106953614742433556851206651360801556778124368669532631674406338053039133801237481398149910333833160863310010113590193072177126711076778451523693551726653672925172776961251360961682743838517530463201126023784366465449086180665726419048951839404864731159257867084871928241520503411618825667492506054345922688964657330189212276908285821856861292373580170006304342565232033201197874914603900338463271573743048478980707855374217479506054262069944920529568284970017061686245484941606442703917423374879493300882193015623329346849185643614211313607487139939422370182857433363013410400329698830608628746333321427374397323333208035630539038173664579027625148345517766528009562235466078729174427658995454929528764314599346487355987324123549481735272720373270778637678383807045419377778883211894491669118987983217510441407095238085507276270679034612032592042702387128132189157822706076559076638337744271882621572546379980725762330767889944925632065682779834668331493731916915166623436506746826564865392864763612484676290717995137946314421687485278791349482079491203460025292656408569371978479962447662948820853352312856270819240610250660242887568611906236127306336918950110924184973645897927864907512287528931786389056375488034727323042918547912235485914645927073425248381954999742041964298419185404780715330734930066274035191790497872841668496649990316792718293502694014720318935817558169487021429469649287895829891588191980765146411827261897235279605288915981511884437427288378314210377229784763721386276894803298187102453355453282735117631929129085089522304014985683504567387258516140958946831242093055353827861686020041144681256588070079735748243529458070057453661081022793242783797183121139861296260099701587576775340492959313501251129426822151374194973384669131194228995865596203315566877719380461423368130781727904363564309523037525284410398698792694870771349222379742954752869034260654853400175654253727666303232358372024626676297595398569202044099520964770934935690776667550864282388821974843118474994142655566222249684518364895175213934567344708232226402825156177053405968707776545305842067413240979024993354935711713802577836070203542313612033803027495091474810127285253139112571842983784117499170868233906987303361370480939199774345992606296405557867696085486006933188396207761251916603879704493217117335548999673975280958015710087306216696792286420754101366710389965998969277299806029843727411761553445268253729766996255808267454783793372888436102449221392790010859630888060736356899886320672168679847227068435864925746877140402979732521697549811069340589807051841433533079468075876700289153563507728060822907093485770141337690922421419286765156403919032789306332437628381311963699244589693779775530997037866137382450402561525979149966172778409669373175726324421333874786502925309788454186217252611021816414647829080359941126040390033120063996223477322688559284745661794023778265481029851796839124661879471260559226340291040329544719409278715791666950548222495823340494264377544660067158202867090771335487334846371668068550519079292741154127454151375810734675039187955219617650957644788189176321474428787163748669175433968655369713622290780975742238979693308314889671558283555222575680858975041402238431051773135991279656235656120820249624147557303748132349799851944946563971669793855315759266957684090347024585086522739726153977225652563192240491929522829033209282934696892806099631773652654601147095195018503374163619299404256382345343084174743014527615133501033214162796841589788659073272538044247802557065870271589353962385352944189712772170001924548026077799225316441890325178863068042921748670659925582796891792592577612794307940781865264123575433686046958903593050073542150400939416867521860330158818740636633965487751172657076558427786248574860502125618586643080621697632348406492139574972261374771211860538903566311759367929342094989192371551730224022302219432573723466342218366021703542160151458782503004262420480009629337656792983663936372825626025059517517477675575143141261407355901019210026691725861329702992163484548869696492522640190046039400466086386259909070914095951214218868522259059625371956938216739576112194250409017115663414521846839926433086403737421793844355603822253894868217891421414201132615596018355789537005114359606764061334674471382108359848458937988934710503325892197748831874411714506319272982369115571763928177598089472611438149687089417177928104227412472633716659339292701205444934513187924603390912892517062106117690047363237950433789701104607637035818696622410062659985984931651524146771341352636952435150039240540665828011746374003648150174268131149915328782879011205099078021206846067018636530485737650967788010677057617026346281069412841468357832581939699191680878430775650327597529513967146611985711257188849212520402852596669613972111448606050018153963251089197255169049855702589635819308205354384876404874240179514291554783165849167486802223395008636618964314135669432127152147033600412616493891436052716493289569842623917544042266425672945069612804622396094249637362303216406771489759109808747685249610080810894760673503936243510505498260100282049276144822401274110431412860006881407211099948073396202511020686639527573674551319682934504197769239577479130963303323754820276616963358919352199995611114152189230116827385017900000620033420105526087279267438836291186465238144650873388007229400585370801873597645535299930466881965083353592202292328913960258490372173252923970368796190601107208588285483075645910154141758130218080116310089740035602376158007656331277530413898404858842481865282075350843601405809426689156111524196848285362943821763581956481710661353929302923573415464262154619398018604645509852996124855018879753360032263849545077787725387580262342779035410103923845617520627597596748831858425434400839256810202657426275791102137696106938203209870870906640065829843890222785604252521189175968793545345657438657802003931844557613105375272555750079120115189974056682705418832950182972322298719373140389451985570654870044809315220660725475231809286538529801284844256273665988858085067791613306736383116319461564884237017918490305417504055378350851111147065917331814082058965026022292578302267051363038647675938544820326889681620641747140726769316339821846647736290470243983423119726666285736284583557963073044231349303825894133133060871053644691300216514856359927910712679452560047871931032390143377106717803645807404089968537893828736711457830976166413792823498389939300031177985750639877497628815158484772096974048116430820446896359095564526271867275216898911165528587777660145352263011465068344984503350750433522126700206380253260044327059843677934713069923792118511426356307138075157918309560019222302341457569801509487602301217516684110371421588045794173684685271575293674464163013089054175945526065223856937975145860577606671442804819451832419159377268452766450681870501374267972794740185997252235962971903785896473418803116142841607664271852026616000737008813941902448104441149935846265032376294858845838408300182237764948816652854630861046359569780658790051369404977558615421009587745831856830307327884895664347336866457676484682812182387786425957402729634515464805170738904771783853616910100038930129387221367366767576702774211966046084453941512849066878796646343024610083069532543380899261642917289859267018287653046655349284766242808440282883010876729308871880171591968792745065600618955327184059309605746411934764710556949560010881511504379036899491453518745734131085382641470478923588033912876972960980253806283581546943754964931310186299917224750793901466122894670948218457381824078522285953732701421000542391122114997589027317665049622270288745625201641284609577676760930212102368753985760162978862071238945179642340637212594349149992486751950464357644844926721824043187016445932774538308977297367819532097326284660055492592096480742880042258284059204181739471884584060582734017406406569186311940395501084416496443580729327396578686896698096436976085770458237777730800271248964593288967763885005297179272063496372548675915887888213438262087388191501969224946338810190625491243847125097705137590956166399198708674143554831517481308744370304194962628133916575442430862807158961658518388304568454654023010651125356311506273043486376756546706495021502023446613839119729269788108533368954107580015513918918033140072831108805625597065293324846178074526922072868953623103562159546149659651241110370601035227268073336693874504920753117820631201681798514325716283131881948219503215220423288128882690597763183757037186468332385203183768707433383159367383788562306367997967333485082753640716431499097455526875827146900756339697120414682977202607527145197988671073013926151280843179354630536990871643258414732191670344250589643669500539266282811002435562047209372579778706449190891139249715935902131682010484424601492784282970835581762875041631141160439494359456870169243651024492397746741985228698449276691384068939439096618826891560070547984173643956275736678705134121864179042971152238977764850029481145407349291973119229574247220341860067129566078294957947996386475261585671282964514399255776590055525949407275535789335363912768370058918714737669736801130119389388023711076047724211032406000151338780670361998570869577545080638841818851364616336045224553003784801935281040028194883438856127067606233077340107379959860110675214506686256140285957891421751259960467255886348883315735942946403787168174871739808929497445625522303479776253471327124867455295015781960920305915190577018570737279334547623596215685716687242030310504875203382001696452763461769461025316055072476631894875186682485084364020394294419087851431662873294519354822506061165021685155697158408483184898007610890266944649100252488989024491664667748905060050892303884374090116764516694267262533901531864816039793906595469812783286572561199938941762435067309980744201547829611277369748940195159445664022398851311516042800339433210827312157710513051317864665415176193965346105369300475668474180384062812003186030740597791287434756229609999229787305673420089672923900640446346923992708447122156788794109375918701092762536815236472561400041773325885244471946337938608099819704125807687706580159022897956537069060290658103673860451021476753521780615100881660650165968642477355673720029643282198382437882112136524470411320592000373683253702912290344498081374039944374881067685979344089749961901530813384574491905022212149651013665744445569926784572488233670299059720278911187198227211907536491543244973340593097125409632201758712103720331538257759605592945108036298802256889421166674012682516172329234721442346210090858238775655347529512802073283917873210418694056573448853813388005692884493311844446750828829597355083028381338174531157432163040950941714632380374492936946938509562367567561363331164997736190346608946509721589946150327485464054414255025926136120256139029975058871799942771686117755474361310456263098183796872212089436786609731115561539412363152725597331813980091410101752123509486874758869444698671812107275921398073189049542891015587118759186876919999427313835150685908418338479767981444481084090148854519056572327319511838081348178980309193455932886005245602869196780902835388064365404829894613955535799603357000813549190285034760205936435415942985540945561245451155020503912605880082546802675351640921856915996690839845623869586885045489831516137054851845090607522387285664864065451974956709595965668773659339309331787799896270252381144163150179063059045748232854894963913887257454100671252774161166951126421755265431695456890475719567706507468058586750352879205901374342330438913733329647537289434134968637819323836280861627137925833282137870101412065415520194620082084025694381137773777808876646979403489644137191839767275576609068446530647199849502582154184283266514319428227011460936604976769678204192385875124651796097221391545093751166451868805072719311618909204899763358030575092663642529750960408290375738271602208820057493715960288611662243783951014406241089405104003772223672024238937646422415996407667251690771591289600132384700372449591065038930461944202766259974762598799113703454266595733834695659261334754065123054601325177520411934008612637041087934028910926303211210267306402313511114327202788801289620027439721902699007474880761282984928953369609965518969662623698060132383153602280793656219024981780866913984715330140303336095448323136134174478342214741035428972795178108019186680981213770283120780334472252639387317412589437485358748643020241579036221525913119760266007495119148780558326178376229094728945804069448229830725682017501517592346829745348442105723064882166758364027544405655247480749907360359099502476095213459813043880038480541998869718305431422306332510439878581354419341298816019236382280950370916728544691499677288890515861947701341892556505584475610341720879102840307005220928975963944819345529955597084173806985950592009840324264037192838377620411587132489937015277982585345334334354502161274027464944948109440354933733016063074910814410317820161384147332638277741499286853322888396258972710553712913678097619156356023883780325853077618377463587666829327779208643817633601385880476065979685062268330034317420003680756688952471405797708397500182192912717378152352653405744279583665203317134086240024536356902153068626525298375437768787037204053897032795640824328048578432236205944550153990295000430935034253563957931613605347553889526135222161961092803531462706093935567231553057455387541224496624924870281351615282276193910599350912052588646803074388240901921972130153281328652224141272022760365739021497802767065625553881247875873127484024942605841887997229096919096378943316531731322899668612427347885370837192266255343715952299707568542298192826606031240219970157264174478888449723684624889884522795594619209652876612077822828320269089514800084051402003779323469092430171883418882323613342471767834188878776507523113683777115153157790245285094616795580489012694081950975495229285746245648589029615975955001568113454134392260076753084339496936608751009449956819873087679519363415163017610323295806882912424038312898708022466968591071990486467798913468067125798863513078357025596624977125254757353086663500582101158559571606428591076170953482433630361790332922019235583047253791133373575888230978586897029656839125431106257907076089630446624022747784873276645228165132334556851066026764721763569972632051612487988382183757082112998043915461539280062479210293524395831975516595084326869018155094993378790498770129099665199341502219984235669853749990371147501842913766757476466901146534705587409244313159743207917029615906225242557974042389941568276522595626267522933529806049275539127111105640749769460841385703062066707482403469736768698323291533745085589167157160445379852966029137281394034090237021038662444432918463901799723432048972145205603051798615845282604343723469389214379403356617189970530303226927080457546998499842397006073259983214406429893519439303895188770259240125612432851195417455243758228980201641851642722970813192698469052795346996501879381993927724212942675806624189521051370395419003330621515187144972705244245581302973510425040462890219253516033581530007673519998661216745486743633281450909872181605762856266646381785579607097945582510328620186630262680316369252042858930841947874622434572872725661911117171836696627193377487624505378117476536615468453063145669250897328549175017030527555670229534133049646651725575006210923077589259119653422958340870471357555369966204317185017393104109025626731263337106484020231866453285513620164582965258516473467916141645849829098092134334164761377017968966258963078698665390651069987228233823599761367732013470758079616310832363066378045066560729835580726239532565671245451840074492936038923781285467041133479852857556371179480588337735940977924729918305270961356431781714924159234504126288170089865608473605202252685702815511101189327652136167753929474139308511189306872266603497373942745126633699739366062157057974636954046441178321692245139077583562129895657043014370594177581452970776276575756769393365054579427298187376982716305050483296384863148286420003785796019634534145463444997354928675182833755910585595474620473677920246848023803893487549231371725889786546955743705716528003184932501481533807488814304030427887991605681602473587184664839981756621423541546713963632657646848872904991881924696171427143094481153980145012888471385457081009503754529379500556692586600869061322423858810881426135317399321766631430448499375027110233321933267088371906772553760353825257805757041387702486361694137940491638197326836966491706347484027826922430238806658295431073123857406668275329315865898481103660266079587180130068168398209058245067523226648299947884639173837605410565046988595672112398164056955518847099230512693750360560840146334766485190937365165529438920390173995268388117402613622156670915387982826136981627565343813691298344109814601191847170628096587975610948829242252394677294116368161925944357337890678038375549643462299991501497864493141578934439271682375969308111381271392478886734459139512545699550427911278597193854509285051353221848178567461907881194091502578255267841865587476001317578252473911830601142913483223520631269196268205752146132526997546543142229611903889346497505048336686365610748479458256035430128662774242300559957271759853849676753597354362184983357012232124059199789977420987187161198624965788781494914559784969549140691823008897362798491271444462399284697073821403108027111491614278313215267082101473197426405170104422509907855549074483074828347403132164323061208543648330883661107179054523999518392220663106303066955378393048706440267971570582803875777618899414815344999418119783607830560214181275115607671233436858315977308552918386998229559711967730157934048621472520555675894964641954516910820114762726715533258288181638365748225215412251699931269359512044856153831333984737569010195310769019313704160015214353921473609188235754123081670536913386067257938343868076373599003221090098372853312464304797697849750549802092540731116723324245184365893389089023002315111813993438091772712557122889268814307579603827400895886175936908725344124869073987664994664575464996829488713574577945706589663075722756770368177687370110645705533644602958544315395505478755639000020407715417855534674597680336718719278383508054161337187524375385758896644490431541576223072902209886814117293662643369319914825278417847131405673822689647495740891037067284483030148214485723986640890155318731733782712944978537003380040631966168923121901359852224570542838847475355620629378601273444642189875144218791292714395460833990347734939448660964486275597120183598736533317053709952380617294592060950032598474876315543888632066450439876364073878016826409940302656979242960018378176619408023781395221383031143098354331694880610265751824545223480814511950889670853889066463275264148480629334956138305740181893998485985632089902462998647944446532249323779235630135394489479855866056933785886477380347428392433334812904525639367195141686023674920010009659305643668925328045954183954464876219120089632493106035322913303176652043887188122834542053653331839171408718154263029994070662614160637452601737024357934773132130995898318434673584896865816146092607392405171596076408122872190707486078158111640294806483660619826543797654891591308179404325546426874345893765994575546430926254784205495233223607954450482563027121280426519302536580239460373006637715343448524848548725058355840127747394519848122337194166165133958128079247005551668470890587241276189443473104639377175768487354190819060109385195752050471680309318697211093932413301923816606327109861386950549738856826168866630832687659766735437881279157803114406607172635767416193596791407997452152873221595659169147660891139393832189044974685757115130027691986999788930093324590878641382035643445322090848918285587244965643633290413217928319498047503370169288015359293644354445400272778231345667401636732366411336275490163531058913304603776623464081163963573913180789173395732552106872616960885537958973372707473775497664055609466897647651849659728628155155339285675593378780400315354654769487477612163484895796203615334142223254484316088053121440176210978678907855446756476464469256739221350495715426847859880157355226510757982033411058705698539682855730844636876211326493455478061368543078071756094098751335788324385124293991281221622328408157079419925040694631017629245711293340636710236224625423328616860434461113069310024041700029326083539526029683202559890099522134179950411849203434590347563905788694332056094075037337278508097455109414982623924188175333169593739568394942800860608402368469191490593837863049888560894893723309504245415455019364688265342616890412623310972889286629727742476621574096059173482570872094542376295212673614559372405142728173117958309064715829583567665541005844254994001944102997677961935863966852320900101202841666033188887994784940788554396525097161273384585752711617264144218207052328180712424745151115418019844968791510286644181228851984869766392918957658042209288721885402423812125920438035521273120582727293583731598371486433828703328832660216452350289280452194588931970392766209819296646804602327118861657011061284856699434049040171170196701349665184296744111514599808511277842678855888549484000186389226065156051005447284400322002344079611764732313152915459869888028492916977869013252750607080758918345544025630402865213882266167975026642184869731032203279723811535920795221659044014399332427020735551558374097282607897458749286776981821940445815236089781904837516880822397875145826676441763811119010317366425796392174409689635049361196867702814807890232031792541602914454256368323633233693655709410511566492404753739988226797010613705559718640132477836486612815980050200231439264251437445601113050857570676948489406373535550838615838773551676373406855836895031922455957196698194776670892382750422676438493697125244539562717468247894273453185505107628078986680713728882560875650921948794776239449985558899356203553658808319258938071464416728807736748526910254933642368403238525924941246114115034510455861892744010815986298248986852602444416930494060629379700928348061304637597792180836209711178409015089564065861112611947143512541872408760348187411781969086933803657510696756591941183895475042228581261294673913871178093396750295938491026792296843260726226821674040811308549051501184119074789179048314754561370529233775581508049222286808592218013279868128611415622429424091238309345901984190605033528382232799165072724670251891752805357624857389523380995406645466625386099844536690741971556816509283636036554187092225183174837331633774250691727772365681875697409606099903092161580549123297691776056122496023433846961927567039952841605015684780217582097246459935670974552472298868730006714773612017078965181943263500940790819250114853929448586757804764852419092644353390599205526017783170085851834890104481600278425968915758365827302691864509003745929018947283965937784790117970765957971986864573591210317442984876391326202051233538374865827969393791215645556134992203721990004928286364247296064565614364979255865043305610934107343354835238568697755722152702529992140998507920741787668838833905936862607573739698134671498467639838727911657113297038887203433026684770351824980038223158940552007890763804249984311677820644250002652608101417771444585304790961900492371999650120387247211820634878814628423250402387042797647745526976997184873284445772078848641682363794215760093948031483096901916611987408026472788010937877198701997096609863869517483934179733265384790003098976695283168822448866271254233961870787633980771437011610137363523210817213216664600044472422649229872258416572621780802431049446802577503887721406692773378772382379040592820906306782572863924756050440863770727925415252742953529194172054065119333327011945216424048258621484767507518801950098987154523591304488486919424076530885170154720675590825605438343309007017774109473262099186698313154062703169772027426610139652508853920565748055063712623335215069895875284396958648072474088260822614832446008401584542247622663556126546994786237564315837824318582898446602161615526813772939938352699057605701848986402564787133281827834795430958292178564056836084278113084133937242884419043886298095323468853220159110905358115703920023981063704958302041584981676109924554170000245820239225177662434634873804119291073581729340240514083324263350719503330768904806679688461822683664317219916601749017105875953726299491940472035397287860200585739801932978497754610695614624478015099049867388921831278487228965859155419296780247771717894480303316974768322215361523441003167700840204467199401935250629673936897752313176595037758872231979510556093075032466983356054627749800892311209605656629482804642668403140017455474706786338916396259281946648573201890181179836192836372670433547806357066972767720079918071437044493517390162515074402757522389001437100081345480410416506299824604422779164443198189620809048856583096877128474088457251287962018739225479999125185930715411518740417665077332921491854457080423094506867984873286840443530310890776888878559997818986653008142455396039588475910522795930381257964681121259480546390580457641878650787702454564538073576473930946487207846599994165874329198965249420682666586129846630846088578384273075355737764304859854850071708683223664305097527728372501007428956699150135628584181410550003077543284398360162937796925127123447926597342660548426955967410865311538251616436595268866885800052422214832878923822350483337095601143150202552471888370889165391345331961984265857413243310942965255685365061973261358726815049931054899696914821653935618826033641350987898661329593070918844885620040327339546647988516091053729000485566068846354835589453808449576008221827447114213350259816198483158403003897497176151926442536219143198478634536733212144718559393779944821280265634698323379344089717553271468415949096458018121511707649935426336499563858391312328453038829816929213694234872261108439284760279326214910001432085256663677582082170924545606149767886030479258634532944378140434292870162201882171098165257308979554755545695184405496240016541102440224254774758420398256719395858889299958494524147665219959170347607714873419349109439809986948444966209309747910142680260958959373491659025537912976969110242978306769319744387609716707018865712894734138382791817267558650708481321577358613418185727914576526480534857429195887888221727860401440464752175934241128155570078055588367690996000913825410643579363880165495185198116153997084076101650568311128321407505447050231891125436042578009433576787251904615375510673523853078238696639948398998343719135126759620271883366243901891833626150073625782531696698479396579873878759059361844469806541525277134547526293249701290345872130222411162307649955185120671739515248647845010343633740740415241792747250718106811922680469351725301242924530245443980318190420283970947094079550307037052642637445784125077174563632904797067232435452439361970240317721830927249536008953519665165826002967413513378477748916059351985380390904929107474330308688772396106604198391270079593035161522224360509819591372126631627931685919443752913095008241272774430203903486389225548437283938240374960810981273321838961970301509522716665659125813383520420565791075212251934531767647402595055340693490901746527093846980011207221166238496692202329297626849982688329221399908423532552057865257631678344350840139127782918879132880038434168722790207971193228039764546557979516823789946970586990792117638288964916008660674814246852743901747085093770172932972950302061285398203780330656779461910022999478092122552238146944761890875672392033291939159453974923613661322351374143349558022880179594127756482066405824966716924419895571454430532706710305216641423083420274386251927333585641662991943023334648483059473147584979707338740184993045684187243793183543882931694848751683374732374224225157998834072468155937409039568432028780544546460123418224326927087074703592578931392812835719986125192450877050808261642568652900403016572074961742503176765117480303767385701026677605749184476784634549377337793442102763952602318442760728512056510487576749044362393388206919356710102270968837635753830715627820394319746792120583472414245669828251012163323087821313167335152362245033565551250191117452362809359962005017453827737364493527950528126051424502574409363061278251101976607737332712668171349609369090651691451307603310727340821589653837206863265598268639839856105626703596089762646260200497279842410183140591198815961756565957205895334977730935657289409500216483174484378231114520896771698624364701406521908987945812520893593854154428083107381324348208392373354837145773714882926298486619979091545094346469579862903919956997124074986001329599868742463697036618569458696414225994380522428119879715063249697717408290022795290232357670071059859049724864929463437449836730602174362823110117791158474491625228382217892916860889459774001456059132657292368568520582219382728774654832765612168703364842619642663154227491024464527267719303103142462641662732829987668934460354476740837889401453556744952774509668430646452434827010805419866835109063969861712234154065432309936878477698486648013435407716831864750516220209438684384620621534299307698397520933983374602450157301319715147768404128021430104732051599581750842750608900460865804755153823663194974519721544077220840835916879297717091723945750769980974888565037014154013125893574903436564183782156525331430195565530845065186364858039065501081830428411740662261139611588976544714578261845100699211546697068477938515120380898202827992063296092979537614306640102751839636016455797018660992350222435411233006122316228419007726626948757950392262883445026597449887168517299734397444755435287074873969665144801727147078326566231852406727804965740860581007527704115437864824909684652631328820250254993839586385432815677750196608613335020972868236100365925303652725223395613435537593914511694465578421323551885521586847032132754560604297767041402794468990306282098049656023338841275000243458139558006710212413408096463765264356470229265442915943227283700051034051058401804653076184012865624528453211881078993357381108664267928024162711200615288083508474765211381480374641066809130522155284720978853281632155186114510566592703954557646193751697092703720659359297903962246491657338623401357781185772270969390421796867754689494325171811150170438047820144750450644521592551966445720219897809199614336011904828340070330189327589433499122859535746911894818594692168865289871431175751696450732004285270746472864179881084497534774715869166275897839673469105408140922147201322124936663382399613213664577215229410829492164721198768979612793354383319244898573349711401022548933153038875163303830427576760753927587248490862975393008904950430318203056168300996640594897424102775525743997378596418467988285934643601929576654583149281319180501873049161130410638877875460764806466124477590152991047821404286608907301067662702068444345966737025261199312253356036916586208719313806274811786795627111196455230194869200367891851522059976757462310795542496396932164548928291185170001173844920103353198043094270412992308079553003775010078687490930916726376121768878441451315201921742548363625675677284686205649332366565909588509812873524396612409334562495655605855571982184432019303804578174573512975761699310284054399721032878964237485292125014884885956714387247237540972776433250364785797128677123857517421026443372817700059391134963288999277939705305417228873554445802316364032177038455524271206040947500572984191947735890775230260304961152427477551501724484427934065445104447239209397689905111733013443775384182109048616699564886266728666249915349038788926184966456513368197219814509773790568678481290316036114559060420709573500602429696916420168513321864611429225441087982090516627710233276707164340925513736587770007041585928057930139311492861113421300015917162235986899467951023403737779543714433311082535168275301773347456532623522782330125361646755063441389804866081005277719127503589166105558154183520082810330963142406647253672097000619870305411301016759355369325864841551731219707972626759854981241547268876057487244713285814941738163585113590720705087742025881216636057189216278028256454767115249817623750352547901903868135571137196619788985601057404359470747191994738651137277352469684845346724392522219572736953104354975026659661879411406491454464709386010774169939848813052867131192217990079820869325874328709358146169369620101285394212719424214712598567293982122073262785831409808268203908283683051645271512239932853222184690884636307728345803142754921853536306474500380369035422507165378368204641057858591107547944673981848156617025033821043980971792643976793752759680954674575412203098238659449242127647334637076113155275634640005170105065398929257645841028664138430242856827370663919282514497514337968852760608583996599669297839197080919702341330644058801343758369130275838650857529185974713191038468946399352231545688831013870555252632099687331628581314122611629881557451951389642762132932942020841820188423667304777100951201212227689739244256139762373326125581186876288044131684589361399877390402224700449275269932239684187210200899031827532375723308176582632466668499567591069753135386153621573999948599730560709436638154580271874532852474179597360546209962027451965515454332354038937621401951523385592453206016385226323169254899604415705370820436504063261049389943392051325570580244915816389359030914075446003463564369158092924450214502797177046025878482796860869695161039802128532149524986438023777136407589170042346894564687194090243409060531844405902692549565569530654095347909048516545952224230118181493680875635844391230593441161592845271965516141577661511121511307063170363790096438023056244132438456010871802870073425695318017645012051198549507502372455149481934303389260217627776526905590384098963592349424359828763250427782686600897920361438673245870620716083469085658645552139465045148029819550121396763423846136614641104637868415039382974477122798299554484918715865298425421952145377234165754644182571706849172430554580428576038142744594653238264953589042302776261671015164790577122091365489391273377911813971696873508686238357148053668891648401821568678239117299146601729435848638389412751098668926028150407271127990611162275447660717340377076806754020073144274514792601440524220354370418939691634620064949383123436077377684746070598689638558210986906294578155839260878962269616783343783765037097280649367178079404526215516894907405237181917544587965450589529992025622549004576571588411096086316551551961217408060904167563957628869558643120997213653431399395632063466206637295332588569785115980046551620452297187800443750352150933735308065337716302810432384347372406454271546034147665313800093407163948149666264867805711858120113052357525170650599605998797444705340684138947559770476125888168767915762369320019000382039614684011434960215728049258227620899405185519140079933636298249603332020298151748611627887983936731856559960867193583500071215503988755915145777586559899845489544496418286179790957483225109492302529142096155022038777503773602639586652213677831452038188311722970216402739266549555596855483171624504175002729951950381793246966263723320997890415394656895959755121268432555924534803314699343923382957117129951989026319047732893163749746158968926434379984088622031763279758343297496976403104214506637245044570543669079661089926149872029596678289592835801554299538484156395548284039332374509988161516041806038747768223496468452210431384554790685817498231086746735726491646637863739727416050045290714058497552636167864881872568784298851011666600457742189726434973357738534451912945562773194227125241515121256579835242468458430846234531836075016702941911792167346686838349224661344638563169912537613713519591038812062047150457296868929035963158220594039638602759613860996569288230664499167353136228075437929710683293651412902217697410119165173994369032724267007757460607076492629798383667787689814408435556504126504794601795723987638296737245535638186023814101524699614870333734476150258693223871237571020403709580917879888634462831235820928483415090487489695620752263405473436883367663988784434531075841594165005612394189911611502786694121574316167088816661779734368001584830244211881564113098838128156589498114751415225853311660635612756880345326899465731040399346017612807838031227189111332749690160226659390335962476872273841017054446568358322053427136633380555336614284667694747478900214235711526771050757141852462960312544974777234773977981045618137542263291777143384874844413373123886282832510061431702888065725966398613057091413516552552205058526472792096091935409874288245216019576136099618071695293826158464550283845040331303273341866085656355467050644638504026353709165961218947130099406936513440963476178084111078196420554281012102271603637259305525711707764225138483485622662295433145447160634823758703721972821519322407698711153648373816430095155733805574868236733044665419032301218123907444436424021110394817114947793908041110895236783691242792531938254846363261109218570211678593211649844597098011545553124488865999964608211664483200666559387696537655137545763260414479262525937862698918381661718290613872223061381738828211164982166133557325909334334928341621935558307645620870937920691560621590830331387700025020134953154061836286771818342755365301546037245550795662092131099373454205268664557092016243436991308386940082513392184133924022250942944297491074400214505771444089960858321019961000513580515920546698432206619308068595895266496471163571063366750686128006588439403546258842696467100189021766798083951813910924342058320667320666930849247803239586721855399857303410713205249414015471075997029414582584588860111945424612442625810942728945803215592030566082299938865174529954923313484376969831794711183474631941906970441395122887540126999418545741344341879525095283836979671165866468433178179291887963034032865485267148522073575214807585533723335344033109306994899352166484556596138598584066229290527624485486604501961890979410048460663321863743569975271214748674624102468170905158638576579622333008607327058766986712579569243215816713135193162108772332196951593337233329798077815119780016057777865252353711614921801143888235133515902209746163402239441101989240418325364525919291034556857525038044085299772813874568243170157097361404380897995573912509344041772840157504961583064804624994523908880507792468681868225796760402442401035691138616858059346664045531763594878093044545094821347694527704851919820311577495159207394452378150933134727278635747885378130684769789641704964048054496967380757188811601729374030357572929792017339401499121754522638350896771987773638436984521001388373631263815502600088549029149338332840964864328092475440136978643255326915226478844768503507984725976105751182250699305708201244469378266576138273910214702999633248738072393437845773244264877106703062925567822862872651355776815571104173097818294793602702880882653721197090151755702862796968786933197307319513659399888399745290734863461250251299435839873760218368669256547852837638043591436382472844253669995004026406304689759447868603437740538377018017011317713921280680244398265346333708362900597521398258902659208036555463420643850755639095651453812679540010174440502096016444172763905236641374267869510400335933229556588217653388904367393917563045014368764219560533580385228393610895879594920350610378765514997401496894853473154651963873101400327311508602100820463068038030735175784360683726584470649204377308175283219430169268949361214394566445291377279363253337120594712222138236760068215077821294288385897564823545031364619421297677632767600761751210852636960694349562950883168533695155339771203080952366584255318439728896220868028783164565865864700828405995205914077963370388480404398774501922140287105945578614788734611440965661703877259384867268001826630417215722924689070120339248738218878443012431449629678595413044570655909031690248676114897278599965717022885310548403703995306627329399461608203491778478943702268231699564449056956725428054328773893366495030135749297633491852864183002542977335682652468438960489550290012824186205155848405697991399268326601404915690476370823578921488663904436507365226832182002756402841945204924536570532315640538210062258262070606511633819590815272633751456721755203426922512496306882197909733885722081468590680520181905676813175964781310021285759214873151485803350281282964627318864201719502702211771754412733610385389601093341191358200999446561456560429333775163605500011564626662993858757015541003911894584841183290882375490110211420913396854252104884590373430161245760255443542441759442059395191992381725970706958126487771536765362751823226406776737848275920138298054254378120267317881544781843855473706616045981353697342044382806664577186632230540917414665333697502407297038653114351120028982092550799297315420417497988191908450282008971034754433107054249531368719197650328115984338218900193546280400147018477931958618983924583474447464339954014368966253241534367485042258725914297878706338473459800797670168732446709089609031684981045378925267950832927469906483544399236966537093904061937765519950651824369145370109677373056939404924255431263170382680920128930989745544197445233704714763284753107857145005786302011098075871953975607433509084341291610786323971456078868206806176507954783115332906718715555594305514141277678862813675713584002295034253911754227031111076126227496230992280156892780715829686946860014361680869468729682403337615851667606839272095528652041605391212401815455956394966957951267969543127221405550048646199121071524459452647077023683594295819334872472907960237079972307024193322913291553226590136258637611434975924575857245800129250540402536937382624163933756101451335163021160217999125023217791558759547278393674642501107750046038099621255176389243289184033726524972703142641129595854096142207831276925806012125874750126504753674740990274131557454082992330087941682906219896793541563420329935141696494870506967245472709108064263237695831793088684009817513179634985923075415164876399367776318514301230672307700482083884443129790979654593302208311733563652248600917243343449848449390299479459200107016368509143157707253802748178449966179111932771321115261946998615064455072131092767661479643232715258612995284169693783039540414313091594935796235574156514833575900272984507080615282346450135509504726387399278016272224762665534330480761779606263987096192175444952019902105794942082026755636548211294671823228778776042603334303651281433345297482585367332608307129325859339534652090407574036564532884667515525590742481421454405567169005637794483275550035897137757492960159262552707053081283690991708630070505089596613477439729445161190823802494779996020244139064550344130753771860954404355946995886538437889411894789506208918455805606956920883732098872004215144468952113736355157267203306507625078225804733186108017701926430558350789886533122233557837781747074857396290865194976215800095944091693269563174526084474174217486889094883425337929536230866057698003920022499861513926151020243698079887241399108529357564367924865821644494536903149605952971221054305008158074254101727086793737597617349938515468465886953286186718917750121723765392322441907661426867312062239934050538246713930758626354938186730912236574679911424827528114276260184718495726468708387259463045110439366565959062269427762565346204741258137722142132448743406067409764701255550268591071912670338558748485361044702710990920158387905447300817445002319426911683111467449011627104408580873511532713154709019802657696024810390557478986157793858921561478671425544642605256302541151988673021482604917377160713277377045898224379674020727402644423138825279495001932312037466946702447894260675015086888114980608269139477979641015005373423402224551343034622241969169602641433709063805893374602538631934746854277467198541802589203219051869001439216524446582081420615584024334038806593488394738661231829364599311870394717972029992273888205901838497286673145240581703566411414925163154768918293251961199845206077292828974463182468861626889648985900136791077463651602104559726162973084235657274656491175263477961835194002576495982808817145997344201435974288339728848130300351171930703896477947002269381721841384334155805066206778158098638504381197949497774530629773203624710341675224604798833148030819904810909772213622528065434716354076123584856271374743007289228651586815594336424637956601733663794410207859521173420052168811175063830006469245487251625185110164166287433466991346634161577645781457864593502812018987145369177961289472369183904339054450294547206833253204187892608586299030599746904532018099745627897535988096308021841229145781862352937091683980363497400245663828927411938750912001902643496771955675142769041641097305884057967941869617016100078636867159589777174707955649606735783572111112044236973935412667144096846636182234345606016793345599653664313316302531362692827695777837526636804823152460144169399533904804660461002545526119674427986840864588790636431133945278849759880979617791542678405833752648518976012266022024796506889971482913306267257376566305845249564897516231913676541330428495285614813919575084944188519319483764102693493631337897407133175460935732778517367709760693063031244656068005145324318756790114882928078306759037606430886540516371826370863246963153882255219187223777333638465911028874778488372530950643896897440431877660520374719924018537221642715049962227053059212872603499830524936349125167354718681270924833402378602154803150750511767167915991172297628385815385413505554711276101114562443207890379780138754238435550085402207808040538387515717423077241676944471175022800997446146602048731859938168542542403988795247842394168592500159533716190171938869102177489374729821252122006374122807814228081064194559200623549141582634264193864864033851754487144027381571328347359320631762413292286824641769421397401152830641630457586766804971589451809041221567214747897635719860909362194871978583305650947549258910713331451430514732450930253637014682685762376300364504311478412684454369641007624499850323731607156967670762043536003907700177536381378158589253897573000669212369611568728427175741067383906815206949664693157029611411955932156136672204254113660340248016916438404524679987182324676103499137274097748051236018835061842460744191159787876200489871526532155374555338794613070535965697899940776802978362901689400098555074388060152485864403859452387156319032690155733503042739840112413303939775656862088925236179826208159921960032744601533236861556618965397865327512116872852276658195788743770040949973905027387536312834191038925908851446909425744528855608227212317692564441591629111201364793171968183311352760215704995802308713908038865682810874670977658204391807241035614764786931903855542819942085977726579007137376215313163100858365479151173429613328831676012178318062229697919815015266644889296249042510550530353827567511775689634011793986878080812772909789923486726202322255099931835989361164909566714965064047085100395798037794836262588572388190983099809544345734771905438347346524592793337049177178391601441495218707047036123698720453003789180004972513377395167450536814248192669771050442273536796615280702493086865694923875232736120565176621765260846395496978624038100251263726763965505400550780605538607078486571737017012922754944634318905880616971911441829084632559198885051015117448637674933515028558434251966341493865452388587412675248311369999835270389007455787010646878756383924591189679533844992012427827364762746910159662116962188872092692599217308946126247179278777322360996740735187185625545068838732507234065258382447743944992027056023656381013256268992872998981952276491179641658542108138026142070096446525214231685464161736481136717288418703116080469679878890165102761355999614042268447259036352487290927684812527862283004236714660172896366075750654661078601238202668892563553518534137396966108883110928354378935123613902529746250980390297919506144728715574697145990676082447830474054298725074552816339732670461540670222730319598364926491977723873577158968789964920057315012596851555077979715834991256634136776914834546176789853669808913521034264939805601364321382007675129987250946142522136508111428371780199559944170914506736244023937564236405893474911424143204044066484053476040527298459119746950059007337314546690359743030648533276380879044381015907584177296404552838207780462220271196289903546126663240679585898751628844522864045964039988380214589024799087237368431223689358679739363864231144134663101104137796900378430263915360668512006387734754776794903886875311277700702397611772271301837455648042258899359798208534293944181267581312254223453603216458085371616973267869338352418815761044760319803496972186842341125657260497363987957502849233223231149851619847213967485253352128096316883304067142976197168226398239384132635588970738966568465617890754137405178970574970651578973137655624138616046157829997553766513520979654720178489397235268266155420228634781359667445885678380607637646566619731104362991363393582733382564939452237846483299414148379147809115627388424341193904291861865063859999386563249410172740473574414573595338733280796487842115063863981472203367960476235320327959201800190218541252779880898624156013502646361038802337793402129577382007905903398918965757070734170532132329031186878683472850240181456356190172541002203611723252871986013080724394000836096821825306854813774393528364765097556830488996231659384043790471927307320071484575834685723809626788289159243098330294255619919637331120253353565335462194122033599885873669139562056519231757896443730947839471418438932768169369543825140441037899752374436511359230301016176211297339035958056887746593578774477806820826353633402687995217750785539645181968695182765763403641228755109280630371856600114672018679917260454839433681998057416005378109561098864694065573525640129399206190511632351987121987545902121664396493764909524778159512193025027270480424899757188127159195120538941040583041055329750065063089322202281481034103635415181369664883171922505312092694306195297732233698019495770989923583033760143800938484193766578744582666280938480645287420643307672023744876555312997089309618354673212429091288562589919844224541982088743948901565738905057925398086933405148188496796978560095345814901453026986097338083370568343543055387749090128533965116246028644753828084241079189317966081390337647992653852356692901355266810925214935290743630408735982808330710505926081847904645959108088763576411208726676539978434223082738025270154569589585185914348264045869223473806992958822239986600899909664658853137456306345030413228255189463861258490954568360081212651256861715151535401159633308160839980579633105104991901499807324417980727443732397892982336419201528246985393988096729925130693804676671024254813229627545626196957244248743672323030369579321196558741981665882477421826986497369349605028126461856701419219378764694370751603365119504914898052124949251700381137104150851762128234542849442247207175916807317617978121539825889524440670805667417463623330803632147717896274738414054040612070860518394429891706287147434070366538074721294235256016020303617874424808282776928263075194859606915163966201355568876363509158735343219221184371056926089556939470670488251803966552131460306260591421169870644128734345638490685303407522448912365523273341503759119303835334531662517674315999682786656970603940805680453323316136672030114299434839876137706043450296733895275122976542814928384896039311218269300544168205102645006148050740737637053956821782750624619025108360377125198512586686146240871058926017312018281636638225051603604406850850474689326260477900555022567360969942750981645652862405963417697638509262251581018524517729114394390567841802226140129832928914225623559954594311611970514418851513032279330463612016822608491586215701683061297558588117450563973348242625217133736725505270749014631255944510010607085564531709148753934185555149149377239056112799187181830054149560584920625985957999440904038166434511996790935657931500928810164180022824009602243589525109959975009234641152106540387802459387561546059530833912571354815197619586646347507997554062097410625371281779116374849726057257242814959764390039783865185341973196899194034740419124873257562824077126643058667748197057919695229240611337393555820147706274510087890819561724182748035254724591407098941509110547087732710989533716692550970321653687045440854071909614570593182742811009724532888235490911412614998390980352581409686243814658783490591688013158733106732335732879640306631928541909922024496639928662338982809602290682056515447410073918793561360545215201432219083814351915117473871402614884109580419102182475479963403642167704589148967334681816280703186538138693141387549462414433686275992909186817650728643265947809190497468544813999679679814305161103594786200385191879537120395036846172321996307556079175396644431664169847828799134960264429802824066715143998908580761645042137171827426465972002013776623655009258454773450652776633666322448760889154888566296969621203499198666782202194739111031772446615285675170159527186001557139095913130199008984511679659186718269078427933340645860474610779995655399314504405758198860874215000784363157311459160013312963439781460456163898687696983433378947187032211790097258001556202658049065363257516937872873238175709902097654802464878988424740862476979420662896071899384944269374144429597811831453538708064728073785232332756386797939414808882691632363840178940426584616166460575161890900174300215304111828303199733460912132129859941221898342678708435436661246936733318481215455653264431754972021415541015650105176536556762175477372823060758251148746596091680761735422269151679066398106089726882895436780731064794770116795689372132517387474264859887359029591800392414164626782372242544862627676929222041134405208343261821380491195322862008871231096274974021984573959093280661404863630120903233396765139856182175914063349757535597280739811996018730989270937503842276535614219985620174410485255170035418203782960572532894959689260756595097363979877902675162703247147415495726186140356447599359146122183943326143342338446957327861853515324323655460461462474659491968247954864489751007702890248326774716695016065841922628159213963314770703158544875113028238816682440021564319320815833521697805982693599425368112534613881258099783952328404345033719767537613564172214605644452457499173071683378253400576390798106260364048738594120399520951198271473676069146945401643815402328046612905388023921046679217365648749434816862774423145460002877635081265218336214828730516025909959213446066757941386137694166996510626060294803652476157141585796394467990291794164510490738986024710369371898218526958883840864549131847061037039213353432008655710990080001497895952483591546763905043279049497586363795803286285569226552170782684603764223236704341416602986378819884986290406022219596173072358326635477021253901361765027928638313186877372683074653810434288434010925355308033934677995533552486513105078623168281530897206267173293712702841963080581370047493171402534650415510088659026880562370871906213477536336559892390518234288414060503386397970388532990050304353807619600119865017455611127329608022288978646635679613753292384183799069758193043724947667064237925038376571950067668351424501732030271738341981181984044987612502506185033572092085404862625091024176524461888844532641157636417542713527773458691802531014114590839193003552315546274698149746746584838511728065682289916370225812654034907209167034867224220330125048158334845464597992512701049053206928222023841648505345477001645021156322023793312980561218654287824568463910367052392819666082189329604028986592247912192574588162799174869367052370079787398644303633208640646015778558614974886156122360999365436684919658071448341496613929870820505386286412719087466726070155861236811145963873530250433857782850249580934014656248404991426360852978217515108127555669294749019260478132074120615364973812242429444544061762032109072084427541829679224115405130715870132629214723843879321457889575466260149007148575581094351179215332948330594920225933861456746292510093558212172308997386985634000759798645183429605105269569195371324220741471331841488120745969428556140364884603153846360793563989796958763098860191345243508868297521554921755850391149386939539889376244939996592568630083298019609895174476381118020573173708754233482942432315661525629374316671499249109396091915518561668881611296510124502528507699809279351821366254332736044990441615231287951410104614074413426261870602491726953852343223276509754274930389709551418566665574730501162863005990474293324517664827143429442498746196011650569548352903994796990920068959949383869014735946146956879533974882896710200146586974241267000660960652022767503828552597339933238050897784418511169991862857584835554972344003454724290740243485387120108173886005565408099728029251872673222730738074979755244584112773683163292981748958830825829879194350560011200184919631474930747562883745180040678546093687825024262000524879141333328979493953907740221790601357241801229648828978978210854406371819364172303063848765624704308918027618623119061703914538796986408813096029491035747935862136651566737052965456403765834953130901338997135924044476083826411650608658805664864974822392342903702721319626467724285786965076285874672417953807604841360122518527102990239583737957780182802884549104604970372161087194257121640837422429964171703281000611647054340161102696140160735097790011441859001030227708411623403035407044086955154600825284540722174216059561492141356481261915975327999336819146452367876127952742602570411451392376509743275012495635043966541794082881623893499471733019160830140983689520351088849847139710687225757862404510165575021091077101747876047742221938877670438883896168020423371431429713331619389937563653776156461551510905013069652851223660940702938682650792864155002151477641054736867643599891835313731657511373344682685646511705428125885874008550784688491666608829980470050535756511449025475977327116384556484887416809076205539931831542880025407834348764855491724493528504206040090188747788045176482232461372217475532749012697950602519270829195273016342402790444441411870017219059211921423733841158202158126560115933695151449718048831977074403646290424496495932066266946512930836693055789826131929773932578261264065244274963957469795699951540860641583738613953417975703945807746849043897584698924161248927511009532457228879848246488734408933783554811776129797213549050056059004146219410313090615665002705773082014590453078541005041164417076514474540601172105207843833903365128780242902044198244093671559235107630392676072561273505709367879381989042970191181960894212396729525583936620583612377378432102508468346563039063710484441360804750548085555706547540439803621394986881113923836156663239368570062230064678125662276335719384622060216582628282311241089610386716722876783472025690083841878999295714731288868293231678095387870683150763396411694701749112543239077695822450430230923213509878895615393149217691635277310479123497115069371506667170652809553862607156625066536748771410743924907387615006059086293308117255384508690350909102556443526948750626567787041132389531929835032790272272589369980536537827809590874077551484291225331641553683862154983242369267010529897226896195859412296286591079436174713891115612633711099080537100372502315799712667759660645238442260287017119441203636978271582090153294069526043013172821172255009685963293620805240729380934256032897798081618627744112021954518685402234016715948277179818140714520356053422056250014434315279880108719938188105914751548900465365610311332664196824959112574724153612997811903150570760637614830298896336903527029951838274816225764532009087872637551090267930403024951328903067842454632091485434690057405680785077009690653137674793595558899497908304447988892852537600383620417517539185660401376710040971552765916759258817593415405154334842989917998923799087076015252243480207973543904808087819084000402337434454490083855566881244080419623449434015297309781555931024585704741480804117251900957811861757619837635461980800309028389084819211867696894370263370627363188328668152469119366461431126568002165364824154304300663053260007210894848933699195540669515231675308295950298310412507773248845857190979533848756586152588665872543462511327365765805157334904908974352980544397833967781499408783288796031562088054732060215941352259806372677655459970976826965117002619196560333188543367280548645690136487671641328189740397965178415014515481260728616776489147861805128469470775576505720315040984413168055009706150920565170932307555723189011814801364698753443952052792379059081448259259184319131660920820098908165610498887560128316155270534745778769507097574759895323054434144086418606175324544631432139460456829320597001887327868685415885047906693314538071031223526973194426677342710706461576081273084566005937693049903518137059211500479997660634746875411822141915513527234832457915831136426574113853235724167285695278818105554913082683438506286025583086330153054168066235788703434069337507808810886182395397210431946038844734160386306487823370471302521888276024830668550034768833383513433045968997544484200999666158101466374985813273558207898279672617580779974502494198584753624994444078439561972663295680356312049032204184629652473527355720928999915680387207003413456426042284772834996195724829334890655423109707198446701639860162076309959108552616555088243625045053045868689276741819139425584074347958167315076398106024440612774052198160261505046232688602524424768284379894305959824285699955560130543083254942060049315557917376056523799935431489150451615988990512189856848665812030422367359587169503805771254481089599243252746235544142919765891671921935846350438599295517737324176585643862524754407852101963614849979369588792577828363382306040707847475359910916741139679245381213349224118483805223115421986604213360714810529707849925236237935320856068217196911842116842993758708851910643424259758286256818933465691225771339996787626091640152164227543356419189325591643299123993650772202509883482366027824906327627623076383630122475848175484320598759770286379572961134473749668200540095447905912816897099036076251879696725261173732413497409690310530182711102109520292130554734091802327705021456017765279390668994600047279674156339084386278360178559831330280969913009774673309534572225749796088341746131613321001201952499013336453865872683355536478366563495675174338938959478689315521877355726267536244819658021450754191138303817675295425390210249111928479838279777526848369160238621077309704874546517059453105536028677856231672426167036269978166688209663459376294690041484039038807748523492752722784623671244334403286391755164795061777467042473373771323024392191791789065154107591998366339593146297671633720945084003101627930361766836894498914899983833337449073263592153807546052928590816229922474854079432913832342547167087406225345826138727651125071262418953643328696520696153776980420016016227198579438137070787209816152237436839142489607321059151986484679930246799794502913617528553195762462820632546505019080038574260384589473449644642713937674708362985516825345548625899248734396216421997662535559403165978574024390365662624993183166336199179503229257254239473649913226025288228294813722577588927605857074272203969930898261075296391831834388869448052136117092153324843049223941047896925841963535884341445497128799612697171342397017563726323553526282452080140128351770017251941921348001817910358178302704207992856986535193229856988213520903388401125234316771448530144374910570272162813814224766661175238247566424229940546588268834423243371801942948698832913483001775318765421353238578003801698451339344900710881836169031310943045586243085362939125802946789759248691440074802626626050289150376589117134731709292264415175668966762656479593635100512732225548798188356529170361433674767315937910587565135064676787792959338694287091035593384584137766753230716712336361367921936718914589950537230575878555692460679600057336326231921916330857395041924126605000524746037444767932787504162682313073539543343632408769724493337631150322345934363192266693770944971694879959801881663223707388237977662968814359847544297799854530049341038007058741360288667208364661229750625408971146947483293958217238278988949367904138468640073204764013808074814286025562727776072815374160759465044534653096580757503251798570230065800008357171484438457921286886027208580314022345340167434213556873205996238178756346497774624219909352848024789932647809131619734919635281364859480540784266728139156304609445111835505822597095161241992876324700574965826783116195161828077869278336986338159565506207924859727878679527489999242701581447649943525108782835826388212591375451757719292985135674521074586591092445105193126449230134412232373829503488933267230166343945922564772381170229241869681449561094295616944008437376751992795368512988959165933320129148896098315406066644876452744180774547380278846165516608617426775457091605936421328164607891003416883953966196482744073767395133931504288365501785127609879465176068432572707716789480801234330321518898759526234746547890773659711064553047973114311869129714439837882346327000945415377483111480065495057629650382697293727331913977141015684860228684504695061538503165616032454034284376068995625593339182587689436846006181633816921043398450913199801722920751135799654481289738985601517464377007580677181300446694469550463321306467983180797721728055206084907629452422566786450311397569352023225138738610158702326341206087195080932245902788139067707465808841567692726115812314338904917105143990357450367098041054480985934358544751810753447811428154789478142734495526679873635269894596247881187061643327597829059919940619697675900075488526749557572301337764740807164881754584407193483624266012938333759002313606481760471045721269634029085359239355096509524317564038183932454984142895885886869675276910199582895053115475512476037678605461278596645364196848243423605182644771640175704291077365209255972188175892259983190117111201967553850621631513859800032990959175264260269717301905389043287297393643787430511131472268447315023273097888017407812393742573389822704718841214638530052152888535602425722459145619969133946707247587999871061168776518430605772618418447400958198229272815255999118014995510041156247716468751929350552975380845873248527064051970743948102709818703931742117512423339631633200986059046683971518668786928734503955129171538234262566541819249011725092915127879067407444630596005219531804568270305817716286141775922689905497703689257294329590160311927189809181304693170272646605553754722246669959498421804268170298169765225412633280562568807193043789879602532034278639690190728796463717648052347199297599130074848203364799558303540714556535218190814984346404500204325960893984605758857846504995080058133756147154576837175935452487079644829356514451823005340068599451383026129097758827302782190395876361515999328937142332917511595117529275760224986981353082192192562379083961378638945198737122137335149038761162802090767978930453232334505665093966456167227981828280811056644946323059887975164510253832973202677219145301827164285536659947162860710874393601797197388095150709420645505143872468472093211099470458685314106099498690446082925329501276904645215948010479445001259745643526796288697887166428348049130390453159133888776690547617534588600389515108571630701860571232971631474236961752106164408100348468329868732252021411424013933717393195118197455753336797935201682211803825003007748734329418460724651752393791623733453783314705695784683422167449818591509437136292249685067566200594607895519251220937558942085849568834433315685395432109621840100616348524933234495504268598704422727840726179790878012560565041445085395652010044495005401603771228778744904539169698762733388112459855224754783815348579596901414389683080939547672634256440485384564667128431101392493804250149409872074459854425044564228943650466169601531007300171522328013190518069850947866942054751577024516865575118565582770692599063454935121206058925292956241972624278823022890816883597508174983341275632001423048334724007983065015742784626989250453030173899476476196704218510434291170646529398354857699784793507999475904952542235013214795128774800281540430436341463173283034113088168405634232373291337085431345030174515753705908161977796160941658122767495646912292578915699713405950829055459829520382709844803445507061804131233352734134498000107360306406376252067273337979924554152009837821205745604518927514666648630092354146215451583880772110054220169792163994218740121827952095258611351524625508770470954313503120985821689091178342301121950671825564554883917980306835957504955894454669717807957120593947034740631305006247459772305180216056920832121421934843017088516074206085181942635418864531375611618146719132847633420000577405171143228547736582307931783515536130752472713775710437963539969907711588309847646772897439292438703658805854025905703637189304687548694561861146588897979956831959082237637291681747660762969057627910723021522923093249041069868202869400750040996880437323381822366053027450559003670076400825391886898393785345130883264754604858832347709670545021444229969815734590757181056065528444374480272220292232495459518419112642720432554939263968047300045533955059976908194456166851988649024188597822348017463551626805051683122457170524370948133638712711764183536335788701075603911832237658785214255842179047897894686097160792671604190460810655491382361688628827953677652098806541231889475819088661044060717176178862861304864240973229782002157127256704642558837087949399237581563376600804861257127753823712826340347931916287475928495559973985737302132618532773901260560510399581252453499698240263477969357441172267123981143806332344154624490371514392778590884853064315349868878863276209675481018350079387391191882625838825881006261878030593729016934610977397560819719997501812380261811310007835591738325687985024860768237074726418341631202347239484570365671137564693050338425128147790641448502330357340994868512331018284455375351104134838231048968865181109014041589427852623664307579882408066419182724069928261979162224135511834277970504576242155759906881098362879026570130216100690047296883765280862334492869296833947389402171102893405835444843298840671509099739745105734084809736393384641487741015504431048532125062584582007908255101542972070779642272167917466990424228590869408805759311126567574971272471072099790009061781110597636590255168578482512530163944725948556251223396474177178485747400843690421596573974517582818411381787476385008787689218740586563020628626859714531422317077738494453657411861307087802251301426285334487743058682422221670039643875302124865584805739706713419766517497110770011342211943234668162695977304709317163742840029312053368672796853437166042550653838532201197508207578968918855467321288621438516324384748647026997735521068707106782664507207640876225579021123939214552121776747325383227482063911871291954432285911683519072836357689539937629220925635827852943133369159742396678454131623274605350737376264662588451638386574378378782113521004112627965214461864753984155955085157147025112308882842176760269256711716452621833496573975346280809092264248115150673624263535778338344924150283766748794407188265557549411718786722591713486189167370852585044982176859050049844984668657039889874964620467470212123629873873309276273643740931007714146179914301002671411843079176414497318034496459138165731303458224806487547060236535654622987280971160372748292859420023322832438524266853287222278644983178615657830718202143023782537486165361282291159107787737994096699339962550639012324349889477642953775204115213646831376006199755375575229192682452488871388628881182738400502769628889664657214092101381366857035993012416490457142689051131716085126048473631285658105603712383671369082958291310663433664609517422801053759067950913732524768775278997473205062140114568796283002466869358064340237534110111129862305018129228557536715167707601702819229115015385369887493907871372472329404647725645465574122004156760267575703195193370193903076373038381398566642811640278341002157565147516261376004653588113290019868636580290389663871968335055808107365823549871431548274095453842540813303420312609489111408368080786032076662642148514082100402917067576801597359875136752235441152635575424193915045822351992457745907959517656372200178153148834005680090103689797015577972351758995516747794077806875970388867707428731340800169436768751063903457575636452965096900299364770917540827379844738021277842276845901075873966074074092562647059157405953834087532546745907674507009633206667772668286859107885340221651138019148882065349827840529807119175898187214225585837774328430243956127732563271717673988041266296286625409919120163553433475396150076871902407818631741020845551922849299538942195131839004260518260696658714226455149424741340712668319824991888518808806526136553565261661416363374544672426461459759249813697585906991229368903840771096384200226787665082167994415987087400657958789717314378758447794797548689171759960932327022951720866401533244295885918604174791481797817528626144499518909871577014940546793769889050536908325401691277856031596960802699713916360348707197085318971177541537287506009412390165992838684504235531846823312852358810744111178261792716790497511995041028905460087360722494741770084013518900523558508679730795759855282679985593496253777578868126114410087610283040509734422887692807443813160386317664509804887811564236137042147671941053828394451652300476207078037473010687048927805593122723545244240479053267761293814426039656101949042109076770635910297292254053797176824283476624849709595564493586463225334811214252452259851793597763653837921615923628252589676456543847679587356692809231200072344205263857703666064339800386424206780599925622950601721056606204345153172898882441536748299054123321910411605253143168460887784229109751155743573440515868671560583436711067043361344694569639608361454229699191663057292787824171808512436884986644710673433413895111668214761346387867482554955537006508769619923099550446260660539759062716282619010038288576225544559633277832023048268665567068180466878182999729016435918204462580137100532446813592921820289978928301361164129112991236489007668274057130471284969632911220851224979384570192990278836343110553510664059254381712993766474600815846019902193073347929990010364676447542884779017635508592990430353944335428371544659231447100063537195171364280490247933815495968738183395934641007228549824238372421326521979871502982309909747700928057191870778474409254608999642289393475353058336375545381211831336148341880351451486150446591881435361406081073333385040040438674781718060760345004022899527781547089489560966018097835320900397156991738063039872414949602060088801250423336188914827382910307650972933454267254264249006506516392981234008948873426360724221573884091901256410541058583666744839468258810709261355749606139937049264656112332787947911779941271282042774715825212694931590712231680760103962516898799695039304995714899836725181049456735806400569444880907694986706355918507453481348661649850845638695841851544696382222033265248987662900912446003713398441580503856989090597295728826488936573168130301099796344531629753326127239232007094278379913827603499200731536162541283679647696095482886249229736793080898390591094639006315197533992886854662484702617242935286493035487659133107305641754543874218040575859490572969030592659868714985735397755232508079712112748477861410316705181031458205162580462746762788936255894470771164268734008251436818444783920226338237619120912296387030156244673433895783805613750910388656442840761353327693846358982883053735916649041480530919383229917881863846616638373062857371454695405856153443538329083161231289435936287897181422329311174410091719766535391712935024218002431918754036824539567678033418015824602977086905933199483182218490452331100389122177078223107650697852473134917146040918954344004598530671004905810297738446337794332186083181201431290960040337677402842031488053310176937663122414676131273247958290003658182437563765704438985791930813101033490357038072107430361191013127966261413653742113519031018718371756410763110300680250494802583310819741411413090504570889628569461509769918275748499399629439517624521182056347764959101187746736454964508982007782517434074328531547547498580258641907203757159056167568469094471073546669935053372765352815312801207162839394647613023196577459113194172419692930280326949509882048401200730424951614461440393556945284318950639895210160616959303115362236998070139316944576093530302229105282387483415753519958830913472708738276292448512267550316772581957645900199504975849629455559776497121349632937108252446893331389792793612237387336657504284895584826827202495474328166605271847950533041660530521566844417891573199655561359593485127626182135164464843102046549675587643933204437768563042946751605157123394959947640457214278283347776494539264006336059675877411408571348021555814403284400693213398371082833865088005547556931417047576484379216749582552845264246532509398878741332776496430593395075927970242391247387819983015875491086007722646203745306773296677966389224252514493247929878875294777502957068341941742985181945324115286417102001911973327752347520373572609346410924314439163844654639890635586992135830314386702638372986707343431718178823337597835568553875030141768282444640188680530967580821676150532143350568091293975067799745817017079126833313667969532986662201227920451436079760203729238983832314953014147279211416908440362351723908976193420860831033167488116117857942300339301028222313310645723016609907143970264583289709605300022123147799639757417073297808038531215447538222933634770705422829297045438536193528818459058759315194706851615500255191335141851835575575766840061278714742572287699803991765560975395504226059852925664071680776263461169961671966639224240825803982343579300542371605613913356468546924571452448532494496486692155619119286450409924213406024475933134062727074087589155845047505883090599811128825737724165870324952842705487953081158949697818635451676949805437042042652950604289280983370762736030587855636677362773897802440406728261310863050588229119731553587852585623953365132073610373082790566550645205293289590392373967216873780805041432774592172498626852082675715838326256500853863642643872029689112799271663311103366583379579078693041153265359451981665208008074425591252319418431626115091708413979829928267542103992610465253802611304185337782405240392852518546256831829246775703917347012054256688455096135957156789615844677932863683178443090681453094170380804645203905603129982880301495575415543729583788328312563113301986392839587066617134747976302590095992716180969377045260506462069501756351972759475301003148654590230080168302482456960241487265224214625241835314574890629515259835178578275596461721418459870297394691524196302331996128271754368029526994831840350793446115929482835412528234100245538902092142794461075630146882595153925600162269060530051636056921165240500002980802911066740424626346931151629193451582139270240263938236499458226828840554898717397034530256510692329845335334532940906578620913327278224019441667431840200525396855307320209864968280161707135842477821548254606186972550164093111994097112752767677797776960284707800366681884398255077317826993431850383140590114592375932972591128437704330632867197170002866070589780666078069340800625887590636643946938514446136115485500278545968547117054010745799561753988860296845493145689527880132977211894915536962988276883877381496164650247701992726219266709674511352870337870763800381010817094790149640646426223264160153946141389194259680884172077465859398119153753244164961315913722987240504935669161604682198220616711978534788767377672099555618753390326302233520846875413884669486092184585678886123032100380310003642122810544941225167133241059891852669686971428326747691071452149573181401820940044116887215856988481858604145415418054380584574967819881880864475960464705202444714387630064329484538439264452737899176085951425313620527898494044933773684013109677141675324918016163899823374956261165083437119852882620446676875778966908067558662453123047053854339269647888909854033095797577984429047779980169293051760636771279135523328885982081717230853213276314699004253457563011385894011140059181904003853372540908728565514867126345380603569445272834227720804495528969640019714378794130295742955985570167539087735230401354071501582005097656919286257396807606154523747884354315238733645189554415713754524804209379942636633023345202410190803096234071556144074605686817601932252050194325276518463830286994290941795331102359020679150461731482106777714526825125308222437381081223784741859330322415880388021476838888779757354219358977566380043688415614013742821707252732650770703588328811217349959289076438190659026072105041551999703772875518034211207763768919494905949935989214761526363327698290738487093804145144847501795833648958938874859446328275111486568682066424225142965082743542337102461610504156999409633934137958306011283844414177165249555252221908330388704354818919731899709164705802322244281449877516683982261408573554527429522151620014922144638584161945131373810530584644016928436053814697264742424159504252516492871253711079647668444054071686186309692086319792621925996767518797945181076670230931829551114370696610514053229769905825582332114496799338854510729525390924135388488895504988600761177265359275962672666620611820529429913495167838080267062539444109883299199271696628597948598364249453510426828250185998181932932482199670204256217676683600022224533986799297675674970429848841472476881318831634580485522933785924556183267828298987710856136550926269707909696405269256225802027095523562433656814406241107979949324237506229201079125917118288022541910131465184108685795862728237319368515508319394138800680255779854767312908629723825764927836835526127706127666242526935222513437567979111052956239429629486268928211938506235067316172024656110218135782362452049473352310388299566083215554479472577839680655535324485260091599287323825354058855413632837688720389340152371048227982468694908689062515425118541513243314836633014242379199436737180787675572688988993659318441375038277590143428189677002951777082083529282962122263900072307903408562465681692949692583741383905160946250972750972015640325252056288327130619350365561183395146502654310309406527089418556478154663317565216674803710762136870252591452593829467103764457545255418384525551421328638109820340709644832526660954577090741572499568860843853984646446443590591102106976659964284494348621720096860517616994617555071158597989700545423539590964672284191484983180126804532307577251546071314535441967557338226369804657956968623976201041374531480932507698986288223867252673928743052635311524202309640801616173040022392922873318452690890031314396131638397384494384868015495210136368616697465098654815511024121391298123087071779148966076700180674939100528925457508009719719455018235033999491570839450814982696273946078778842218509295245972751727853031577075380527162244657527221082943078658767921234580752043879990080030284343821456139280660320409686656209579558101772472481126103112341209524736248090335012216965388504236627482099436975454546161625919853922386219543249927307682022866421748559175108805096593719619227479771415062215655999125982256254739220498765590091141352914925510483441256844331393668561053551320973874449722633790429868789415129963766763996497657064737819588302307886379337047324283332350278538869262920568546615890429618330712569103028625997305221663063047925499512160325242483348962191767399236338602152954784090300154000288376367671024952212424071496648853777701309126534691956271947583170169752139297857132285449678401526703622680639364041712630046849854491515150104291197715663139323870284989250813865808326444488257393790463886932549854437222053615897872058904703626949824194175735316558351141845479109291132729222697343980219151849808730703145130637219779833614359483835784733704900473985721486388651344382360585793129913470842887857928716131148809248346096394919329248973099479166929083087879911081469193650224483111329554710143091819225935397360164660862559258048867869101556367336333656298190646067019812340620070256582408855619313419872204031063285494751496731577279076993318175397244666730572141495910225286367498898236035070878297990032515131678026495565960060765214696876701897235606669370531078561260241845710648066943033513093622671303628094108697460664520881100577825418058298268505965588800639011181449550680944721509889720491387835119488137675422596047952810890457135523199476475185445247304101049799462458202186305595160985645949362183098973525754320743884683473411490033946407623285424399520440371456838519289122690086221782050371834670916591061564085497574083363973571481447969598376532240412789944810264815868296347326482906252085743901517534521744782473053475268863224033182802808113877846892827278730207483942564578946501118414490789134033058462656363922889361505717081794850748545109839815587553615042355410235450450980080911171140217462816772079984210398480927646157529410736147182837752276058815393266542166655838035035135828592673995770316791714926335672376304742448384750967348672350536622437961382637218664801493667940433783883490786885620815100124051672398674590606354148111819885340856815897538945960009923769639941297672960732977563988806290576475067286054089959589867573391477342342714601139580283834027102746743973767930180980016790148571973065092007624529464750492112088027492493620611326669510335744158152614446735862195031690399521022908063993015059509894301572565397296693318780731856205375555308369513244000077369286288545563444046786905041172896571952156238691911305738507163455228562104651960529186204868578041912054846742165754775426458331660282447997800107334082712985892030718259654039425573821176407172907212584838128250297764622433947803071005610705712867083441126270383279090543203807620899846877953307002948225508175311577372729669980969583313372395460428394495950684187222451404973642036252093830992843834320573730411733610043671929063266189188031200848842487589144790485266429766296668680781082011678293829578013457880282855914329004368518152390982197967935570815793076648747240859933927035233511899459705294457302487065769332839661047097589076849036237699219149230777792906344183283801887528091026043059573609291640978576998292888974551268121331053671709653572920853536697987497687356724311677170317365825257883748733024743990586276090026989252252270762642948184789153837058217478661677527131571583825197220556435595600654647450457127245135335248507927569347244285802402990615744352939159383443530205743443842406650469642744044047878124744895467219471462417665888179872577411867671794209844688566631594312541573454613464730253400830719895467778335671269700162043906796633266018742685984160323593463735685752982825699997484650709548048049100294275336437403962497457049803277785606793813805969520614171995575139155750950782867122160799366401876709133067265159111426108052743302673137341567151967516009630212997200184345998712269874638554346336671268312229545734587076752644604890586503410442245701294331927696927216426027801718403973865577425731913992626676546517697566102480292288357248104373209017321278371487613533727716478523399461783770704618880116728214495631016321989472416995293990038119079995269060538430348690270365556250053423266360462962794839652721777937786790767815134004452413685858158460545125917549292775642578948860305653695290778983477525420513114438995501623826190084234002757759916344098697994322813165528890388013474138087556005491432283391997114656740616894328839165918934609115583509277454534534411682387839565419787927351845746719284988957753411887745007801063193001667397365686263775185227690645683155777560521516592318018116015525452025377389179557977478494215934372228696787407597896917932172285968055898776662300210563314215617531357323613907925199248226554924686337481663404244951631719681614187320206134029599321224377567196483572410638015411265283373837203728775034063810335435544855936990166595228997522759247781875149079436684426246390777699410061384569582211009011823890554835586298368416311451723220236869973545205053865187828963225939017694154271931649294875744999383559427025753121124652402361395475864808177491221729982335904439992923313688644612451014740948659933357675343143029436547597953457485137063859910191101091235596356681466713666687554761276327660696308179915893873716278870918720450670317240354384336990921441232096203154857226145838599780640908412529766018648390960868702181467890209499761934769958795475776626266935292139803453165307054712961306167897696760186901287760716811660031098715617718891754434638737098298897150389979407814571334424422071364652430681570836937150787112218758083412913296501775084340162307424060370420949168726125646184397584665708174607810623999796473432427050780124945820042705657981339622987682929808281295019791569526035794172412517300110081962470627147004154483279429597629383647598205313544275775467295103647675713540999341632765916656652884835379006711716703875033342968537241209904206990884405448261153556792195373302706381103580929950165594261782440691824673031208007029843335831953890636427068127487879443368615901267208695156723459192971975586071595342799479879739905170543883913743057972524816115489334796537145550070096279137639627578625505828546210648442470360145960280056257481011699868725379128446420922780323977869708026936790821045267219042632756462983776162161368153771388598366038760862605883691651678263910043978881389903768170919779852312109297098202444725861964141209174544863728650999760779691256970778369230966601903816665870350450866247554020885913805043786938894565318028364525975884821372815981297681853911965471794055948451063334743153002769998541555655788354941759066962864544092291983846312785393684068633511203140445866554577617424643609243757515930234970051832794635385952377241284597642897310279304764702506901827558331644136542577054448010125938041080473833311949524796171212682653923087874554581730218647677335280826425605011515237583236326690698500845121489117538735694718054269503584252306768879692384678171033285820710822627507312362336213234938649042811557001285350128105139028716279706303312067023538145374771075500443403186924469872707402940586862752670716601102572945419009839080305890970675989949230520222728698895979981028254563029678557255902989019797782475181215615705641751897231958467355704801277653063824563951081866568997134237611140004934439129062235757914999391611505778847366358585903170739893816771574408933642706590242595544445943038791596943202382530951372984534644082921946545411226242093337223859422423099723197546172985320264897162209641706171178494326979996685377962837553735558746187712010774440542189888467733802468332325376415238012719374881625378489292598573824080347585326379281184641102715700049559694243618426861594547108216449502454241827555562954654883313115440891352636734724852544656793540964650197142862072651108428055964721454586821956805884599196761271171807718235584604537129904447951277721378562871226755305821170901320621301263994521168228761346422828329813699408714987014271988383320366503897699856680107983177734907828995396348507451457890110366409143306573319204344614866997057416017265222268514768601415920000147493444714509821219549838834466770461462505696719868589850155129874807298538479587571187030055011796492992897787036343765532631159680130007374549605128520739417620981516055049537534114666561797478006424557679216545566485708624942155779958188199015931951225594208114639934081297802319010841706705540927051897467065855514295896193238285029487661019789787803316898101188440524545703988002977901448177330248370924882638808852862091421135088687077700930798789286259649432778954030362187892866202344642939741154728179046434884701778784765780919810083057790791860145185085875799844354726111633338006787163761197205045313662102430823200435783900604537751113957792816556800837391432608388298068698876956805653630488503668801247500970276088462273358020759560377574102262073319485664674132741476269259969990900004812911711411966935036127560788971314045873442259130526500696074064477425757521850987385538694043102617534248971782146712905103982637408556099892147923289225261456632462677572206335798525719174283446749572598198895499887283792153781583748486502421275513959590023970186606931966342175588714129335565338453064391812704673907653348801566230049517441115164602129536557542230721367758624501985684339438056160679107868668187946472476589623577401344378284152588366322852020522541708878421663104441918068762679945674052860294058406664274591373322818740021961153077903776685167709248960853699503551445389367254383426236396522155269753961186292420202241777423273195945029928340652594291096343574381435367380198973584433112910826217163468191596787656771575983924211919832824459197802430904535601472605363201295496027526711095753960508794874579525596442877245780136658171379003460431968932095259654485810586084890441819062212444295892609811106254337243502435002582760483291888551259417233663297471629808288953180506917571178914907846243280631550930355450099555380160886582547892515701222471855933300881341464404195684168454122849073107403827402778574673839722134282930973881875600182623488739371676692279749038964027730547357516256597299340053074131261271160320633550400892695372421510465090589346034649000538206049647408786705522608716216663700675401527583383102118505417803306070769022932107509331455691682182691916644455797102512137795019717603696451658859550978159407335460482795521512573620855381777285305676599338310210004119347466647282608708763112011660691753720099602204916565444069419956512181773914742982703433631263907971874156790032279646618773917721801888946166147748386499303974783599798166974299761286877995831872772991214931394053547867104176314660863173665456881672098145027571565486852239323783710894187666459119026614309990274048037161544148975755042165678660258949871051708699193135769653704749514955330352768058741477897841661538973084958823982818046011481780291812602487609705828715053559260038124466795139720809264975325875041496907237949914273233228227917839394686054803936329442962777515972870867499966125363180815751702486460266384395704320540556963119141155482281950284148028163957349997805010752543305778158454801294137113141559391544466594481234230177774588403957949449075991966449313103051966522733760366715957518535792453040332299230343564970583112639500266860436931086902171481773882087762535507615168206853018442478472957656769651194440448599158815460664022792761464658506343857774798160656860425132653650172466968160472071313502257282521858070400476139329437675904612630561646096319341446281074756351907018898024729214914950316243734185041002803975678982014746993876711377613116416965240260901940597856103805044485918052030210525770281832501980685683021923301766576836298198888032448152096845517091010970016503623203700670898546003559633862057740169512307563805203800455480483318556653031808868750391796030238993962193513768115203993614348949050190831197477577946934567717765873738662864202405522235337314262428695065940849288581761525776801554392811045843310026556419710433118132739949527661117113467641989274905462880641018621999023700947636355893814148261375415987783077013528781031101160195003227628074018005395512292359010239847566303625296003780501279028484400113843917084330833217129131612496604498260472836770867877434218294092483015425459721705096178978182749093340844880387467551809951495195661682322055525175829476753927218084558954152810423066474937672555656194155453450707904286362805457873788790051641648970496602610225365078276118516538776609199081702468462772243728477893397303770509055785550883995494081877991746927126411902379538033968234595025464336077830714331638501438494643587890377451865306859509477578336781655093219112497383589839810874278983544552085147029554458587618875016996187893010956969340557251972752814976554757315757317193174935811039774485859633265285468202194370115849138973677271701208300210300068354499329678630024454440880900150051329125265328742934845693108322929929404421913851436214350865016324821581484346782931556020966313981389663819351154105038170607054066929998668873354968111444181251353718849405896447250589500552933197479819418135226628195611196819031040385517626280570975938291035423875554946343004362197672267230640527596423947133548578931392396173801896667016310963984196662263932473945724363326759026086015223594185313272654001459872570389768917215398614050440345024818942815091246900250920443593634818819975623253157244550701042265164068064054309445756283898432097574932686906799222352780910804947516617941345948476847475411443059536249652343926383228565282202768745844880172918071320845200729900661808234943252956812210351701258071876428598943747453896908810566499595870875536023588688093986718653860365819417280282503214976163939759523049996050896345191145492798271344704170751538056480284811927157538024447352091311301251413774950019559778017872004311389657401201846206463147838642966260950144307904502011955987664396456309235848839385197643081010988698845680303117028995559264010182843719432956358968263949027119847272831288483416959689352143908361728237978947332166703840192605866812276680004284161612081921844734026683158205100156186121286914655681981583590832445345613460800827706023393304666907381958183562650087721937665359827439019412836447762318099483864486536340280039795367601690064139931968481950557686276823216454296307008201168024209701344859773164897329659616950773526218918818633196115372536129001553963490320938992184549288156507509060876302615153532215651325478407688418246657805670915628309116094540961788876534238856040798189657063188663007745276356141460050274527933543901103343994142232380450125911340983215283409326431238825571006148787095405313372878852111851491968637583883757462287753401676592727418423277481906005004394468143253713573730371516675936192125411478093014333553270449268322180842260836430409532723786362653884918897054196471923054133735447694833736110101010706320536303087656161114972636830538165622158440851718166326879314122571137910267946697692189846410395397069452231142508127826732885558445518832801192233513370383076286031734614499539311895218730616492269572287501252201742916534392368366814626038988308212978569574943713241614522187781013571626294988356015551877899198544519564256825463535113301902823046579926389902841343152802982854126792542269787906890849838871640412682294936586533415074782633849470336379655674873423360366903692883797220755723769418070737454826744343489544833239146842266001138981766481707853947971612475479388672320757472399016310375167579260185438215391891668382738350657744128944211436491771684903667842447725726118794845921279077457347784475849395401291918085251777034063939345051662065507848822635258543706827058105407008652738249776698601937732424577377580801054156988200492327692636070724940232253327182653117421675919350091939340641346525398803413750334159515901058914336752121927182604548595853522454620899340693329425480912406267681459507082632722515780466116356979007101210443330797342153496131734047383427717062703997123971989762112960075746946242546868984230381015870807696631164091565221289778809340402558149604399760332578198674242237467800970005632050633259729492216899843170934622625674339504917258596398082469072357109761724957665656030484438829382143054897587633729902663405602928121388228608036592903617353652527122905513063991101416113592294378524420023040199131499061560055284009905562090000156101951148597834930002339967795538682639234750352900331127689891490067277500235860634461215857590791104185130346918310903108037126445369255836663982695284514144962067778794866893804171419552050742470658108688390148622027175164472627976690910863048110310523879957704025109049853506582438814669578301753986788855554211611001114997183980455681822068672864366142590270112841702170947564703520612519746086015599269657751054451246494012234056935566911500852968514214928845157095655061184956516828494964161524512503291707573881352280706221209326558476073883818927305350171765502803909756613776563858299520852717103205098834989548359187689929951564642104456250421940299271724403191027543968488881481817887480629416487848398165102652907806385264199481239964229664766964427608445035737094750717462948027273674601505541869443140291163305999407647827794056451415893121870538748024887888214964725750445464093404911454357511057435369875456479457125610349294883274153066137454410648266155239764565450528239725179945757211985399460213770076289726117594204775637495892274124970484497237950084294923368614742519923601414044163913335703969175043582253728140577120050436027247930992870464367387358058970289995730523804748067829208304358719336617995909048146422933084916804492393744108813728948294561078620459840433121405686038530912836126067953904502580567186989145390535240461540773320752295795374124934157500381871416932418086159260613333903916550782116879444104956166511788611924639721153878266564896028814279286317179207630666901051084525283855283421285837329402030425270679453500746966891746962195882908121135246061034858606670412412854633683562846429109449558171206076540190980337177476302225858197778721452581016158358181377282710128766961841830586533682848866635686067058194927185161065183115409366290910179916766370927879318222191519708666249200224010476493308111745767951203692912970669823823252670336439089208303554905023325358516776388585341753840008242717149084324436316154994724952729587048747755733212692540102639644698926222430422530927360199959216424874130712778943487133748154596433091506418118530043740984853850737483573885780195674305980582789798105453717043451754652455681813455587390671507316086518417778958152828894694200680441998892500299608559533116825520370394583355277263717080451486577198248384637544463131119925907128838397295265932882523350058890716452084092759622051905237350549994552595445976107894273719275025586502937304372006864727262567828263934470709479647823314121675373903867428839700494135431468202848995219546132379654704681542575465162402786645303090686305753447334195515352405843074671872476491923112013612059583405288772272329567902716187227420901230870614720071866858291600398740567317334709416010247220476021074416837193858305502687557368354917547473558774027173216633198177694027881705064260224397795798804101787188553151509976034484076411412217667428616289106057807712344772513058727430407708725617251008815606585241541698855523189677548339520927708059332630327286451462771470421479803167822515484828384938939524863981817170947414838954182697868912208200329876424691527063618553116490011453727887364107051765323656305544355201373533687598296163580878787678690821571519498154324840788695323907498537849025409469667543237186104839045496742372660193586920262412576318240550029322106901897304571377310179554663969339390417699494230023978314519969340364040757727626316632656253498189120276181647497108160201678116954487787670620876368462605823885205959435372480029936113105312551896560967290400357306049430672141892858149846297076640363233387914026608099310312552413846169354687754347319544285457180803656443511939114747752660001193706413179740330438835989698664997776035961106055296121043766161591012311882197716111397789438639071573124505405061622612096539049811533522925916196297041786297139006419383763684599548862226089714177797908251210917426310121657219307311477481684025411157518389270222646920848686977013862192346238777842641371222704587659152976056752552479796775197835803895482483426999865210598609963158816968651591255947028650730865582149742238021525969684280116625847489499499497471507425395520513367367213701770018540286316783313290757009185368658833225737540688747335906391355163532986696186921778794071569175093260869232133100421180463366166175666692148469571935866243754669136741884202321047299807828845912400840725738945987270808197893734687044043438235534587486310709862964206404122367861431902408899388332957972203736470050262117105195661820750173857105876434822382489495069599502486726421312002806102757695540538646900090147580742871331397451189154208017494973036004084397805154864677010785068607171717249538659433814968099368337116151731550988901140457352572091342577798223542496656246848163879313176116981605277920718331491303105125032132513527012463399911247405786393841897479209008931883441970882654347584803529235070933648237071712510242105878650612544170389087899271298352573898952198842557997340004246246602757487104575768411786416163396307346931229091766117364571255571981139825949138329496286227044015132664109336418341054433172550603860917190089055586436636818687336488747330919166320168850035828669555441702802467319542710704038986936020386940936734317406955020245043108092911679291648363516303929599247675826002314221991256058090067814067403484095647287288854341176379879287980788685896404218098886365774608309107659364105355984089664565485340939710755417532985124299468900009589812020028900566501132685491581100122343977473755056313389624845820507416435909325335109990647638177108805041959138712808685635015996465248078319108120465915357061731891152625702228202841235668627916174629954700767561892753642252690952889997047631572998206344635781889800438693988200025712705522916373314375797405465986737447016880862370677351998244995498046931142464203011432243757270980818710368364767171664294636190397541572608904600533724950791071289664610344749629063429287506280381704984930525691275361159999378446638705278034012394739877541804515453397783884164091400401247150268669205179115842904241002860798754797931397869075872385058043356522187595461310577207586804108702253563465760719981005241050734603546164711414071260693469466149954188810762031170962092115553632920860702888979446286679366790739732083071888676961935855312345606951928881481075881314110571797179770693315682918459942167074157217438870741499343440285095959807899284906700355556017866947614030113582068465064783487348540579533590238132503831558600600279680147031462859948106900964002133906634047665597584306234453842104614896859473057764095153792842366917793407927584154326221220101284002910976874618148614446787364274456360429665660240590403592418199739367977326695688314083741361616778220582467317612248337142038225320867844565187996726901299892983558969855039780858216585749627379335734258672873070039509710254756659388490917551739252618137979546968056253878130670247997516364999430496559018246140580451317946306261485520539978980292845708066556064967386518847280846071486433664618464231396566206628065988219362223564247662616537287658429653828720344523111354736849219393201723240403149613636684814740824446344436682312371595947483103163040156479624689833714717355130864443580755422766603442782875651334151315631774963260722320068149787807556095049377411760163891134641265703487674071986958160464494446625462916185095092925578749173240248664970436702705592607735897072965617278756888613539607428253845644359158855767882837480494814142334564054751451066102949491172871475655246804242140748360114815822326801541273090471684786397451324137919853669294524778926179872305649334480177528646916151751240969425046762556993541302318461386116490880446573589191742949266907307468488485521502224748217379084703818047165619167514474285701986679783927631733837463173202457639047040574170750947871723186450369635348710918393724646373213654297945301026142335442498997950369621709235116888882129413602166387789562654110443909474630882470458081463783755963382377900528357360483961516142457486699398448153669036024425679295408721974705705657621903909954185522629705567864760684428222193493657387305698566152250542164656010723460056926001674849644860136259371257704702816731053665395110021602120215524257239122098189919448987643305866080069139980461130096671793637844927204809918586502948903962128723667260803601857582694233886792439768259687084598005890011268989818988972093576714416379713523591104768426696806794906318279849670412474647170404188614627031620998846408768877089113664621430701013797310904470806547984868014417305395740265258122391612750851721833094708896468366406763085160907484127052589219928828662598124355378030375611549143668311940143103633186369125881667867228603452185845256672946693414977924292157740048277691904535193721091849626248287683574220735361168083167996952142670267821856462812166493209465219084610151216241502542450721020906917100645060174667791134814200528704511090188284551514423327694453075426163203742476241359557269474947296209336766963193807322491429943769764326838288463652297531006488737596730001047198698058220711946064809342882125776473537221154135216992004985919439193416458483335431673458570243518647743768532271819464584000088652780609624430743498648056360358258583458367002289105139947073934883598701840198407429040527369093711439605133124571795880438304711265202108645126826571955938915954964083743553726788813608592543700353518461764895663792861526607724514527492444619478800931228900908319672555158941239442765981107030529925265912981316564287031125202587306894861934799155138054997917314911219746721018181803515024808306130343294841349151643721352584136684958491605322602808519164856178390825219698948170176591367260252621092755263117010876269401155288985493491787141188477436640987721183233249033125393581116112573974363816383102758594594710544949289460180490078973561957219136381554232914811089244765008775831083510284635712976057612997754038221521488897537628129883828730868977282808049044463820594411094590274127246381169745920609139335880353773949752419396496887874658548284103548126405361969456712484727551315038287623490293966529643223291471074576868525680567842126252520945715495415428796054087138649561298088999599938445998818403367005623744521920151583879563491612684676253154505623666983025123692754570884214763472535234265159238112051888500760824944329005478190160139960120280629123155581868372885011505014520269729366056904169795269535008240151603094161530497276239991732581728730227131838351774192587952630554311284379376628670587955055273318044470725543575811524331171468052283716800507222039036069577363160216039370714520588116152646172126283605077960981336358785575527356320736850719872877581787397155976956448057176188067319584538786357857868186296376624231494999350216979517970964587874956992853352971989760046005608898817232722737291123896601730951705635463222335171184576328644086422013595101329834158039006219453610295769737910897352482444910290370875938407140610396390124675257477414125245830288898127990907590502726182556692603946107620952787633628818289965769306036005260910859801940068968856989364321387537811163486848051716280402979940653809005526782630900707393355316690910445890295386551292264194297221962008673378775221437836006470500431171626360205903114930346832277570645827801754231883592897738228956502281261824625114385510405556579901233263920658309746934195645566339855501843862285673341092843954626517668204026580841112009560538765900311981116648583764751158539163696103658947574800491340302233909234238238562573189301423314689287548682803677290872568028268466874314266165441853096361835196840019533646805743683499466784281908748133319440932293621044622138945202477253295377776338219392992756558090985723333421314783457855858829889730475886593408960847923688570081810970023925985191258745437265896837262057540698118663047038569098789490152479165542393512645113738538963556568072418791773435023167786536695987741260991850517156312388678160681412684826214650836890782686354120116165615644009573717037746447698564474449557431498863576084279682665448858606225582504090364845597010114403400293513264353530202967369903711513657084915763989312955344102321552695678695398050529058008385395064415064536143249689188485508378848035808229709234812066058628848523442237437697738093703266278243421086453712977420957930913459005574381253524204418982896138508724447852239219617980140140299241424115682845462022339292616745234086741899884652616273335282325559759558569474296019115086009029903191673992965085538759071873274713220643837065721646477852591912060199628491222130755481157820036685638354345067233692866667422199373099007619458190328106823475617511076439851149281596391223750080289163992079382667621617016683691637262409859821976629503546583691165724502053252379615302279749466563866611025612506045157283037542227875920910193870329573785026469315209974150694923565223782298065980828432321372941077340222150267569192729123501194892305069477739953220618299893832791786395417442305003268579159308593075907789052385388787655446032370201179930974871900829194369639871843516844764200113109134817099880735209975530062460634406378760250878945616161011815003670730615939696526367897182483570722518980297093102654891064242841877801828590772499459466641309136153953095262538307382230561620517349051642668858406698469500717798715923939977479541675940369760382329443084907231842721199352445028747859740860528695665589024043014879971590178141545589149838772404062456506870946495224739142087980817903368592877584670511805945987797822903069950355396584052683256319121508689785740219514012831002608125699643762210720096528329307647243317782182858261099890792243324459916807392214800160843035296577546975391475337005146759787604153912789094423783918686165118420659619582530810159480064880210599179289866353137278054783529688059736373821195915411698712032967390637216761860910577366918606842697133332335004580807524032430425489567420993809564803706810469757690609105880092741104868396922822153909148312773427855355743627750823366455878812508008069838873301344215836566841434594570234624111616493758392897457633568491950443372257921303923898285362219869624816055052638621514586098113637685849641097786919041328293540156714769126161042150309090836819551513465409095766370774426790175143382605566646834991857894048226975415725021144300467774181024188058234576681021764333832222364117614240764029344387163269279897047881146100230686477927912071057890186396858761508463566859122861841678409444918046909880696580084206460896394197995263568178616350163351140328241936113772066134331021500132932866094599096288720448205649508394089669506752030510869983309297814140754154101860304538177154906927457429086796608906910839215661526986050244255919435843041402110371971181362456406235659422830080762210084025577557893274001122080395808965323874695199634913826784690624236551582187214020307455211272958114119294284459016404813396848618554018726801516518332341817775238178506361068205773381448125006865893742095651062855071992367919365606570022178848045363559318525698078285172358730892616092613905408015306583330484545553802912204880281594661193088905791062188093351970040287281917475212126785690683573261471366225280543802603448173030721780817461044145510714685911057427925980854888258889916824306443815403148559682657404074066514981367945006363562373509624328514972095945268159773620407184289517035087838506213957178402470171411574955370091110513682990690099523142624953408686484261694208868611566114014099285194891157087967769172168485332368623077000238709162698315580512642580710236092026485320419082104491056278886744144682927244399305170732534032903544542343000760767296998858970610850377708456893666397438323006219345366472079407466760582299568777993703381934363212590933847988579881730264036732081227437041080450943806214133036622329858650246096378629990133476286101214672107573947968851591293484411409253469038644063114750131331961659066499660994595029866444069474616613199346497055937776134700128039543169675985701889179499873338073997587918709337576956185674634021703381194013176918613641567568834263854019405420258701110048406298529773696619747986452596706660489225878166293084145057665934098131102853529328641988268395693969118420207305781793343974515487514821789871585118926803713835810727005932960529999515073312639469833262380821404816880983386127375572182403565921081830374336691585852854786361241432158627450420067894325805581872166765495717701306152128327208925758035700470836649347562746363549762572939916557556735605452097069431515677606237837747381485893074755792206059235572359762207070213460090981993137956062372690447586432641811974282342378314131265640202605325930052085036439111064594236853433277071805087809245530664428030115535230200825645774269932608399873989772133308507650456561681853406358517042190983141437138269597514154444986894530101003061227172050999952307498303862524520715951075073022367154465016336122052750112152688270250297898922265236207865767677496385947700415114714850874544572173395323844930084503648229007349160101118375013377954733215842878123196016827122741123067095761147885746599426561057051610199804029499769607423483823863504896034609452734706114452059882738621859646260613983041432561713740557275420094608477280688099637527746609961999624410329355673107099947864998436152700017330856237038871278285367438702771767746845377008171598685833461047744958078372064763324347379147058270114519158578510178086461498231643390293533249459043622538674818742742141310480800523062115763030079005730138784357730199108243732428853541899323371871699248818147660035915352573890847906421564132091142558448167123684424725290942426006358124256048617924974595151790866771001551605241117272194217473450720220874314481959239941794265346507093048131606523120072541292464688507724176289835847645374068798367404008332415757573433286849670830849252580331751018644634020059165053015810281149505564775940494777113010165111871638062763828580320602169918115319286463496581039075635827527818372698727335148424558951308891457852748205631879635079909235474504521812581494412110344018417862707442993196117845715074326935305879927443034668666472661684633914604658237321910604180251839617036016767340171606013719795694531699232223726306977049422775169769670258859367197284908950402233714053410773832129568591193972327717180548564266117486819141422747447659687591596982678627644001475232927156163689950317286284096599282569479211565458139755382182568412379154926348985968881142045210822615616531638240424019418084296259179984436275384990074517011622232653393336204247773894590192543818406709932622628494815853661221940215933007844137367996953672291351367059225648999148093268258993722114370906191411519483200681559243164476378457417459478801346378019824596719780502912124276841937583599828977124941182902574759135448082206211256099670874932489289263698021231620602929138203471292553315855557930690850904823496476937980805745227870910628255918919347155760842774748738540446488389679533492133244806681886991293153436968763753613604240436599539435498613573859665914692645786674351898250576401489761579703640035264551120148603573169369673179377663917533873164929790913476881695220108385275871161246679947898944197143302867926160444955871073384408342305039070460774860935126837063541621886227388163883684636893081271420099320209445929087255130748386650015070455249515228402473101591096259103742014062336205031698027113421095275355668419435457744502626411942161375427774184559474113699886249317396923199156545997003805042008123649719986455174194723784165405398648539594740653817871392540206422566981221203105521771571287470869774520019780849292955562972782655326999821297329568903969393686239859743941753644905867884373524655088701431872611741730111405661547437009004356056793644455019735824473780452313208455084245547949575227735633644024752841305482393781327815200723386657676789049896684281343848704059114925240103846749185090429708060899791916935112276267945689938449161831870536676780837088277966853392913609593657904424419138947685160254752315052323785433400908808586522222956564525797666226215534368462559570167308883169474324354473113104726199476795396236879592015778247743195640823743831044187503443014728316163048722994711460861668984028729562106420232424081374135691316973377868624579395626013423994423020130493093318909823686494250019638733019178757992727162417078451019638443286817062094789931765414807791700534249140925494786904150299864447343781428708996808184912537180891190912600637764551645845675718944037072384691150725790001902218477432295564647155768358303624803482159537985990324027628994290852629933478541228867845961471416418132750720590796060736399410965215255811064758889774599082406233610746060928271961104237180425723673755147901312831686121826282610715189699357821802741105339393232609260204461574414109615788650076238668401446399480666022528735051887198725096615853851183148307289073064133368861826185973572056594148322193360172636201029639959680457604408688517691848858588577551422167892686680375601106841951082898722388148909642243298026826417839193568678255994835954919976497606816828688881097249266284221777205769265919442437144036903109134875603173720514987618325622422249221020226431187662309881290271633505094470101210287024503349664979748812879446036411606166995614819687164830184928622763184789517374935910525968555715619364241549326809036498064291725148370073723121398765277567226228246403074895486271121753016841264900259494921113073498732176800478342138875504115712070374887945950362952362343382284151586391276946131014529642105974071936300762515012374279293898450392167784191794026888279932166647745709958160430255008631474234768532410185895140975625822490323798887409634561892247523488011256287932624322251067994535629030745053089512736707856246976443295452811717409816358182760656509037271471412213775648440691235703938138049153731447738498353485719148161930137922545500144072444763928427841163637192461587760216805569939590351965617085763182766241862171968314752977115347724155130450980454336450152755570581999509238654404188252451189839418283436913629957795724083508787815419367093555624942520513295838702505656915134257113428917471574746992963956177086220917724139620115163218791956281462056528926688679717566726094450028724161606741323352439779686926729451932230043011030365938759911559793875290204321273111564119662664047805737460955571849933885153911594934646662332184220688393081518848513352134140457565126122079251954409356052226117139822672259362960075853046708487859671275752839374125193214273546092894299403882045452080336254249369468231839823432172545876519075179837141119843720240691017877756185240515467088967641408836029422367031462582504047232031817808762931128742868195574046527624122382843622388407852053144136629179280586090364264500493698661776532464003923918611747524628419018805413132176788937998176320574506901740684763075633892653715952807160452808269234025597950863569361407858637376870991169136833880698699821316240843502691427786271754238692757448237831316472152979619777276614588945953960687359685600973498484041407754217966315563564805372776502169778580245677798822893937886215754194673879365393522403801847157335902964218665525829905857375467089430262309015648441255688142070206033950283452642098277111510733445573206044088250785802438430520664856112577131646189539119084600323594275367762050691180275490773938542368705518569628586963756050754356704213073944107262624645174663912368073614877074155584461913643520510560448817744804246996349243906215804235665631426929184609436934706457939531325905052218396967442472848201754238879604920808040641715349338674630082636246628463134577131235425897070208072515720887680716923076014985897687598792347767336463417518027162905538344466781575185133327852305501891178238990775977333619778350968955705494270915080145990228457077043808804207645662953348695727468256437953837008978825662033841653778973831484692869511617457254884064402900231034808234066996184465050356979438643133863287861916572429795345157083997354490692929359951341729061570412426956751346801520799859986433193313268311234395762300475724631264799743816499963512394151329495527392399877202654508597923437412367354817908954878671017495233142128520028721508840016895840445312817906345027901303263412841863227326668475377241634194339929710305455364803071338167919218196051965200926457991042994326587998855316336041450965394409626450298133873632015771783850180049062078580351613807317317507072538044003062850295192685889986307975897143383558787558568212781103621408166362528220162636109201316039181222937353933472606638443394612966679724319880699860622927822364917404776261102890604668731334036753768306595387879619992058609685308564510586356900296857615185606347785531736330573423821079776150868984232542042905567174090745567973289391068795133303282338748945834465461915673710098221756008235671137323145134303535399736048425972784232555477846656159169218502566631845736190421218674367159832284577394916350423600153439908243228445480433632514896668380982062063734022842842267229917486074866466461717272412384507796589113013580249657350080607091969553934164042210382406891156604589457974825605125677977888391694660370405303152730008650307339096044772386884594798291181574777354584193960166113554945479608849514464050243641926437509407636014888591004928112357936512764329697182261365476905743239171280403254231557617044048815925861721093256473717756433541840777391254555177885467355399625929266213023667905788194194877300156961515694521994607352302493853166807128069105720047995789677684843648294101063368987480534388284328156634948484836765803123058209106809352659128126621505455267099864977536259524109374690507012757543002563804913270923658834669325190163158132673613824398027687553699401140751592194359317579304962685454598882923630005551723150363060308667399095807472488540031773960255597113395305117628782176914964436876433198874954984644750031610296240666302352288227635093554514887851606966342843148572286323673165554949767587740520056328883284451470877015723734862920564095871855854938866652669407213534669460804753495019036652354239940319961279817624911303029443584037910406857904132906841505898446640061647177827527844377487051518127753350120423079259978979365817586698728720187190481363127094371337995936251986098092435960483014234455847569416623838939485574830513524484809090669106010914601040979299124540170070281485263771056098342068926582198300749477910682289775247009202477431979249589622626268591085045620072275743013666707367883712721014709686523586924046031608605006359885752729259837079576104624088919484677702448821587864726579707981778023449201694841214647945233694773416878744945456741149711129203311160580458151353123325829445701779681749052386911350619809060622571237892083540478671608082695530257543475962075696898916418022571168765950731033542788606333882665534472273886860731888565707965238621554431728781706765365365090280701380934512809777401560309145335973244777481864607952645913254557317874814617251252443340835128382971294823898371712045302427805504168919203781385198418971464826788334171352415516190622803826373011302049543308106443550312603857531375408195456115028944834021919352121820509680945938375066421544233502987346711472493958944584763270211232857940590135704918513415094589582437890270645750058558156114919520792191899978354216858704407929969179776808038783896581792422403565230457320294780469717000602165549038479621386653074570976481221336796998230220590771563038081376505063757705838336561454660733738258682182712074373074371086458046288516782557386017682470683075479762793102937697431770049463523115954597999769385438907670639821817206467416319765344933505483195066723142353318603542201483156791371074379825029174849468472018053398881688933028072042757182778852342905441554156260242274875195427958745394499944420463269614731615066196934898854303326709585870279926748514478780513203599945602052894568833210205048823473954562216520526835691902716755934565021591607988515391084479457185575997080120126990590418764444002881274162322947170451267504682644044892609461961749802400950653264846351282366332449859857009972614907681306222845438920002663675318932149580206623522816255808317239768707198397920157456800292623225961740016273604854738662732663997569826537426453779764733171311509559021568622704453663687133802606027866324189795022696249327969927192304271241657906220012600702731915621403150637400945645447023309271583254452405680485529706813869767570779947864418156488198967801469265580143074855474276688521282459892020795786414157469510685263793043109375868069223298092180262594431136082707459940503172959025865901638803473459324444704155816552384598104535262279014086265478497718981495209179313567739199488982735876860226677479234701609070139928979398980504208245077984446839051538664907919356379232510256426800806527775171506459270772291885710610725810277380738622453598282806786947924847935250145342705275437589330701233207188833271193440405855657447474505655309235739392904381239046007595358314912947805037205965625967855420510182890377794885002387770455418127272717704423289333726083970670580837910459719922160722600586090854795511356556314999406219652549277097387092020480684302187653747019650593019733827290459023431258841460982654299130477308580731887240428582316811262413877688671736389190461681851415555879846720020334014992848684674738390477322763133654096923988324868267909626190771329772603177159127459548076450655753415681236086618784732636774488767631902864358855030896068277646628701060782621806448819024702464982549446562730631635156228040038192630402288714617972786477327242742743427596667790246578308515281362142322574032032651972539720853134661333878706291151303023186961151323942674176378560509339928757777774128955674300772314671808637021522913164532561008724815034770873350326672986736735651838077670760615339933765259986145010788778064722008033277688138821570598644890395558198668544637162289403244743221514001712151361357566053171064623120953602934552804064867854364863232856428069151081680634517838962885583934620346482458068606957867941421328836736973444216009901562258706407251308796105358066638454593285978788577624670616000317547957395838657905816612303300419880395300632186475660821637843283445563240236891977016499333419111440473444093110844356722871392468406681343318131532724337483270212213436468227749757050051314203591258312132867478295134265711976025314868536647713619587503129323423325219481708074869596960415573103493491226837560222537932241188959842715302686028500180420189130049427829414036358661242654030001882370344623487782569212264307300107923977127005293643492212558040968410303547022653518704662709273654681922799970094993698490763075556079719930615542760923070781690332130244400029175270078365028198922351893034694816301077958923087931539644723715316176264149858704461526144637627627032328417649159758878080830767645822908574714243998499405905572421464319195248549005232816351015838307859184032108371892097535868367525275530070296568256659020681423554627914240840711611135472089067009067249527503185770479996903744351167406084347533155474847302094407168520327906821498711531716322832992971016707389373194400443486600196897154094946651386212684565416797692011443316009262593651814315512801946458150369220718854632334584635233276668121941433021476820607353794198577351507706118488743911479784764822098768338522059214252617228065875045588307812102542180918979791697171545350672787780594398561516118992157012810002363226370283202816825216650215117249939130942366360384915771425626403409328759692395357144675994259947659055265727555773765440809107556469576191998115369438495577303403190364123271204206199237616440684137807632953298357171103758250300467854447744911531056631893328697832083928655704178248500427695233177171301904922311967718923704748397509337433857951679498422583517588821045295387042205947436990452072230911547100312936177686662253347358072128544065575423861119369619277374936297596589639195338530355684794409522812645383055231314782406875837791136663915385092459481527373568722053417412602435019929960826475086883047981489301728799766699723065577656128952780940775862987572901656894511384401544939206300479597583646231413872531063185737125397550192140474439605666375069413829511642511443220047882328308459790698531426887002661258333167534604009510540572075351307026208605631997684511998892461678404962753764765402444387140814686293942433642356950799959704875565829903617908768438766799267458311116614725307770438920256547662306314190713107634089349569833279992051205363492287464937016989579761504827811718009794960657000168526385517008495604107254231331614505793006823108182722940563631333153482605567640170892473817503877767861628673830867096385827277053140353314694920484093309844229452936969336031564952156000784369279427189452576335171084281796065444941011096726359944140564446966685240130188198294941985347742659238148885818458491701903684479785557895574670206558034451134679154391530006008770968616284915899887519047973644149401544315524896143132757916657695577404446986174893138431181243502736347881201882546861980967409265637651765941841756433374732203408097116225587197184372898026211405083391590685727668270494632315417509244527478574687602044014867259419961101192764844860012372947342956726292569439629368830801482879116305884528656573891700539654183065113681570370515366894591271655426223836039401239861027941660594317276823548137460845220706636574396609424257094930991003087225380172669158744937434604143840689338143029703449682701544850708392806622272722664359248054262428465051395326500126996218108934020948207763504037581715045824120007509731438455534290331493767957816684745181899841307527554169819043293979791530644242769446551902415877684368140213784929216378649167366804369693728339537838547252748908891836261688852259628893977288010933552931022884390527043719025534431793461551836122595096421110403939213483910835149517922827919633258102605906343793063481068603655827736679383984961724393563842430963780570931963453046071571813580783589057357807124237160980503157284078322908422301100367472327259177011375447898370009249561870934218135132103808630957289084576343799404236924321641223933262214513132802937441318535462036078465177213772198294205835597399972551793846920736762412474623166440785139580504767404508070570641664587387187544195957451820239595512544644432332402536086858517588690836204127950811353599984692091405686510618660229436643536733429689411633020823816159291520299861156467261640798065333463664280255211064894323361679321695199939076069788906812101003043757209902507388077084770366390452559179150778441242680782166581674850607239211544509113884904273714219491133526393588670869631788279365858177704499779250732440511490382792740728220519373563722530951799499430714661191958422539155733722251914261974046755031614669571402103621087547262689753236037061106236021076640861267827289117229421759462705941957218208347655252507716237444194711011912554441382213545690051556015905966093000952800401905317858184505977414508014928567946566402260174237820188702531289737204618200824117764405680799853692165319692932637737606324791920866163037947749474164839480385212836175365895612718921872201448097803865158534711103608540157321087949346802864787617847526011904106886368420673280671822936378949199236796979385924993007529832848973119722527614734413737138468964047837839245450892241391630235451587248713601457968602718026819204164031044756722713804422210697694590023514305554769939653055753292429682062135999217776046511248853254943496553404095734532631038809880774617308586957882926181197371698229270138846227125950085510662123756727898605430589294223864927913670200996181249377905498154467097566162154584411908782864078437555113344465278985703978271526147571782779100103932407326734865967781761765375656193744681549625409071375700824267938107956732050091722373004046980024947869232617215790488784299729006294871212704253056979630317730622085364667570979727593103245236058818718254120104978680339564586218691617344316964837312028932179370267689986374736996304597748363926030911732831604053913617356070246847236306086289003955432903434700317025009847891504620275601723246127928292384700834230004684336728364155076730763438158984972357207851460722529728100597562607922206002899942929078257801470243849993396936786445059520413281516044479819450622301852238120237413944528660867448841739560929944280521680601431076953018382790455651570284500717710635557427055245514767251518134984216866883081208304763566416581282678333891642369636118574033812314407706764071952947174616909238660293162538027660167524753710424276046721849823568303578830062254511021707158875678276007412513130967204575508044536697500478060631202796338887075997300451435797594686098607386930244430253567989720218521452911435667630646531357343792350580217173583687455585292804197749692809835788453582069164381512973444806562600261169178901443538754745671678574710848334150738962917711759316793062530047716781461129617640591771261613036195317698114946948945790063745205649960347826693008162051068993019578894212257385837424385361674256937128651099098806221853331437916429356850476417843757838464015971552431888707945615827914659061343799482699841049461015871660240055450841492153321260056124852184659865691263516092661138833492836670850277029257324079149840818034676715841261811767129472727492718926979458105635815002474593162797160213882162134096810203594940917571503267841628149334384771009335587181049419397692091144570091192946579000901612078425985265664305785702346383042863792040974856591592881286638596200196516600160900043923445284086033851271148856785797434407748860844877879816328046641655484315771600619113294295868685750468696497124255471468767960317118699449046647978536950239019580969383656209774008334764940322411079308850282009892711293171328126925772052104858462154183853490035603235070272205764713257337253785830146054458630786791140277367632468786646869073244816222233520563483080536654009992692186728313562974956550096346037520461438546229042019912551592430219197094434066818426060831529787673685393550339104061027143132438969845096500029754371065763709528378953012920956467618364268484776478258505546722501739953287911870142195630412240799471636104722663075213817677426974385540215998244960661966398749533187454198554817268042258314529250796040754348544598923290953714871099532579956891044816083125030182824375619250255705099582112112141858274734358344621533698906127579317895267771125781192071146742248202876340657193396995447005859085735415295653110440182344076869526514852400113859196798845365024218279753087629595090235790628778422940447299492236892280702921813347601694944506974473896125338922611910753244935818773676967302991727131050058974331064865048264861271187985945514497314755891757120821092553775524261774141279743169079441244286907780062062790125508045484433611283194486038816784832168744646644899004700555102191490424196720449402464110566873563823507144873595351148814940328733372037648348334049343101047135773402625972003284209943561951432528407507434832461922679248413067484447168627429761544710193041856740454986749164882077200759891808327382238458686861094064716418087003542338323151749064182628337827046656151774254892201053604918578493223408532186902447150562018455390353132516204290940533786260688965075573671701566851426054194882578577253399555463386116800858511533638311783293491981509300644501168367615496211264588516216533694621064018823943458182261785073818527573340167393073556507002132218232430617492524748601348352884293828762965571106194089504245950800681882320727587811728891424048961734207259422490837496805406131942628596594947804214517567403314305954942188988308804642041165292274555661988307984568188525950161143068415048640176686097941156721727415325485609997650216513122324127480705724502524054797254553308909804177474111420714363294958627890470556716789225473279231956822812861504053583270592074681651665570717565208716584976848131680021638227429363831299749803122067229650376429806933025481620779356397297576115733843245458111649275493279288643637412646935580646414884840442746872295788221676989313224719405677166219409420770270761119998711519497213280384133638993621801446797317294020185789034092362342713404243142776153910980196907911037501604182397363039149957461205765676087795901116736206961270994557885143727240118734378645769456396106484833367325292862448622391096004085202208040993709785765943265534059485096431494505864918328771659471927186079107279101297130358335754792940914557344804319562163474418026220039896880999977856525476358262445118768617250661707644549058884521078688657175080320078803460023618257579717033097736148815118009931398992627310320288300739409858123783051953741965973059154914706472073713262247470265005172928617999414167267497292237670560782605881214358501262575622952548878167945387345777434985325965777389857322945721825437549304976199208217166315009303017519120831130559943616191957066517628149852532783918750240815681656460441082810710522398421519635309485811513002760218022581920658839248175861671659311865275391886306019582210895052656678407143974840667624250938295026058239521839110290914283065924729717515731079216590485046703288458633066244955357840285461465659824407022247417121772640917883160798764644887887407721890356397661510765905315074440645062891021812252901859934935511762471218956344156380455872619986614543759733110036017021704644349523824060193187189796408994859508845323053771116372544445482694965035471451037703457479548246213725370429083935284482655030225568237112971311367692817729154654656718422402035791683456824612400707304397269893615827533220265256945305413383389962932880192107956173494286042229506065932950058723675289734909447375402864486566824300724162918862418237643849355043575452336753419882500577614895898298595975039070220676965981033400781178761647594487124211926138332262806428638948537835523340893290770172980452193762284889392910107992349781868324530296038391818053824875417729921446132255877376813149927219395842233377450783783130893230191835597116532711786818811158404228826839718044629722321473773079116253457681743260312012555360576798462698034183096026722867993516187594374828572975211792039230640060013088873396558842368945378580904979564431413959302142650720896255705630134976148960444449608388327471335467754818202442414689830460973261762857792506028049201843623506619847049170840037377447660748810302835389386706406863996194640550928724417113019847305230078966399631563333150531423001963083550997720096195016440973376987589736918927597654839645921805112575328245340550001631307273363290985527004989999576601029502767465421930378338902284575738097041986969077377970977029125286799382307352512961545585998377713617130047886085258661815330656125671357050659416587504039122667086831683701848689486216898113156135132286363853979370592473103843864725265667867100037708390198674197006093386539767400359502892559602660312021714679648522495604055719247985212055844285070307633037517611962043052648389197748879670803495702875609375827690154175135004103857899207195555135843842482102068830119693897308524776485159250812271477227186129673294706686245364349070381520139559014620636118173527942947672346981556096448145321849918437290570676228308368643994666066326189216822855728578597489540857272623551058111034642157343553038362274440654595188202145058278715176249391026462844573341041933968198124058571965769848456776346226794758492327125586030804451205020091189069267779196148767765654955254232992102809426226933471916033235742339035004025053568835784734526208349413268502793381365031553531768896575890541120050654906963320656752865057230097492707668114933574759747456004302034292425307639999720040407276661090743412273061144160301657009295950482917653889209237865529342562593988896018173251405311834481140769641824313875621688258271518066828479493846359980152256051697872378468774124616429487692802448791000031805873275935636510917844656231372693610635583712218058399808978045151057400668444676207649475902029709182188444053606853304137954761105287488214666301337657501073952796635469568490348464618971283032883728876236260251464663837877085272322512551731168118188412990713879813689786464241443169804533649911167607047477915355367817655202242627313882147626693858103894640871157514051069088211884549665062975576866235157036535655119158042402837852710416819224807974240076084192743576131805874983801584390205393589219695954274040749290587416558377345362944744553194707504400755701042573008248495827083040861155317529275303081972795982251762218230686012020822187828357045034312647753738887659637519585470611506397186896814891201014359574918945678271330883118997827878644809638784382744769711506387602187431071912386385526337521157950283515509699606408080203084725937995695899189922506648497314680930696607601420270051442979401512453316767281783705854999982146729393354050489461990091024366018746160256158365649717024119836742134885955400766837081957979803807962856939051625576374553525217265576116015843254873476306446299006103580067927246603567861825071346376762964547068131800252991354771393260060998289645951915328758256806414587937319859456069603921239125458520941436452248545357380385862877268686646629880003676377306443245425219858308778335290991015891094573539180474629887968282532514063099223416359189536009938664923856680248800694512692847550166481587159398534927691178959603080199390094879610725717609087295129547485546965765728805853794648663939876339747767984380823288528387288847532584242352008708372312999098810075467697647272875118877448704539653572522782810700124799652431325114053315470689859076131715499772654560238454135630985098410455517205750756418955338256903681577861875939944238913317664409273965000181976764373600140151649364959718725276166438930766811837826404172065284085256942214624028993329570501660223765904213107772809298230568248843451532658632506034416524252745751948780021313700887774423220249788610836090227877715481480344201198738865181701286136251076380224609059664386450657317471344295288941242772552609095262806533257061359517010935888952790279900980234662976907370612640253527224391512574442398479357490010051204116772969439564701198464781020935601532779199952553381136841515191447391923298770413305422620496505436544194515258469151858016057424277108862969662079170740650132135980810086812490733498068206495111330065567310583777311291756581847918045805048703777668523190030223893496504821909126190484362185573882140243271315358328788485298059628934903307156337937559293724443329535710257997556534217770931067070559226588213993805590081809159722497504753917525776112761177918684041425383344764490831402749732878608863421624793659012510047512800962798974684434701644451786026218109426588124524462526298279350770601760642218930972620558188935885428335331267201642115901904292952149902070169955202145711367819430394171584825388834749327581373657045520011561860824573486906499763743381760625806830362285781568601754246656727033652976754445153381495222373429675893778822142368144977272043526857076760634563357638435592829950886638709991135232271319275343030348715918183655861914978517069132257572683917153431293552780798226904411543880288359082958943916860083427241937486091767373768242951571600771880492684624727981510867226418302304078351013011410773461873602001533133288412877635550934639996519931183967404077539633997818939094366744894343880505110800658766186751207507187044993771614234253292119879535827742650384919427929756558148013137654895435120309110901942928563755338254073034499837949824303004106285831048595243399273189378896306626000971120250560461784218038753701014178764768823890562634252171592408191528673031435411251910201952083928221072422419200929787508336626918393603496224609473445612448485453712908574159953258248458932456007269506474002411862518129932394870127762035093122233261789725100479450203707451626603433137498766661466011296135225528597965558033101681046131323021755961375480267132373538287912549306370144742049255729585110768626473347175590666852386498600401069658040952606693076937153924563757638868059817799845414226808776261480753309076625807980243765380939239050790460579044403182581878591311977715346605720617669681933982888223749990404060688370978839017031645459700452884252156085865221914711008642029292824532650658162422525545538136692368005252179769521690635521021300097390853343150478318686930910719814504101303526704407412347853555675302041230035560057570187987642549882546856445856598879523797920561614718084280281955938206250993749828621761204404309249096416652070099952703210985911892451703054132261461869524739567942645998732309885477318975601278194230210527611244755443590747850763522819295664502608739681625493912879268589112810402203127245641977021896421602822113291271993034728534510485742687658423868711668233264909152154941561073964038437735644404712324564971213758675514846651991655792464017698447102367939636971048484526483014863690424688966140038716841688125990561373343310122822609265728019304559317306304965384025404231981548706499814857046799423682732683054804770787234956244667612382125739738172014091263469315638748273628807477830943786071587234890151660995543323171941904458144771093160124193864910035290382921534732034349951917711155807390110905210939204805120824984276649479303722371347067105971055771580382017971638152498962876979775267507826832098563026604838862882443401526349157527555453941234600302100060560928258161187752629532021689478693255430769817346995868342168760152385282477836456898643307767288531587091888772823880927608992928656409963561789870551230728600350358077813667807261500481948009982476257190765802566900537167070700337976814856730508888775790719635998159313137776319417103107934126739121144875706316889756732392888436287578716433642830256359996777656165265710152006056473424696850444553578974837525492441923840859166715099302075185548025299527354280453420972007277436244630686717605539183853354467696233180346517015845398281381948244012117659942848818946860797240304913109977353448229035095982404911716544502627703873608095801063317039168729325484228710623903474203890523606922895059491036940353401019645201484435742311107473783108255009044066672533679373810794846734053538585260354522117583654359321883533958685408134094295761198319819169549868680815848798094227363453227250821586037072526902731904068847179854376798540224463612043543646404944167912998199644357507120794927022126069387133728658184502618383018954296255668403757066060966140682076009266387837907200442796595580718125948755589057063555449092392576667241039808078984235467770865747815997113405008530136467486997993288280980095742528001261311915611648267725476769263361435193176883213965025917824264384626144063814283114944455334433124114081099758137159466084957744940469388619386274056984517704446818403322622571417633435722969639130386595857064366606518417748991341539121553006471917661020742429713657345673730085037667608118651617789316017599134939585061720744521824849746718944349256308288258063988180707807485236208174195069159734139783997334608101636960393512188150138934454294141825609678734990210176293893105351355914218070973597991473048979069603725193997127739904860555369134758952972547671350421726632230723446392769848838919876805337883583421511707814116087601452204782550103621949786353078166338262929863013672643862191885127556259885126113322335667646712709951784136895198007646661434227553592490453352839347149511198725863133082233402979245615400014455580108141958495976233674484215654945733415531230309762981217327295949727630507345845619649767394695053712009630662285938801178127389795117314701240153603943967541987592876240413643228871273439663125944453486465617144649601282900824259772690798404523550830891368648453639385834255624263629567187435231694410719410256416579583770132310628106176308493117338466065823623450017536226326768790126372240699471177220915449875605209539238317445582547058244166357095501042440422299306122536874158620973722934482854711335574191524777747700210440678672254175608962972723577575725700157368061005189957581610974252437293856403883645991854576075568865964634652141992553101967075719562824128052466581112521680612179556967723020886947285718152293066303371139040116619836188669922430438079567999838691290342084789999785184909228615333875079754003627793772263462156712888463039782294299307411233098404575765575282212224944059520015758403869320632109696508149836433347067691303117718876721988196642071127027971826625025683885537604360688871343298902346419885191365780721898150784005270050144528795381364158544205490377269504252513743218077270622572650998667610279365665861371030871634888665675823389312527381195843041371519329168444083532320020915008712507596756650928329361142489391979768052668554748478197750009251898580216019139215600826626658671728891471246878581040475995111358981545081341871137343184069617007994383394342807878262215401646429575620225817932696280269284736220008675461079630737903617956887400950593601941921214153816505051088883660278958262104880259042019546986650258380911656507733584526071254978634092946072010667979756603670466712643572733259036125507521815441297547460549254538098860878252133001800889419623412908142795012211670706664308142366026765337662723820829572581264142065709153148272467135567307762076852878290303659360922136957485934262761396098280382883722126833611977137671751102593477888231798788191989084934230598496979955899642848083723243468612010177122076740007399947520768623144006361954244658217322411949261802132846629017932137668052112100032910367166071493511530836554469603880816475549432603716095748622936934320237204798699034712196811309299926049533435327746242630778865676379554133533841490679582728577209443464921477140577318762739789729739219174018954595191538936675988043681922659222045251764237062607324782398709813434106901254277179588176386119686572511757730414832496869609906490996538333576913356023712306975800076316392030363129037870732696061675175723609193943245759211971749380779596118316092447319186207309108243724152291801812969872139244975766967569847918467169317639488508992053260488170473399668179541601578111487970684901177961186393018586726714751123105936297680092703536701094414075203685941385245962453313923562797414582739456939680783027977278990937863521106605777695999182085077939382094025690673534252233068807808456130158213934364137991315348575769840391132937981176916830524280882295470380029260277293759949865659298974080035020039956170165943953379684626584813441938015740231772994275131997700036062360975258070975944615574103125398458887800381603935230451513132647296140582608356685066701724377384462367242055674204480585449105891633506210500176030685748085104063011785920735260671008877529151848246427488173626135614464371403353255682080708852240880866610098712475126666706582339396216927903450866815492703883189741708839633683485516178944943155325790969600390998353732570044642901079233811221456490556679044449475515552038831847660954444463386016363167303470781318066809752824758351295713423235970956883250584013516878499960650188905021331390863566445524873748160994595451738477949062449707113655862184512387175523614153766752164047130767185802598508556780851310690176792008296702726508235984988860726168287682380247468983578072588456411836982923897103722814122210173097205380033646398874209755821096233051040618783830174793479075174401504607276893865950767846264988070940289567429234403004934174150475957973812727445099121948950592815962690647473499714094389263834081306785336579040806076944992098591409814726697014501482228242908465139531452241552515302591131873396106422493433073080667548590885960409623031453935790302822375668490132329634697607697540205804803656250211700850872703777778616794913357924791607353952273548744444583094552149419803434374246107727835666094398371445232059519507685974527507552046478538684984561958854185994248355366823568206267432942910637037747554790961036279029761490266579976070259980402263073618330064621015719866828630780855847647645480526334244304088240084647197604853719768989517691761106548068097119079835348437076219307235938526111091730728130561065889293472113201032994244037131645982567041894956675336271661683227270178869443602161927276274621367153520227713679124156165206136245308740124141551877303992367263694925666675440287180838621969014241387060080941455822270702510096045920944251549787747532706180456709001418783949520676658051163000665129613252032889741149800274234476624736647992120050193438000038683566751410303386388821696704274101254114322023076243630699592202889882866092649237587449873260859737116617504262168511787833907221668423691012234898760626416545388541406297497988938301727755339559425659985063698810898022701827045276317212780013020987341464050830228198093057519549315276222768287345713430780513680008044220597734962629649130579651380116258605075402805616643386569380982470993072335991894246827291526604946129367279117266856330642147289562921159248865202138735960333463256389128682568805775937314923459482296820649976743472630211299209344315341042102191424107021839551464887732093745140986095977377071795124920694508062084146888453413423782671022081174972814399825648500213199257005173318447277021431611826183314665514192362983873864440543499233927920069056100373982080890538261473760601812989004742461530066345453937009878900450195470896836595983600905689916839373309266033483442805152879136264946479271966363330454711799450080753587901577821962305937915616250048591125645566047131139277402428775937939408872150731447583817202577948518085858863061097723760875743822287083447776579889911740715144779080979430178544212636630557503321924607977360507197974950146046042925486471842624582422398762723665245675633529911886664614581956002666553661752666293403456943653776740452706899112029410295772123547447031346107752698553919243733429164154114149907411004808954821221269218977574018317079271969302540358594759783820570591156072299645045918428870692293878588788897275365070499460241435468216464083406348080056032972861463415901657021452398507832881811124522216203185790203977307971665800764426985568723212718898891693084543978012887728002220355226844362073343871042367773776193423819864250049682508721417362546761356002195871309277680828434673873441817383229721403308634947069899098313193609064702658063452863324540995653550234665808977899521853723824957954122367615950622584185371530195431236683333689349728945468780755506156605113840305518012726762414049310572497759522577406395636196269808572600751484829820532395673882666670242114772862526285327666080005255277438318613003350854715335729220544706566967019483363038686073860774224902705895021308917548312272270105514294011351406701742117384573507287834463878096790997431463878515851919438662524218121073227244845145581414888751612617374692726418219501509289613395411738724833201000441241331519247370641760860201365153854418398233975157647890436452937777388950768455051478554009298890452108785788418777042799593053944077127635620247464788580201624207123697143129476492137785571781801214867789222780284387075536537964625144825555957112454885945598706415187793928601628726493227886894453772876073114841681264340762758896614197858353461594549191651709046611799446893436626300670712821636109248704432470434956783584635471214340053373132843056600311903715129930186201559336125391911269499126131157806511159148264006644935063823090663872807467445350212581029917690065159295698574745047609554511281767223204305070411489629777863756286474909737244202810353886922776059333613629186556714662148902675190840803657682754232779561092596681388704571370033487756958693903115158471887691076504619708826362789405976276497244787023509240060617641318212312909990082658755526916089779686736506451336598280278033617644259910920055614999820937900965536784717114968985730787467517507777285127438189556031341506293206122741856660689414717300843295138158202352510884921968239255348612276496704789372267498407655672348262318516917304528404467402940396730086926129980841493704617656292027719649329819073418161296244922634829495932152161933497496514643708624388737485375754385543805833791104426212687274620569029735673095794500105261300750423636976542669694892778696771947022722970609639225770509389933615902562252631308023159723763843095749163568240468158208028026799586819230431309449917707940421702889736356838099337807450842298169763003148042414747815830219557119463958452954465333650812995322333305822085151544421759977315959615716280559400077327674161711053580902847281075176344342382814340256755524563141729342103967491441025644518130091319439583881599028626663222173318473265989998565171367979707036093808173051484253340498362085960768981839110496780624704313484810567366010022467125606810097738531195319880105797983680885846007519436023062333708934856190463519535005675719020267196848062442900670250309048459287753673195363548951536264692721428037028260846257948782945754836675355885882472718592825755551746271666622151235426901378238027060126942887075543737362065652052701199638117173863982621376616994267623294918759244080302645056786620788876494758408728943842282534940864584725208366784220154807078356031693518887768134238011286027419621110952623515663408935394364128293480770312243936334275032611456309342759711468019496275335968014897609675094745063425628802898544506324299389456079908200069060738632058607908044635972835199574112719484494361629538998564436627121876839622940714559495896017002414195531663676782395719025184000393359883721603811196179227873737664482999998171551292143594908202553266016627862708831646456704147296483777950480594403242732257539212217878615565377545951878058057878753853093835107667530123724730122922135530378472892089366660699894780685208927770870932397672091006265364573170107998329123408661627751268747871174758233800969704540651721406264249432953894832799768386836655708893326319380980779180069005935210439868434176436086007182658557924355091607895183419026114397391690587690989141222750809172238289346350177696283810760875071066471057048818333850393468309664572290720299857257501763225827912924224031456761242368622521225572540281916793753162685818590017523940447051901159638894570542146230540710462141597208309637546916732125479448804616835198639543533960189439666702118688278399820614530646178076278038365492062995622121162733087221019040201038900827879652421574291357881588062843155215426736665951764546265017017137866853960244991413768129470305939498889096378742537526390796494722506694772946373374304374937928557180819945533889848360009814644273259453739796691830854422079833522469394210352877642164464018305893454664548967326199878645189337370713554165068479626078252707397438256450178093598499813871772946666297790426345327332300340768460963957184620508985271641810165596887606845876990098235082429381673582849413474131321437609168185661678529031793487140014309303021504852157628477205980332522905809919312173685367837384644664393056746767091792085568859977328908469254863109505345512158877158267616060453931775900437572945901284662103766811693000619395891575261082670729544130523079217239972510560624971536094024723600936586559898563916882985397016799987659844594094336483368443796820735465922549091708394693935888826133718686585494087024594882156742341931528214020124317359058144997789869437352171074820809702724347751421562729758586376901740678314661680908347447042927699120296548473129163760993101615095047169436704069717471577263793283087795069498205354388294109491388685991638481973458538002442470308360968366502024151278028699051666928010006954742836632528720942131804760498499283590196708223709211302933901242717248721673325741048811568765842050263780825057265928038077034519190841971162352273958200831138903826329624363713409305169725217496358268022258904033808517915616458789982817214870033438734164939447097347417827526847446341675981780207111715404626335076108843833555334522466640487417805841215448043087570728197025077143145398902741184460878991925051228136469051472690465222404924734632642516416922237560574065591749513617552858155115054036876858036167658443470047682839496619594658410238052512929629875477079252925227580615232550501676310111170120076037119404826356832359047294977622256403627892400944016630890918530888548785018528419047782876537596627320289785481924926831110485873909060142184477535976495850245079791238171875872026059990507151765377198746765150935355271970294461031920850872395287013260273262960266349853053233815305065604387131262256231258595454579612751088076549432960911540086117481229165709287494817900019156945702657864336154885639309557285381923475120039332374961235674064625668181301910866784192018015262053349068713082779853624535700755118845389031460788862443872003933875892858698066948689324413272546155374847130808546671052455556865610962024599027028697346033884447020653001232424590006872532143829785488520991439144946945659488478755047057417875120559058760110889801013908591818330887663388778812260704915876967464902930176202358911336438648169208248387236353293452428090125084701504444537283532063355667196194866862056746122511055119869766449761485157543049635906693054561240472190276703897600607436035722594008481213726273677720218039575004971494829660947639929558461093314597660390028924036770482760685201180660478416894317446352259888685443884738989119780600071054800508084171694260437305669939419299027155461158971142871472759791771068958747113902912454048149592459978292820172945408916187170717112899481716170777168470543497615981765293270708898865366140399152104340442462693250686995226033511504738874343808936323780656483552969196878115603308857538188815982902880613220744904140103695155375559880886506421529231539053774866996630005258049860199470062180317197824144841987973549989571025946829444193992369878925960498837249000424301450673366677963993889104924937410054556310594250812684126956318625663378302246164605755275715134162653057883015284048462709502025398484888389101048125124359413356012179519692158927417435518407839654919762896610866415252789780834775317121351452293571501211496105897803391954801971649893009452161951186922430924006503734121792173721097709164228122582827673389155783966818632772880296630478361656774464659300804930857176508268029701883691556818847173105994864642967727273869732014402590895467404904409666784511965608278792773354320024121302067078253781333900090256301586838798083612777077320932243812083876603956695315683044895885895060374574016100061459058533414372998685763849367432086898537922944559574895404680482480777078541508601925471802611708956595087900256545089727514062895960921261636052598043299746474848989494889718232659259174553868226719798881483967279495345451360599700952585790473283275098801264555182591576355697608875204968192987875521535707575505365828398364166155723160101092356814965989723810452707180680447439338873690147411154348673957888588750419555981317402286912015868387770136720590010326795686002948712793431295072197477454550726934045306173209879944600383916616721258977590823437372583824357474076777418083600495456364299596917347377604830301494545393743302364802319737991655653771490574550730437492065136613703503788024752423111204322214520938286782609336886393385889965317209136479444881440153819023832538865922716968703444432672354139929477439612023844811592475923437788230580394144514327864942968875797371138400697805266006606569821284262037917660902764786227672364994514015479218567408814158477282328694780383717501018726284672626529374994811042498632363643028569918820609805522086386472367325263950151858407780182597139983809632196131418847986695390905600746154038085702330787656569180946108162030023624259558384531150206502127730360394880214424845320689500078613687942985890445094634464197915015896135165295545563649330844094723105467150049980258373568771895547004006171186036155300030574892465376197425816528220889640712784553359432673405260159596991628726668478576409121252465164189831120035484716486948357132203420977820553824414140199326989339765429915114862143987339555678457502259378846307967974754154409949595110682184453556884576864531016521931495929721579840847941682636052555131299305398352432032410872449504311446981711936583335853665481444801544330238100393183363325232410602690686052879257162791128531635724751142221068770510349886662422521351368016225591022534200310376146856648773487503354259450788271274617384298223911055072359205460960825105196353531811117269038572553981850905421657680993927915302338317031303057062270796089452065069362028449001935667847558375963691344808630480343238872190818259935712028102427723300792044889808277608689352014285135676034493884821735474080014541217427389407574690893347364149067624579969480192193230077877373804019652574974210547196981299182085500435239709356729477119169925257593201312105073255727836011412314652658743497097827544809360655416403548599562735562679056514339171388551190467093230854981841342762965635233551441681725414986198937343024396829350867616096498707917625395464756807503740250355611764711706444512747073296289442979276377904916698349064268578134054991573287618245719412098728107116179720935473795864024690449384645708840934087514885734813286044606002707457072905031226625887296793019579322468646691966827816442725242156730163676606398218895769419154944327960117758041102546643921855867145766970689260850356854671721318912431359307394369755952209067162763859305515314974241436957442611307067890089344968087281334314191849397502724507379143334353954030841786402436163302958315316883567653475352636172428813131141957740835508097714779251629147954730054146420331741678599540011576535096421315180371437486412429300795597972543525561949082096602633151468905546362769524584038248761190095198709855827246503218066420000077950843360456117810089501587403595502666938527686362910502231710459200378160770316727248386541832684762607076086151177166376986285281928241124759991866661098384457298038054171722132466487047559737606658663633516481929818018152072466375719083337279580801319722750618504284197048311328141235422737192084178643793115097164205626156063184659102367563109482667553388458651282404164922669724486632264717946782754068870184230148309009866913685153069139277394885422029644666370902885187464150206248030954345894405230086637971660400546655768104174556450763770231653420630636114255733527118033787659850291689813086415007726579398914667173289212648173472467771052358156842526083492125150724414264687886908451541423348499295449565193871521224075621053799974166643491517808134917836593457550322631781107427769588917521739128714155887186063958001620662911847830999252154772348198627443200643972407740277452795097240819724367418340781065423834468080505739253253817327613358202204438241069524722778756995616485882808089522887670803505142555285837517175938349359652086814604342179352635752897169153877146578006473310294706625006766554130093331581565314505489006134667479010757417536623923034130622933251627278545002905402950004316819808711789249859895958332969164992078302031910025128875131989550441703355865792301229012272196485718292969173814790852710767559961002981394174657906967155603415437371451250359461564510242257049035237436111401365641105146518252380985847136048735586758428068344165509796573247723671776065648147889790033360936153740911116285403290696352679681668825345731744302275978332410840623507185157266936021469070036887117916268675643440697579237525507969237102027208755887601739432782814714256801601244890828905211623305813193914851488335757239124473732345121381538819320158225824543301865462970867498927879125991327334248194487326547910842323024835272895842736161163249751103584322566468584899222930865886253948556316329150034824166708808196087244818782168395325347695311842721204349827707521071898886322588939404057028868261500928547704429050317309508115293393428565521389442982546311448619200169361268251544593031423749519877150869760953684523897066992053451895892768688646493809036616884107612517132548901977012594691335068748953130334652380004092115777571145922749414006941759131905544912764063503838808519826948636958882405455607609413913180068197176694360271039122143127215423498021854847009889132774987863746765343832623445535086001931702483744233724451787136103892332168791020639824774882317331534171364719205474959420645221519437981882769308995790264548523329676564950936847208285294942158603526291359580226328545264568714506510144978559032329578006953257320830357620675935717207274308627450358266859679979710821330589444481646924672979203849257726701782455997165095453719143047544073953351979718791645673422393836793933211064535028986642766681134063140088673881463184125233910342800792785600641427423358765717123015256821659255180596382424576150918776549199344648142066177131172189689839698126579805166105147875265590921210405572688709555952083052989565128195950722969393016124303063366313782657902929652895393268213634304653693332011010565250912106659646722269655465733592095203426741455884378582614122818332809048757384364893898872307604600429512325552318353594340372273098659050715253955528442654816551549968791416842538672213147229353885495398675571170832080101669122754554968014444816581271485115156861252134874243807732228826661673512451040157303844777960171233079074760315722544472429589577936611379803390866384594780463400951639993866644001020771691219188807528406996033639396181589783007119437889932394575745347245612147637551396500164815475970693354749829495320027323982134546163296513469970435322549533598311748331182268806748004491597256359998132281047002553897545393743964627722170947067984837871751765908205636291440385045866484228666256719108839557665771851046157658735027556372763490018008595643787775873008870575635759680476209424342335295408690278097824177317559795598420878716974909952990339557740372623399245927327427400859775197305736723157541254726982324835652903097853593709858319745146568744871524211255547141349525214515422498171461688509413277098091477376429137412092035045750486459118015095847309537689382354652089458760741081115736582435737188678691507824510764791300235478106458300031214151324619022168034180711876004988442893736844386729865859102461061527086015928682214413363410937355522524150170944611217542298315812977589576341542062468645724518533264966321489605812725342146129995268466804706967161974497380548098732059008993917190839334951466333388499854033361014652109042865257972292994984182507527374092010883933936024407961390801679278869945989267785595955455026075172530113188834077663580660382803776948266049615583447756758867640496618626029013844422079217979968223338064735681900143358005696864132716264515613195051595721790851359620130965049730467242760704759423050101648842240574936728497418361538592433535259432950929478150806242124805581151808308559429930070281544263027018022878870559389399453899548834643988164361922179224772778035019096395518779104595171110081961559448875638317330561041253646624813146339514874948253599944334776864571940403782726426637062983935810355760846266198670758349566440178008797133950497008784931291154896803661299687192096145882172370786146690938079944673993765734048387576133563740451757724402800465217526026892609462077821401086644119940188828077387748286569024342140724933016764316376996564942774961548284367985861192080307248492378664178007675471062290395972854443353439858282288623625028619756216826682063500930735765558370005366943209961534480479359056962996127295529426832870170224878987212042314622466979684554714521126577094559331232467914182691899384093132087421955657944840524589873887213328976233881456109245191858776283203127430477393951425664413152088956974357275698550691844379548139773571253881403112658579670665435293996215852545346685055327902678848762337289872449551481864068624701167525027310496855860411079840353242323770715544169994742385298751281816776441178852715785477056324383224742088587570662822568557321618168305272176022291611585143048737519708580227446067296231267947361716607152335637489135964845955798567228418962341930985112777646659870967063663740716729469430798301873840261054332691866063754261519455863480864455416236921538153412940621747289795305747288825108920474210463973519157912226321076719544316849779931535401479442163329966992774406270518859747499151327001865388553180747955936566987738474486850095799207646914989071585439985917266717986043050283534699366782176045044944964933212106014875719222947947262629825585703278189269514235074470685422136303327925599625925778181039153059630337256461822195141992040094837351851725885007564774716352947466697391622227276618190433527008285155351389967239358452853305430563483196502613284718366973490765284308130496601039790454590669243345671650182068963417241454295194796084076868555866303126075024000570814658118535282817086604114767265590536817604892087159408269792492556686949667372707672195556584282563655131099203908307526584191389510041484486449321282330625949519204992753797978749323373240342598240771167731605025683593625049724282362830994895539545515804335342682516250950978113239351430989109631348420447731633374423680282476177709102650164175457063391739884502730276892552122299995419327785550026685868843862569078419462433980604272769833596746995786472964074083684295515107814611970900452048148741966813927047758168188542670583814141464633489527982934249359317757115973841655731794957019610111994907760961490940564584054125280229218460509588970956287426449605140193483334582307810322192018322815118845670344744938548889132658346833772465801148786130066866470919036054297329993408372539768120787145461713074951138455292879267642401684248415951436730840604177045556101554273999213320867589633040853422572077646224439014949545179319557707306852045384524792867227449362224254135444044346171407283600777287118546392255912535657738815895892221719443403321218940617033157417293798979345864209877508452307695020531729060288649316229054020456414864191627705199431624161455307363896313911017413224009068219773474242223218036124769632870526584782871265766320440249479544288053536339434130762425762777951584111390891325674578193701554294772876890727704913623689305037571821329267245519614182762456443123221019680181016059615193813885516285018348164084720640731931167094925411205428178605908256980239541089373098815103025077428999549175246813911892470615258276648623790316941393144233400524460079771154169899623689702707096882298350551472021406259245497836187113733345327919164801286359232783517871779678092408524770125727259196461738346195878728008736720791570732582766525276063043177259375764640837936248548088142180096432575374664403634363041169247443761413630390220017372869211050263146733933578373392707708898085334269073905802857703318397677935246414882295100045105039819469921159418728908932310288001415663179534587782168471459532354566822438270718840665358443103945966231813466545647773816183554732277543248036933240960207509762915071621289579626676903271385756676705982278438702036125412657659156633370247759282082828629157255506074714299108918801768023542730258932137264568018312716404950200253382680331344132490166429824095539217605090394368390199383954927666565245242939197204294241424464842142938391425526412674329069628726860275624561642759967827447744046337142507484009025271200594040332403821200013517790814535162379399057335575430825984383471644836714815670626511841615151355213631784881014881968007889467399570749156239184484175415174385485395462855054947393294331871805943880216890417239831150185818593854626360096343667550974857982710922471777837407540597405480264448080997101838461231391883914875904742177296500145270632026224186694083992578004748309252965458409696818564123085980428953751625426506589232674163889051669441591276201857260843146660461085239206980908348088582490271174973371615543294442962879162706228229807781617021183748793674727189302055172317457155578890598786833449708730462854442415533690565103360899239928427170010254260709102266655594756940840247118729148615465656110404593920569055437254216730261767615019697820027926276210655437874628553679512977798094637170997155519961299474102499516427888374788274512328450183384447283363759935396792557303771262018993507707790832451237222295249753378137105882349570911407700028084065439239404839352190900705106715938621609350690981000594396961875630877184820984375767770576367380903928880830159412121737247738269584080537382167908941453992040657174691133497987085447555764038989954103683775371730385880748716530946288257121318753098617751160562667126269408080939712113439235801020173497770587888434647717210505384161439261791193515260233721786710786137353786179047619390296544398319109334684993009372431429704748241748072113790610106905203440586386161577633299114753509627067464060172189927886220555136633297947540868650821522633679776185346965284342776844675545057166804359728457614326704742202823545294153791085318288806549752479505455174642171222534446231926335260618983459483940976239783903531685324314630256974574457154453820401740498160481523179802429764235637348990272484478782705628293896583369779418455415904895053576650860383237858048351453116319788789276645438652100926855787260941416618158764560081565311642330145556422902791882294414505223967694330623882238998926250541004381402687993719960349524056753529249355782082453977261965727283572867322111996894228207842404556390642808057417884165679811001200697233012832534786964127182037556918123388233928280253964058538799461389199619051535235596769220386035748072797879535475545715913437175689910277258313061907873053160162647350325506706612527479349300879261729062407965406596283442767356272753879750801016625918322130742324632544897111339896292365116509268278631908152517877591133730992275729478286424086426694563299497777183907900603746098062854540191163362598237886202710010175172740486575008181394857660968867292087509785685678875983297434396125516637774408111697985892672661929184135580982664469909970556929643865046140552729438308014073313124629966840666961226929766006739787570855381500947112286987318630431014390497804763422833936976310388363321002062156086197104299048059345438117661350413002748627026431669855140853501411914783632174903885225695045012846005814413124554358179553594649139579033862386837800357452179581879796756567677802460389483942869585386607442768808792824211605320545645095048404482749912692797794658981845979211091087683992778146374409596715975076911497804790524357293625158853010773593506747648170811591465225840321324642507142593766225201786938112652760394834815544205615882807184173468700520086500113818275605621164207545621352336147542058161796854568442265294315625279372669955376897629467302758311173314130714309245880021210864371012535389516609293794044950531072391626160693084661697176633813427439297450103663006455078292698594983209294012449546647512343353684634203577589919278138799667837093964626494030954209841321987956916749977454453313344711012386359154619955281586166843566069900552012969052706918680678099101766006087183034513483077209804063685900750111507447511202472425448055205140455710265944851586521326580445732472834465779528402175800575160343835886171969911594312981488981610540969203231050804720511601299482231891507569501145818205140369785266087010377684357215373646621208018145861575143896221270917670355174274433287544434626198484224408759273732320121657951665033981340772679877428509114041747804467666978408404367086267923583235409922030472594887273637918336912933935386463418759934411944265286241503347074377116919995662449939527825701010336724621730143025064127421513375919463098594270069577046219519594265978465865763696888531425776925058131027572941375000534590415549939479941480195661938484107723832669289050516753950034338489491364477234532484092522518488350865759095224081069787633380747544759005857196937878721963198413760340513360365654845272063591523141715491685957407389468206357865227470556809133936096151756210179403784743368124825614283360888694715586429598104878042965546079229428231138275501517211582329171500861221150415836728749284981445258200097093221975692176422699196365269026729490679003391592450638785292080276243867395370921943587164682006467429415558499662778611131078625329135458400397070140051241563706122600146812752996246476978333842251841838472649592875418310637101281979894565999364779662248873504988816811878864025074518279215321452931475391629742534406674509917119916339232728913277954710344945326392890190127139671095164772246694800870126863584631966675253872425613135902994743812040889908074600803794457340783526887722488035826662329719326120952175224845045687653123845472688355442407053060709212911338571393097602318671492139302663083231202672159980805483846416771119619106504302600584011971370947333349103487100974744626950692086815706443754175998834864235034341176559239135790670618833192630569500802688714620422160687253829319473795702273307806650952845505299966377523588921394736019269404938722493535750532865602500087281633272579317076236836561341601339077974410300842459645026706180753033566479162785445106331133210891251728130843121471895767379544080266575876224123344575948352492981624636442622176407725574150677526702321545251232674707355221665175161422320124455993612266702287255179115596400369386232790347215735420826102976692404823033588597378229412004566076395571898806239382536430793899223503557297849671508873750754492221919097585695833292367017561264135973513340794565742434627472918000733274438384477197541950086805783831386859104358209250715089000702926158681120709710091218021426123650819517750076045935898179923800763744420266406146222568432795891557102528786650231034680801542938682022467278006129464183219426657456565335507220604416684991617148526643321994684973836383996906560534019928192333178023747186422125668698947665036564773971123411096517236387215748719872078974442450771679643961590438830569221615287640246227134857435116195998614312759042302152256209258095487508986914807162644033891337354805513759717355390944872957353660971409906527237157987348396870023048875330782897704917926943810232906443561709706151913511022849410927552334334588867747900792078575897055249105997462717227929097839348847958956528555511743031953543334979842700884854100130473811817282380299451540693014094885205535365834166264762189765789446020281686993062035425787812492757439346893534957431073060256037120488750892131592040320646647530003406183506486024206444034588099406651311833889405447619421753515768198955643404823363444068022137642043486402916663424873484705856301425857644746949306364893032084260705994793411826921687938334849063575913343283038907582747353064941322535878232465774579324487512688270128392439536214156521927460718436903246421637789609374789586970225731184807968953648674512141088955507536067696629919503303443160003293894039424581641614915208266747123922953317736300724969382209094454018323597198003745969065201883449002395984169254859886681963318456979248661665438059986224859407760390216927279107856385828931444086432406295909315398208918403260406097391060169816106647189724020266907629798511514417237981856510996593088139217483791046087925569510903463391917942850279040742078896026465322155604822974375418567263829866413988272354429650755314140860971092874269580173219367898183142619483229950800023826300789845773888421312403196415601434011524867605100897637296148022678835327247612334416231400929432889969996578370597544721060219942301504921209006985017057266510779524234336017290268167038121741471359108470271988827164856970072749336178249919439141054957804607030116777413852136220765212071607007765769249926690447577285423948540286888462627184540248305085594774504373060239526094354786844387594688184458162815298975751692670198604702211941167922271478665095395859029739474182129887427885999085129837997093615308861409537570888522432139147877005648409722858185195889542963893971718917433655720522929658661381611301202096597165578865704411867446179900482163946544053813546275834620456349881546824810963644088918214859445123236513001665965719611066042191899669386422459230244167558953208263582759520018787213259829607050031366850001241000577793863199333473734456939527769628145148547031177643404471557358451255231847392523973894119991060830822678888849618067491917668333317559485628980504386513068844698067243582758359963478141376384747241781828397254014530534616079170471327714736504112675899940551133054850754205222551214812343480684831555321595819733417589057107298689452568312447317817008806738504437515068467771161081018021170935596475025148248514021186286773370880751101171394472598052264638083440878336165818261353358263516824676498404794046183411318096231801872752173269465904923978644575151847424125103814286578007498966566599214856026660095534064030206184549303006008486374408413853070026308479015224743598418176476345005878273999084652371369582215738322028123932345284855082880604377776115762792858738443076176334789859812327923493598608028936595359475736936627165574783677138387800157563936686768111142630934970709676935326571925157021759415488683901213111008049019415697833843954390324013813159734833994346639593380345461881391389707904290001019036432602845363183300565508684997595930889789629103060978535491706622049641599027106003918852241677676034837131912353044988215878190634010986077107730327302837042270863691719754280329838568823484265922598773434227618185781595072524847472878622350270904802992006361355934330579576702733042209225015230645662865486048134745843742939794723691619613179014957821299864875920811612743004136795908108635143560162405719339062398558316841693723388436014007294295103155846809977431569734184137389978822437474422877134291881833531380866364806502746002126862155842110420396101545255466609658088329302777005469646874460870551263204119202578627349372873133119402489044674242872907213366311574456772263828884225370337882542166845546413898416597727847217652931989148156462620114951338766641110624952383984154722153160017913785019304657296947133293934923163151829376921054090290054743657777221367759448594053927014221522687574931713139610506880903921782626572660667174166531180194840619033659276278040064847030444424685717471801939185302682952183383582067686753933868165773279108361169726595531252362171346721064880686897512732549620728813677219074235276522689644165140947981961147339168604118049033906533823219873535060770516046997323083105542531052660090624657010590479182751160980718879916193342382488961898736963688401575713284104982600871719482658559944185654206787772882277245794556311414071123868448869766956485531254912214111856296555223377210961406952767136751254549984645448972523698086150938899520825591098144840611999847832818518684990961790974521004242229619977613504984567207496235050556319718790178708819264789704872743718569398476172831489511268027462573507735268216782517214012942170168749553525272862530563476975840388478689096408421549316888772299459791930273932493395833620568394178913173466608256994670681414460936434784042659623619352400335958772423286414745067342565524821896168842381596224513376485216421236677403566693215833862881644060984083194589455470543592576424126493747098035733779969257071441544966806119633551072979621057623664268208770427198655034772179762822910238482814824213672399307342458856017617483298227927487998695893953189567076380993009493689220156182687622843164737516566113151139151313791145037012961928429629090759806827759143782000324998030918669496758921269715713886471685724048836559604526688892470870403498189404414409423696132338486777248354763724812880867910050000522368802477968826975868836302155604973067937254540583609903010929598471900683982082232590544338937915861918430646562535981131799756089379899422683330548418286691944242923525564236823892171761030629688551273119484626879718441224753128728483546480620850149810624211434884638901733267929159452779722566521046057905406135885564452774612915544799995423753946649560880350830219945447982039718366832737142946228028811751421075811255620911578256328963947961293457804405674318840014143511611308955976620232724025271375258842837526983413249605866150307400264779394321633899378738197316271901952495481860272916808073328608491058684698966011395454164132608714558928787217587618263945324946335522340613214794768284591476814097658728695457721566316407789505695423188779238305833227771766250861939794668642576500212390007740557342521711443599770677422843797687665013992684151911887510538466943060157660581608471433399898801910015644375064630205607626328038087126345050854161485592435593632760047330865859601237106075984394067156687932425720157163800821680325814263355447070954343213100461146160258993152130207920537506347625814151270328322136450432219613124781243639551005313935780231470358240856284425720487251190867494148842340459810389431282260228312030859678189405208288833453310244171015943040243634266656588517787132438415822643824795690753739002584564676946599989833382053173896120630644841316889407977003915607104104553171960825433071071795116376644313663363063408859559684654483158086497129333390000126289712005018777468978539685032316517081103987989637659169931670390956021548735080441600161442398959114088998945671305534922302944770755650871860929119175284497562922058416093348399889293003855759883107575787364397621674660927180019999596060107754400512659404068071963015109658696741341344220631516115797619365709442553935826823054222183950736261413090198619543449232556004564538133138491512042034115249261776319201014446794706609741716632446587882343871243187247060733731592092026391560893772066991347990088641746928367788419433071608729705786980149885823050203241807829233378331432536789245240351390341546616822555841019161434862304249133434513626999518061626088043889665788106383415599332656804198796141365687514117364769414681954522787977933182155021519738812123823507183531083277073933127204078900274176646425999630236148445486805197067479846176481822216723667301351564571815157801829045799421584679685177740861495292433116527720924064033954247391740464107310689340679005931181700287196411705193529713006247489575369539062322344894137120036028545045602649131832381322562334777088313763159241244929125747513499873553201126283679786729688929185961199900814915231005828007991377420103077841582474121239519840363906773222257451011910683415014045793282588899275185398394980919037863203729913616218854083378607466857504690989133874221633675787198117914515000981845870152322912247361161401757311368204499471677435922498808635007964756976201059155641664473926766431926116394278004163370951389427184342988957586653523319286120193184113922384242363288912359075631129965341286589876963093740037513983657401262251617010276253859342226795022671716681769772845288992715176842063444306535850662723415112448785036802462322158234631622403081840359444429805861469531847469070796016716072078055416357449403409967534402912776252692982985101999075654741898314645992576817907000877295691085587313693900418456548664023035263676974883186471110541545005684689665428655773256668096243057891947304079555118787082435514401230343213651515311067159447789190159929022715592192892371991846663429815549518469475072716100437951895474995766662044385468560600337023917142300942598232691371826872868877670187734248339962750223193855190931774665266394934231861191183291990805579544134869836694363683525887601274639339276457209508121081005617127201763131452180362784815307772306862397625413592975405414248435144163899102112403428883627175420067893531277418245370845077863698961971181363451811612027947900617286047276339387849212777385291508928609804130891509093451797704443218060519739686820500579694299792562647803945842520650028328144907727115169719158215793938206187016519345768264123521331357139305353797624425996939786601468618955990363671780610987032777392525504867139443113336384020445787984751399447041445502301320634122775966660575659881331659430960222013066289029012716568882996081577127161305255423203883210998145907970143152993836446563095531376870001503200633238695981716570834536443417075353379549755710648193065486955891311613602339787363584145425739942693617246353729004502841334082819693969085725731241355380082090663022201031729716064728358553381970066612270799261080373381912853282858486288477550822858407304201780068495490107371654858910040550768049149688118904388118225156587283385493191478669822522322501099055686678066833109544119462317953807221712512181387416126946670411709952136980340429887840194829511741681603981580336370339449420065436764765495637029668368906702265536552796147471403753028533017510315276827607264923750595770199077229299211271757566610337861198889766080934408954748624250927493803824683459359568398616903756511712740500581466739131884544801931198678223570363280172075031325843731609910724270169807723278453230303102858493752541868965558812783617396558322118317184719531093446003589527809274560661247740898373274075451800558189283784175479794706727524757773142445905401317382945760718215127157740758948486184526702475782256364338507844883823566966213563537894641540299676429742066761195392152005391363846599320653283484671798746536734676980477644896881722758781060057926287659678550664504334469918046174193659205353930579637230124900058102578049369152320177657308620094847600807506818918473373703307471660141088403505286427022603177869928697518054884849091097156636462929711371662375401550687569459628953373056265263772837955978891662373504499198634060062134273690262014932242582948805933518967210367403827249319066025889814740348107170288964210735976828995389561089790686397934619643421812350120572521900343113306406435389711947149368873327285861111896966337725476129950153225388838352544382204542636637378686516322246527023645965825887745741733926824769302068389262165637809896000980700461488433525909384025812644302477302552776005339453694061035783000459489717521999996676049523674782285430935161447806058272309005680504029166001952196884145970416171627047810650995261746274733012172733938285470600892340396380561062822754138725466654498882128010074003386012933789407084369872262294072595689002320037070092739412240056789014996149852647128767124302541299321343261653529651610655430571863921179596933378536698646955166943153343132495288587289291354955693944269286272433485100101184049735793526463687460790798831275408198434904658486694219828322577865335563861701437193894932401827252570107824726281172965447924717779082478112743169178285831224971233142531513834934194464917425557557123694223936994630517080192481674551099234105304501084926493685858476229735674240584648056823144809910441924328220055132845987814339567370487372849253692798526830848273032867787631414086694764679542461084440422518572932438724417082373025649835087027938833724296491250263124484442397802913812239304711724628744128252539297201003612057527736908683393184732313824039900451025120414710940863829996112972705637621459161947054051635854432508614511718714540957208276610056496684941119560243255554363256352389170038608053174715348402656323462688061208151686126715345503114379236800930671511273248245654259526864956762327484847491428934746537530824517551477850952442758560139908389687254091032878270592817259915849524302003079943217393664631484147779767891005692115684471844331672936907395022151138973134967531176447396804550669906460493073553237270059548629563531501918273766456223549544287393758069266039230399859537812532130788211337709568832272501345115896860447259909777342862088027093643180857329948707483375335209395303258357082793848251143624219419793799121843128055622651959379649126422512535517187838251141293133867387721532841349971053878346294762988583834723137209722387388910324411780208187718657403128009525240787546126641472427856786602444434829485898205388597167556563842731970778115886955778410300943520476343673563331489935107380980783942040959144514432946678188076608648896638106524840995595421546632753980890094694740890203148149935371559034507425114813273120265114174700151040556263888078315985822948310344966444351515944365081272198111217083861702568326319338167745858411893912297845639978505170419684973547895343521465997821201849775796834104139160590518141592822876823003998615060748114117517737076687117403577096336254736653649638907856468093755641013906881294400581258515341890298017764946389811530563201663430095976800282481497733101792980428443829553131998519367747474158292982624611969318859947394417398230869185370251437656055356327593256469606861573268051776883125576946850290546511440483575613497265650947678814326919133398986480977109510664230749393378580838307051252442397116978535884994122137819625922133385908348398884091065438239747525484799594757958709760954413821778014436476340190106407103350071914468454766441548631609384585921364689037378806639525807738116773803018676114368743510775537804301683578345822259584654566389770503460940404488318315347424635330998276051127028957564330845740639190826920520908226477509137754991186217611236602787853172536912678235486986333632950173920703779945969218926624858562987568716446588251491928807939943049967952795535825779159754428154544038822069778174948244261749776612357338896021061080978204469427389415537127744506789048597584128567521803222966208950638083171373132757700923790228690902513183920530404069481940710956825719837975862939174790110107756814845658339121784872039563074510914429470718086710569826786272646473808650464696165192653641729844807263052798675202737306454644136128000214526494116064995341045824300060605289240882728711632783485175928443108270103273706805998652931344387410594901905339300219338836495269267667398044416911974290798870224025468120166455663631933740496077219499638343253147498553574543713123584017298699529805449022875455617082582191203448590224837961825922906050597262958200106778477261941351756912507884277256171506318396839486434228900308663776734056722846342155412537302981117468183408369410638191500619276775057486637164236062181722981896618933982278749956808408582603256252665981460387976577803491593296883584646085923802698461179500780570352303620954885205536210720527115802154080357937103053691014760510752823179916438427230319351950986136955467524714513123989608679887005087426349900273807970461257827791848241566797490960746081269926923138526932373475961042521351308239421465051944996300029083147765358290125538512017179340164549546643604577223906983491043495494640315204301248650331208764014397473964846700525823132001456379037426590533301265739482780718018327712130446629768062807110046854153427518368581152492163941273461270311489647392945746176966914332677337729130241047227977965567133342324585929456938181678713955301248999175440496851497536225566955553047793439620580464832725013612453821651301012114959185899173998989557450711777619639753558851544062350203671547718793642451576436611482269805966619267348894856984033340527695860570449746798782415547650157610307605139922646866070975387185141810009437166021594618440846357577386106097028140637905012069184542593395700996764341162912215172223658951220915550287447189407899249593164117356581248043061727684443148922198126330024720140654049356680329207255761625449351120530203676150028858866507045851782935622988308377391390823787793117546204433007658919622540208896773476073063970872818248379324417330283867184450582912900947409504553273193044550005301303034462254602575364395922235353099827828047331803341189127393822492681803053578791085502396715402013490478092595106897590628614599724625557076206253531759690117603792908379284647508644140135223171552140917971844667130658030555943905859863305240805218687499936531434290041009759171221384329438624804140130305726220036255773752102013340918515315816021565140930306161030984143387727364715931677909164815691308696262633195224984938725902984038541089333517557450674426519571670207802701834458894798547695933685959851791861809222004782196436191016627415507809689762038519329606594157270733527144507229403314038923901639675804581136069685998486345328952305332449607162537506291138292089777272210685353655238193050073825890838235645331017880884765230169312514219941955614184844624949446025437225026775031842323721760651781670974333617342353351111904117912729382686379685282785564674089820435151029178699965424379664520031030903396401858426691193973989159013424652728093087305066602037342400758062393366462321597386537686990497570257572308705316404727523424892585393151891648358789128953385405255859325462128642122273095325340051398427421356302360527960932531062885048894226818930619587573792809473735770058620690289458689532033579509723574091797550279916902767538551671444012951570404437217486954738083917302631214983591527726540543598155517841923720621415029511704389488967549386417915702906305416342697963279672865484052073975093244310916031247671819742494758438194381993840920787003944004519509666453833673752932716420494441099199724294044070302190295392717743313857668639096890506661943813038657648851488883126549381304363837312577405854279811201336179245455569738224474451815044584496524218479273163480406747797434119871248605984966306987909066450782829072908878141132403587691013697879220996751512123520408501268046688354538496670731763835941675162958837810514929146508856517098185411887342558439179429156791223729483635757736766569843355307906842683084021668310656464543373051132979621711718129126524355977066130948050245673301593947568687756601141205038066269883580998921465103823551998206189263344068090803825352796994941431675043069533012735821112012612312634408788702755297954884466222747293350870668777659077877946832552175955736014288797865247062420857471066050926085629064054029922257844579928854361987248133952442579548237630796660025106047388671496955567731677974099771698434542533045293770064413523500840749019565669606246448015759708745243266043047459152446481020268121883042824932463430516771985120147369198460440343799053897920563954885652173453264142036266858811710007770737040336479574080534872180271261908964317621324380512082522047339437679796193495527858522008587930041961132980398214980834616707153185807015076108638234828678857121356694049415570065694692611926060321174722563905325862112342889477831437841979197664273031382422585074460868850931853287914243511952716424981696343964309386005891393017078457250184970033785555650157071253620589276362906896660038904847542812608237824689406700453992516343927200180038005215742046500222314270995152916834460441923453909555682843240077225566254211571613074806032494039596779371253481647995490285911412560489247512291735119386442210892916954033571635123382038692332556165851158350176357868968068198474884280146988143964372267838734882731169423675296067073358316388731148762992914793436937528582810475537254028655584761621729294468920394325590163884242366672472126640573167788430095024003685673103832815358810088009709903649180217039539843288635263512197559197351973937888040984821247353105965757903443275670830509506209642085987171813038143225343314572346248082719721538844533763364386429596944132761234303924797827992809806810547533625033205731239389010516944006882700673989346932435198985105109876811122832477531609087862365321307944948928919320951164513544665502316953505301036609682910773063749006534276298923389468130758716431924834364123567350379077231788324180744637540060002397754643023423529181485441677624265851330780944352342684061160167240582434846402410111815605205670840659524158627243881050343371440546410020221086073748938503666706711943962627927089062138674169981642133315501980901481238649769844397479896880813828854508641722501376546461953785692983783849916317008515845188983116772771786350972840939818417002612954066677865643072467009659630720865917879035348627543864103050252090721060601796490651064327932283203035922338078566615349321483291972951925537280738046023144340879905896089205800151268672422888488878331599375703457874567021693854112888550886080619888897329601797627540664875819625618207459626562508745589864238872015590968766144120088157877525075781188277931237693757135419235025780905513955105294717156223734781117091574595325447667410576041378273261319990221437678057887544770073512047959185976023836482891061371263339361282764312044569283992176518239837611662011202024939959221743353074849479832268926030125271766891205290372898906153456831186159920565943544082938494102176373804755038951930203767054491168800814964301071084523828513697941514892164312745221944412900164067808215566029565803308857359018003913452500658493987554509997517724832291017408682203759231444040062805171892498963313862783943332246003179441880757949714639583084668225292737954418358314850077017274489842774194167434455102429513866474862918792605576506127809338538181655735060257894711967298565303160614931732301554513841718349956571941322031678828268644750033137372434502133228039317551011962431710459479227567039319658894701813669880847709533437563832412046905853550394754260780159703813412968398769614269302488188486663302661308140564857124274975576004282749277108539218273289329840885055125285375890029831535212196368631166387672476387357465761387140650612870728237661967579091845646149031819671854407618989407067641655696509253728701873807765642088358995947435059180481491500584442927797308319477416999258239903554879205757402198148326116896304312470493994909493233369832331511873293798583183637023157516102843610159696651803422336035866780477819942158162986847343951663547537346319376352362726191999941864557487674193512369367975354570249662822085566310736543232727402456676203632149979773063875749894813965207344985228107327075235332146211989285138101745458780717751395248470879342859910371161890629388153578546069937154910129845151209752879053633706368888730748916813257331887146802703706287998060737914861195957876976006372906442765128353254466400820605632658459350490012634236488143648226472909963195717306866371032531250112228868067814287757945561903290220711266793946952186969539503308789221841003218450397536141751494822701187498180431011982716537298760226687338955382726903086315344478838294383506470566578052830942672695407109137883532920286859978339438981476817398407814344217114997161490719773572361599135381970761335117709492767209663136855824389552539804214019198689931717443752362251282945065049599163578699878556597309685531465097175204918796620914872051459680182588739599319054441475859214914374256626530398644763086355290693126441752986871094449753978362822373239152199696709376824710868416595629500353430107852511923994594683319211660752717795595463580047083491903808037520545322221526613115187484739130436791998783980943631057666945829140230016055366819988625436538099770013584614123420425245151176807197886818559762320050359782374188829242231482495648439216584319135997089903650209735695453905270251519036738448314606771166462845601773720281312376912544697307948939254565616537100796929033226686021659426196176021884434341645263356630668112932410654759490360070301127716228706034332268864980665136962324155795737565595098992757436124944547085556245794614999441763219995252699809164277198568359823986992523150359344376945777642526858051142973587328029088075414845917845466319269542786204223941002505887519111210093346899763125228111419488067065118410244589432613514215162578121104014266549780784151421685662532878607859700679596018760880201674070326211814152456671351072479438450426404036797548094191385082656765782430555107263601655123851015265626021240283999256417853726972990086429218867693646022644701184362231033182175664328770199063380849357252288463626181595354804856677170788360314590888535150242167109084902436022793793955167507487789637629749870768019768811393848634402101430716181063612098732899122348063030593994834059115624841796262643708576041402238008621801378584354644625336835357341573912091695256578486537068499307024624880966477024577226373216482107653134983497405230622260420565528978586009677351194147084446311567915236118263054363315463627396696462824945062510589950715811289680510546440844147611324389366251085329533624672040283132517657149247796118170524801527629762550599922800792385749525219897451014698270992076991723718365513357130264113576924464814954143531728201468484506911416856450493133892429058018495279142564535043071750045204325217137763886513036400476271231887872267125708586527625290478829684839140705784904138346530178436820410591728165820830281882258318890290910334778794954687598784697908311790215299623942298428599958914311292795668419830665397108397447772565333081021797732584778851252050726643743176924821131783595966498181644397591952991078335368989458467539136147998771930089326313786662585711486614835257640710487938299118562060721769162533332372713381762850150053324036072414520876110692969007495557467398374636017728862111186175042955175635627012568014311900229159069508556211884630332389181347104778598852983402552887818603740513191251925368523351103840987814395973550221792960086709569079966316082674428745823561853793160283442979202890130787205375119940485036495157704562128060038433620286919811617314726351553245372923146332436583776157875031041890335999325578378980763119246234156077951537955146747731651032327981494493195522825942558802627727307199235094189476449022276472532000661594569852587340283151378108328177740462751030043319979585144562665139012333338924901910931597143580582845220663893761922399836203386986773102465007169944132994616853410475479039095931737239212669469487627741551749505773917723761258416069415414449492408916314233170783324801536337405774086696920560596638188079520500969825839761798144352097733205657591114363468031925252125982337036718006845778897137850920356754296509433723181422223600604632720869265543045624402038133481825354244450006578934951885017223390677142217333941141103792165306695179037017314273336589846186502024210213910418783831244759330018076892576382365192504047230337069365068022013370716533256584644462843408650303011581384023503558949944546314222989291997404187798949865426895537722725549957107681840888858290588567104208388440777680101672241639926090301956672052585630136972196150762994598785413094349875205054852103810418253300237189940060887667515813040496544223203545584390290952309113009294730242920693228006312530205291915990530716382677397848068395692328592718600790100334431549561383116963913654947798168680893544269424232611067512155115160254788212111340526654563205927200512296836676781297222645519461306502996897527316591629386312209540594869672350639622225528409724536783922693130782158637648539701151027615921449401221609579234984237789255111004710579705781709457794490560075559259382449837121425451940056962273838679359355389032894702957431404751923721824370002554017963650752567451332735549671509742409533890154656069492138121956650696128461336342614041768490730756726981357932579497397117077054937228027984357415812313808473606027253868901992785148534684841604800268670738716208244580839006806175311748145652905386624839888399958294373486035214793597569284421902724025520458339925334327430314578652036399655234914760723420307081325141868554586770491762596364970197742260326982568514058453206392588274863771221399535088469481615849689004813655586163089007484429257009909815633599166479961374110326479105373998056951008908751686575108538373573149653013350602773122470453518372258563937676811517230632511200581924242535505863504430186475499838365669142311207272610758576231046474839379560475108700327344011468816757851753069903728855786525647995232845713748310414007143414327865762980344622659981933299990633034344361105825910671627544828646197795162804695674115884129004324492440851211361624946859026553512744626009097296977285573066562639897314739449567895845403411695277733823126792643869161552870993962497874411607864230473700901645125912678351928074279163424621864464569738119164746298042338426730317012296213322075562667151327778655801061803015631074809180216633164368151891760285036006728034318980257510979371342249267221768438937134550938650153380049445722495590932106474268720912639852581804626364272926331090108442007510986543308129394545125141708740668933948097865516413640526502184488557336942796622661578624807501986685139279049494664299565386270025452265123269283574563719967896092478451350509699455627363707385480032997752326327986039175937043746678587415170773554699286234010353194246653828660221338455380647212874700476842262986172916576595892171860690538742580187666910027900758832106777495780769393403221509104494464239269181981658511057530159909311957500490737036946710915828446179147815536733243653098701616533622257401622524493020846426312625798142128352319454006715503204374455470179592535119518724886235690708067215726869567595977849316206451186664443265594831310571817143514486267643199331446391752958452553418679307528363182598742422999416493546105518030481300431360165150181595153184972454795248199097263422566505143992280509962037514183776516181765780614379475094286320056525010458902284877977626845988384555663581667282669819704470928054254426716800731404161325467413885449037873897909296045822201559751996661790372390011254212972107284986438051594203218063939139805630110765125810583581696872111807997848627388428154860664282433271108160453661303190382208426640497532485592340940661819058079661990175155705794520126768860973436080848873212871615109452825218068874041559589247611714104022129379163603651403595592076810357210166069764708170805246268614088819780950681958134141432489733625003925866298948067434139444424373017703037922895412358834015147238807287347515684855767117203453394368014604417753304121247473965867765892691828959155570112837900938722799172201416221492579692324638833919082211693702356650656473650338934976507412972054358703648657059522258576312968719135944537122949055276326212609889473366407123405946696362958149877710749787141988547555309181494266638209282684003023272675193318981930977315181880481606684582001455098080220587612555207859286119899045979815378898274556151985446151738456607179309154937690498129707935045802152007174465506919866957872006657671635854951013558555962645243754938912420810923954435181446853701695884618672073115499488116108618667766926351301778013428377325545009823016926671027289936713524362916044691622481842278635460046056178022873617850156762150458672523184731934413639340816178141687571843816503550458376955334248143752395917719693214640410766655994580709919722749643955614023895778167555626336777135168488479934755686461158549776827508713803385826779600450950173345945208887779651271806159056619464510440770648177009491415482413839656814634824715305332017604400983208454521810619036387262175108539896444681232575064082147142157141671761732907846349444426360371626570781905669986707922389566776442411765310308220946247767266709060234717688230435507609314848240710988869023986066925053757599055570307978612158384384414996975245584998211245702564075924913311969937122316267732866094688259605712924682329459044474899544369394903986354030751537260986314935573180182704655464905048272145891032781889628259277498382316573485714916536390341758235750511606158878598814706770345694218318590147013412403895570182838437821005622380647306098952132838324261672636336112826194943991001644962837518584970223769804036464030442546093680685619457055620648298254831664876702502698505335220020884167637105323072394922115333335758191153358086283238442435173280147798705835342367160909647047196097242042494860323847745860196131300225272975437540385687217131513490685775068433163204696348993355187510351429218499412674892828462712811611566410860152468962644418683117888950778499921613586746168874504368495466656199411917676613083252946752463341159911889004985111782162510723006508552226225253549773461417589678901992126539447536800163632793924321727969774584887383987997467845543243184270027358004856146716636937041943243851149770689526742890621780089523523617976591365793754347602981234506137328032494655902337878336541377335515643511006355105526631499606270820583012714219595882949069095651919964047062665500123837795470710332497794375922579603896545645750157952955605191671401540759103033257525425235363313785622091445872873022477998337783593864557779104745147442520645679011139765149833435618651776483335115657993098955497233107376895633696501319601372150811904153964520666028889379202759398344521253438471598525656662348975336834252745228721685871360212080650268976721946854053955195423028859501134412617401077734555958663206507949280571396834052897288645302571273986029062197939198099324086185708503658220068931995109406509817100689321630376402990967471938957722851680613561670268596098536901267430066328461754765707196820794236690387259437169407480310718122956246774102587257158071070618560032686554561871239107645596951787648077316223435573970991735691758280823644900440949174773392264152113317890673417223588990472965678547307828168924859917939747361249057455967746154584706875630335510201095075786964706013757197093205729779201389324539669781210667492921285908314300875616651090895035701114695680559121676439761696091818095536928091391912459538499545110324845195225263903300647603335381654328197346227276737616102358372721002660545902480792859427085981328017582714570995434444951009093367829684424664019837422364776817015715519255101653355503389664666206986922066432667225040139563728287143502136245102702375234393837905426656663262130707501058994511968491931218082590277356446964077252979974859282624486319298326829839577768323460715098587077369407834372522534510848841479203746115360637089716538032724362873469799235386792115382525118455734494629101459085530055581789122764684826088379084641784276271088137061922246268616661408102526375041194623809078249411659593793117407252126913296723420781810177082476712207196498730679670256773180817203209689307855257929394397455177109107788812884218173063315597007908311547025610915287063167567009526572343652998070310785322965091603012686890409157793865986972919697657877009988657093419750083978453482166978881052459071601000435838732070601104875767323298872816766638907243450751492005885209716187378886034038800005367261326069201811942305787343728586378726613959663380682188497081712533346272015439767095010738099796025472788050891771557471954923236510787191438516916560351243930543970530521191886982423822006765968042470356860996677893194020135893856532919935579348320133567936053612684716893142830564898748963021054929789291559063779072047834309884166191982863981514881671042371855846852456196360925571043476829159934115078187626954493136162690525284570776522237206099309164686133947395402580881787053799469890482983444502633870656361664322124389135131494452956686593601801639427397663219171008225209861417347282931964375395948039415283984752600810358390828269425206770340157009115431839378186991557976293861487117276243223983847910471549475015318633619419406002932308068543717570543351195100757053087312400514947323045381773579270849258219806998112867526909874839948570652973736016687304835887017214139896969314275023649885825541352988720097156873694894514264824946168663336528839652943869504123791770784508130928508322202681159222543097499287449837457437957288268536612271857841338587548615269224535822472018120585502909003095652910570377048877445953308702244499599801654803595488837620235326185657421640723409769768697674052431121746408479047755896047232322984536417749876723753257239385722933632152514419767832072359351283509894120948466972438670623794524447759494593957752735722830597786749167113482224155973495097171012782828733606673225184121952764851577461577913784937516335858308672792575257832322851402462396427014275026441565925473080063662363872373746875403147060095348759738108524200131533868687388661605541453540202144174910900220128488043242366717540268361398740460322839890363133059049039152802503956217030205033457610139579118304973525910260447232836332137549250950451962296932508579553871076050130408450692486638188568261353123207035414994134576639968084960025491379901382435227522146376886020399051965031181215967696081558182625053428542145252289973838605036299157895158395286732644067542734378978214918164352113405327772723858479444696148808785853988760605520830308750289323800704319952312571534571209980412970043359238520575911200679656988087726304937057540056632049245513304107473002483797302219300935921553028876291265114277099973701588081455226835863989976631551136229454775116586095940936628334839477124852845509666785602799036431411843722756854204940971253469500308166304055231878674614053961756023272623215149972112641414070507780598737965354705030060824888220594927941617119912234889098686419460509833331100954303016028030669645703363486556044870887980507027257497757608395639085437136659780138807263252909087614458062875417930195865854696285300185309844646408557239138845083516261848641665815153631429070435359368017218271635216266231544024333113575003994170097727271008816429281978690707677023638015254782390610229854585247715168660862322121856092339091459979554455913692823489699171508157482942160427461677927487024980649154633873647713242888853896076151461268931105013930928697791329432243989451218063212569602482721631537330704718392775055117041018707759357241837589875080907065484249495042325880073186315978504570791146112900888860921801337540510043642966998386609575399322293318820386093714548884912653915639484222241267260598712772929461880911217514634769429396677108081906838043554889371807731235104845143652984515656069379932188741096407773495115799292989632072299499945718036457436283598267817041627474140387621322456577776959529009435065083687772246754018637598749325496922638081815331447522624055609513726733813387534485342074800623400655491143159107683951211388147064982885982745181423128016284414267297684808255061990253775119392717033533720722848259172506605152381305713677485657170404678000513718065649912233562879348838206805769215296666740855337708911310723800690706325501251619957174975674164571477816513335708911290129786491399441414187080703662137485474322957193793985451272171004630030534886786668047853141785362148176166505296303830573293263973799071428379221093892142425096707297796452837456041206615406654014218627455216809641544538412929081021532150344094106845625130590320622728575124939015454709956058102328688102456545540154636643121494336253560886478760190360800837819876431395771664472847035722001135732634057943868389834856884998192835146945148739139733630227822512065417453956200693565857868047512115321400725226214260536289432359329598247236344828562950497205565895584470522633870980417557167903398541866194636377218723460600384116050647621266907302966537643412970262972786346810922381344948932665174422301818168772541452587844575132896146053131326988909295462750038172495913415128183713198168958932918042570964556191939460859086030434529217835800337627680119233604676388219416218411490310224243604879459327144778009722720018928356721970740443350668218395883262998461213194004299753291095099463673665759950181014806544781989397729511705808476569536011382180054464112005389141388484569248934413618354947684992405255871101755440902616746257979457064758914723728885936568975121621334307641694847694135024110802297189480162953251197823866148242321818023592830099916828416682048904845763593346051899938194436415008407772111445952673807487288049282157890957581010378391675035109868709517928384024372153784219280328903216836902761846582998095269557287139507950252290664926298281508405182533984744681055021321845839674926651869264591186952650775372038409055055435410572471877426717721547097795452706404618317197592037808169671781158729580303466635516201413431311359770716121528370928332063626011155176993828749172038210146442785177683497725698104555231904580445497225332909472255024738753430355742310421932366938676695770472110581017388610825315664917602640789542957600018163970709024649150130429380793379603474296005377557717270203642388483919465266163675683838310792946444732136405160720190196698729066870181568396261924817257501418765081431981913375148925763389852512445006943311568711308596418817413247545416643645764484852877403098631814766309396431168901405224243787947020010061003861297367647703384609617718036451283356083322758827213008413182570157057796737777228428332608834780558202822630596569969637624061952688726556927730242914158603297440894042331398627891820231510038960188672267083592104094740796279566923762016014805504643269020279905081805999625250617310686335758767561046436294380822379164944827960680936251441878165166087260014198927074589967508333266095964193937234186052754922086743976426825963319747791424940637507465676491344207128490848733967094623715856415923805212826271015442885508802743232092331283605249305105510197043911119016416721948343483978851504700403559914493170909681724320224140993743019670144196217462753409935398514328672031523510855515006880218464020882894892686263424071361552008049628103597760661406318822686725129130085002165721547534789919259171477756341174293095466252124942574837878493340951792927448983703765768722772667717492395593127790224730327816635325336685585903618257203361289262286228499915125985210152368859610616932640601537426610353844395543742122491557415663777589359662823393587878453575159986708810993648938717810990435323258958694874934125392386532556804127286984683010921643707984533617994008293733993992831943003537749867309992367907412813585385674785122842994609616026810112277473325553637577641369963782461454445068416777546647847263775878373796179027722608068117676476033055980607637883870629035346866371177187808254571421596137611090327705902047325490964384606664634529616245417788822328052587919097352098067466441654374734396764848353757174041067986529461461328574198864143262737968918116411365223741846113584195852840853383403293445016373798342152039074812490208058050036096113727557405690566546212292552700809209176843807739581014980573830313822783392847384331109153947013278553922664338195707333136056413130135378807010252396721494587477892792741866181964880967727682895434936106916660004398577886563668794236190528779360310512246112618603326396503397781140435411783008632325569879519979698205076477462237819483350644216320791482091068336514069069609329111951336155317657486126299789226806997132925776430461238384826656859525785115920721059281143531350858330216845125582004413328737553775087216092923821909166678175787069569452342889194821666935960033600324791942491057715967875612665249611883650904076993875123481006967373691968939049369892698384392072495609285156775963478994861785269416585494150967499121584045917939627133404307330427657860459146021277228942704652376161893148689192739819799929631778961804188037795973079347255549298473354166104149155773540722490824219898476525734700476745432840575527907390760452421660028867118849727955785827916846436267278185165515652929221594879239814471230184262307057762533091034632064555785882358372886095835999897163102222959516608590118567072549922651476030789095091444668322605213798191216731702097839668555330253911662061242787154532616058480319582709560140394603256932026582184351667468108683709596575205400914657916030012291956148795411687986225792575106656626612303860895065171474885288406287871078370842205562782782570299118345835759710312202304602493273007909355952689556306817947638967340421779714964058163365564125316964900614886657245294901284086757969433084789359414075068839683524538374207461086596024334502836503862048237805288275935254879334768439101540141206360973143096967381736574686670766244790205914494615222689166529712454988417319780238934438120735920479323809289885308677442747923980996646056286557003695962151676782864439984507987831312907737186850925593146176629661102949323159949617100194184852289725014875660256716911423635732417883077270232322727476185004171690261268892157217465982378249828135351132673110003742405345912829048942385245976187563508641123574749392260732816448463601287006123446698584098981666570016436334652591475202616125941519359249763445646810088693174695941253280798576063490139709146116655837402462951945764768211479918512877264165261728954695863650288333227323910498332480676844780466711097025524680912075043350698812843493591894623805439516495412667248900633728512974022293039606946864120876551869371351307176391202668612352796455720863234708306034597443287361411429298020117642560981262024915938964855273993210140101722693969813753787253930151033645622198892758089318299704628508639628116046801254331322455523914012768200495672646386524847872073155100197263174144504626679219923079702525749719995279781282836848075844045033882846550608655887348157813365771998637814361374687370855688471909518347440547210799039342224706758771656463732482513451918658647456943862857400890750430313288280082624385172961103420835113395660504236497601314090345739564820234880341015761855603792733505623007239261159653196870556257751525820177816117406751966567060241899995429352970761379044694573285346665297359593893247508852012981760956711722216717753874418731754127314711747343303736778798611802363028018503689398338513956356327237069728360537021678990587759153398462454719971034925781016961454390454446669557047297241534257781030695765544639341943347712272489418277409943201573108185010553712082469831775361972423324363238811808685318825636028297454587638982172969010211464408458285008574466842516203870748564207475586635355099897974603044642540656480249594127041874528268097853115409512507511964814770294045506707342178631182352127856301162529709771723378102439774873854667265477703441495469317305353704983137629067561851583072531427141775809020929460398304736303626148679263347123261712470908644565229308252743698495845982490746230818049786468877659359345666271588267581283948776946899012966106865367762608765183440678911861855027940523458360470598608578449247927053666221765413412042565467860925529081897349948658494841891132636958807732973127429152719000955175713122795687266945367917880009360311880292544420964264221461874770215219969332546533370888242090454940377181003106449829561327992248311714533654129532382454786901281803750233973146460181759415501246019745317737517419694985472622779889769228289654148586888822290493636332427689530092046452696156825669437625791082953417812474274294454500172351592621995370345877612923024633339414324316815742519780027760332463133372608201209197451583181336243940343617271501428252311411875001735784607308141706692674248312964459380182658457237247084642767233536227761719220058514044078718608495124364030637676319034777089155983044825259829269019117540586317272522271124356057300837510865445656860358668452225775106564688204678550270807103248740283969138578284415704537726488843677344116111200769874297195286817554458685707861644252668589552793642956482449783455036488665551269437696662016512240808948693666344951135279938304355862873995084399773978380090700535783412576433548664159980883405155422365438993674486995734859399691423141283910840601019401852598925824628871916778393007080655927894206771666134512122173254588980167763452512653319114413469242688160763582361154781647028680226618609525502764367287030630352358680233279073415717812846635450715821059463057972162129814291533182593577815327523324086809866537831556161413042578516638888582924386710213246891502185546166153095356972688431551123630552532766518968640587058421947694225100141532118488554636069176017643313209776570530783453900621555971114885983914167020121580730569618667796579316860386081674673910902709838042714733634022876560828407295799236848435307040503665974995213765854157812013573872116860814449767641547616344134417225894822598197085373865715995815426716313288590235106252616279205039808555431719846154083250242575972717716782751512504685572165344987042980430811487012038317432174928492235437219750288420650702761359437242045457266531304963285471491676667209395158680532464225386558848222964103720964463129399596985373089796708182476763578416662319367636166660675902182151695901140112864533888066907811083691311473821254045029243093265335601599806084547354368450070010580208220466149850928514179490276537855583184295915044142960682564953389019916184608636647513420259080657290624549447712610572674595058533211786003018661389514612965145416851563768191832856471777088194623780429083652884450562502661595303565702376822300376043852590640050336106201549901263881028049337992111085794638806045694954622074739818956566819029112996584176608184494386099546864117538043386157123295462176019456868806016682753019127062132997933867098294203349742462147091857134884886894214571291793925945730865468451082567811134061016501973701282565119424031760551436548787659745246651233363986305044818388933282724076068357184223284824252930327230994950819478165320709960085084609593329921243838535133279985495960917478277406521706117125430656310303268588513003752149330156266536207571214741840456449301170856545840718691904145176375559385962436603209483744336579902910287409264362630067556694249741445641239769177848284750358400604443238943323012643558834175063045962764242097495261750571899707002458328354686832654157835759140295105573420547823199890620418602575154744334111709885242855679544355556064926342579135661360781485896784437481442445919461717840332256720644295653420443991980374734596744741408186367037219238904044496859674238868342180592403410193629061140058122431237218352939572005959755085844212520144907895573211811361835957499776808699489270759758462830229046858428441666159830514230467810095153212337307389785632770543148517027216609100255052074623006032605381073132829326997206195472628943329071439328705980313881184631729217517197997022024768908581881406197920406302657749194066094699251548754147869589059683016545419380759815796286685751731511707186595245301170263307570536373047235187510798041422266507421630797816675975196255651632369156536412604038997388331938815746804443786523359644197996999012838417814181408585878187855273150697646603023954161987360417774071028396615430825981591747858319716724742804370938777628575199073749480557262859944971711646581954219898014783503270452360627374499690947398917591710164367356844839744044401371612302759770955906714772243721356283912495283962030957088233073719256970753492615113048297211037298095022603838997899169402078748367414173701174917813741207350472933777158293469555798666137214353462774173563414579111358601434299428047311974134078265433968017078026071578677035032602339798584304976755068321737921577138366845039009043066148314764075881586402574489772410299261347260124493891975314218531803379840050921513989908611216488728217048056217195682576335107116496259518390637239456881830709855892046601091404611654315459864934285605873293191477968890831904043298604102863863843235296426774034719037732460038114407838198573315248933128819583558835849567295342547571915592285378444527053664826482039470850784943693906804727459546066250049667320536531619539473675840238358495604548313542074665153350727283119034255822869095686510452047351538193253959386251875997538067729804998362926685859742662079559675220745098816450849996165098928098352699975910707423420758654262053006042415597001064792739896643711835275866697181280350057487996712637212943046000567512690732770396803419586297443370622154949041602575912168157291981562708697853082644979539160651612730985222026042818274149162951145023384867664706225883115341535681122190665439059777906979045815774546368325789474864725677835313380038617083313002619720008133787293274318413541785952575276103469134736488299444086613539122953750466233282574220704715207518624339860954579583140754984546090442332357266796449339180832858022227362695515464444488724095248163538025160935244669575122809303273418611022588471533231198338811914875367151148185367924025802711026096110245752308368063241417256647581148671903564034669473247635443127441925773217278072730057671318925658317736141146576319167304024558583747425261254124819044511931907666365579494113458497502009264231971482177975403020829964368765824539178869079645894888423994837834343710098096591007703890673181580138117028808038103480531142415505682532163027155503058821642531743181129689942662173135043906647312924008005273663605576199288379024618892307245473317694893302166443053311812189463183504030988384588597375661255392355889444116624477038678574541825483576793026926984891354310486450012004795547881558842923979231765179138781039832414772667972524814563388446490380587422489083994532823962476158733831154957359118408473590109224977455034392961152747493106076810460742524852188964085658701061567720870743831295320413399973896903424012057567123227926548951865005903566387725404208467539703760168107959834830833943028011464497662570961083051332823087972949949347393468919065753913370293434179697840947442703360014509101991797633232914183497255721264424844875259476777500676501044496916083601755466291194218187956496893938677799962746208399229246072335345743293467787836196939228957420333941910599149393690999199346776107572672890691751595768952954646650318520721288731823386706754329680963878732237864848597482256106386621921118068812581483414482448518232407697825513440152419943050193746084970324068271570551149698691044023046528916885147854604480626106313691497304455387775201416361702354473677631551502860941388302283082204633576716272359480936000568620564966836382221175400484420003590840414936989960978476459430908867638929077046578095923969178093617761870190228873445826452459605026459996528922777358653534503194453875714896632755238904884200243599574306475141524574357193148486322509517364254312123407569773780492117900540384992249273073451174793669045938121641285574829545331529218301652848148233085981643280330079345437227117261565085025499991084778015607680036407230412332987838342579309830578962902093360969212807603097000771977250660440625109100447866767861926199242724092039365329903151652739379459441548739775127963357938053846967010420814505059695602661127002512599256012664906706231360801353182241203832570712666880002148089475088591318934194814911709478081772996098064219148691573801560584963495264098300227451645619496593513343202806297723045331778229785555934142560748986746415971970379265509277240458024870328825540100312296072481185214933003021378343040967395327199214814573220598187024795750600596623409385069678382273962061277534921664948903594864719447261117469590644947024410544819201195311349632816874469094481323902267691635396917352452685712454209730515459676477965190716471248716197714637646369614559114905977732849529833611921267903487255757459241390772204829215974007821276346304152080524236040768333705359705929247012348308950314633239527929566917404957609294541980847295133768198304959394829803587615116249037762578168351949819221862879654710640545246583490567032412113986347630902498838931419594066542490846527171693730295094037476140482597701599303354938897002160703418092056291386951022419784164799808376397130461160658369359490990863909842816634602456578431612039138062264639274311584654542612312858502265962760092146066387986949262135123417724275104352649294863490167906090061189857121630354351327986737735102385753932087059122405205304739424327672927368235043220669773437670387708140112504293848166388117605096999344497324820624632687877333182869082464218526465023248263888758811078245160458780879414920461200336420074380194710878842900054721306421629847970065637385962466191399479948042056265266572974355164984851680907129988375788937279617331801316809203777979206286438713553233283783868247509882012807098464135588772504447126593425635340118638512069213333197564243628405996779930590843073547572604253611599405755881147106974717332459999708378528990731501249592771532127975244879046452834048772528608941695623744683691728680390235350746646533803783867819314998932892858388610650411210998448066817756035039912234770302848859495957481526015695307502840026992357582206810049062588884536938103624447003435414953009639851545461645155509086165148270416205467039156683043305130852365258577611440861659413974794582464860833455615359034592533466265176885889509468691466398969451282615016386108447025937227896945714555504438890243875997929362015828484259116584573509890790144407374832762349370272609857404303018572564697168847666297380513134653509269862734737550974710217292840603973606044957870190890811158797304211241188061546982082024230229091307520970310989119698624169367599914900381895432167009660706821871054018718659845149095708593236768128579928308854409178820846357246128450247757587075302066977999347937460759735975777541658416485253028524422616172189761390339417931677119119480845587414216772008656374031179115028467917460520338134756023554795006544054493236607229812374583549861324714791913745972824041883422261528974023722226850240717805015555284664239078231625176992928070620514491746979416744214734743003752695556420842947042453306576495248011384818443911198254598368711182093543268627454678191245671336833611944174972873512220456076423389118075684174493107405685211126017729937042902310165102649824340582126339321545502246808543706026080534893677272903263556438859768960655601555197790537496407658030935659732078715763984398930564813362083315182698146931944189409144352216327511219668219929484439509022685243892272087699677957926196641392993105350743227510885252565990214353794439893082284937723634084312527454352402386328904192865179300492402308206911768559535840982149490891034790784065811595920706984322212224349743584559970966597454472370475532143657108331512314703832119763500457716226993109715529642113391552396732360765577318126395015841077549620989177637389693588886019656214559421121872813659115836342779513690727775490516192593601280707147222984458246273996289583083361678208895858139744407320115797714928939613385051255954932672091812345802259792634913389085790755684634988069733358045748250720310083153820858589327371681452525666575971250879127641925720587213047208631098218081808910189917725284205234610632792668985022294845571083070101199221341824631094324379443523384169389095202143855819637273858201403610207537529955282882327555002638988518813934396875519588230729604882520331799327225955797952612958402279005908107366252081090372110408628986247110401682924921501071589518668859785059867503473159257614651290905230529729585883488401039208259726172188599084242581634357839895653655113931161366338214664944403236507847362090730622221274671885660721766204789267184627646000647877835020643274225896222636798112868611487129356376371282635724855927792721841199110809814470186673083110256067842629299127786210566981566758039364156803605365719049048391278792778188494032117103816069520706524836930344294379811493288618359365916872213270781392195079545068523961833500826794963311579588634904716106899444027236518571399455840692889571538197877850894219851259580437374964263413737373069375440347277463407086596738568586261658721349045404163825648644767556861039407025094844139453025055703151869434609343485344977297586045528592481282418005634460724171465049977024085380612780748581928187783566044412168168075999387615646705340967011357702456785471420437383392439874359011263790968197894043173482474849087393669443890909737562034045622984547765230096083398601975915913917910062280281189142711884532555380253064253577778969631851259019668587469915566894218153977678935827033269617978790944902938166608917400365451455641261286847540916207231740311553329252926505704602231828870971012585678644016292671953874945518821357960230128429233160265831895200851186177080361578811927288370096537011117463085168311002182426999672120395143063539425964145295685956670928950474233783655874563316192628319507365496614618904817226574144575845957445693710856329846741078427193220892829435051963912298786993347742457631785213522941173190756096070195255783448616080976905482277258612492241994844713566781638993339580719459819638826936739237664400788182885734568933151679347879437448113080200281737499212404359422132343134340595418445820708121127561696882003413523515724487822420995450205519713153889848740494376959233352159493786180469403028263545498323666381525450820660969272231586801242670024418138766982899728623284300206023036607193749245627124381747411605598753292857916030762341588387857424871998220210450505812035105233411825655604798802290222978553347511036562943953905725329278755738653248850663860503905107562665571286462066118068415156459980585163776441353640176272464284305612465332566804356963191601536444056801962090695608298875881595971585820662683923766381257365164028046166634983843236071212541984853704691674580002461307098351071840405858587525006729760519166209815593680279048759255892696788603402659102985200413844469492183427730838969262655899586883273363128411829203159658345230736451512031366019621198737632792108161346648065109082443678217214312193695822604942507037997186206148160206740211726283352073783376585976538001772576333987356604417108791336221597621250921768193146742852434109152759090791647128918101522576913779871518356884828102719944348310365120053117800734591248117770821374167927306982804421771861275607826925462500495172828633002515110207201403159194064436401313093952517913080110595180972180431580226514274675021936994588250209328382809860013553840786584837319066206757757139319996733655264225171916836644120463629653965493850942629517208668263161535363252970860649014328724981248700444349446725584416199121141515433537066508534542792527373274626648130735295530019402590710777544572584243618168798426207339329049980411142906683877544503872304559265201044612634810350198080824600905276696681576759158823047589999401348790490820905393473969974136693209024089892358909440827023308256792358419157079994834349015534333467048784043210178201592136397737159654106112732338704125142778556036369240102530534114845548671788804847499458192886546114979734596813738663771855963555080429883611698885204866406683799098028407590268198300967772136705522670214150074991644214521347512086965230553507334269123611809915211437464830921462419777444079025335174969291281353601530323032975063471750716039963735981575769840033755932251611931222443376190369018101237747492375914119028277212360379417115697657989464879429186449394023297083224877697631726581013657956583470602518531053377131120044923434136182061973863668298887547264203746118812722035216207475816469995727047340045850083765264611711720441422052244278769181570819383220791088255630352582908978274895824457353224825529497866815321732635673104848799070539835197684551184350846071899874414039749762162368082226110747852766526140111234507349539059764024824738725298902013832774813631549579403642836040723372586307824032894165804693406991279495686053594369500171160611383702881279156761508331019317024662309161155965632680191389916861333271230419800122488896270550146379205666856684440898381559573488003056696374677036655502327167581447426102630169557625857520700924769498979878948171599155965441027172075031765153823283063698819315575122728562578999924008616716228592624013323845957947827888853782342582900856788636847645654774195825370047238219037355052565573433134902927786950686460737194153267671802347244658783200016975023026606327003738646632896252048343319774222542410414850298632042620383868995456256950063723312813019810985815384218543980524118807617341118201480261742202390981487671529230145639214614571660840225227581784318309124099238023003904021010255181778892425665173061084441369250678681592773396102633661398313324109909452880856880192328305550018651781080390726088994923983531704866192256514567481463002623309839194607250954579607159441156029834912326134796751597025989726684406143898232694090776493653749214508220468501091236802344149437607895034252830789229849980708809875910146615849177064794466630784546517647142804410565576012709805766850066151965653648219415576997557505279709621991798885344996437086726630125685020128715789238245566011316571141389079127549293270548121163819977476482734395143342995215383056874630684135239109380608709050213489421855082430249357621837064824023758264741159879718861499702027443639874289505156244182358827456871486650661907279018573717840054841784524556162928736883254369995665678652670059504449374116786970967348754868414431276296407471437165144696993970998997309028616091312841267806605532063185797010544051779543299528514501856614087417065807207286135460738644152507304564430102062707004797629984879708248563856105312124182047504100053728573444939462305448393518132645810344970666190782136931708549382901231428690139492735213927395462993949311479948117192080619911665097031561728318122207221127449509038530104386369276047179911753383310815192406112719758526303077796345045604010307765881779236750517085430406200164041770688659290349518237632118621208962387011064091987419829054389258643234743854741157400050013368739355924102465779345227225573315307085737721694129614688325250022516795564149997720578001966682761949067691189733150169310236157768017577051755388501715722572356389229158375741134589446927015316688797492562807959745407391526765956265644840792495804047686675192712133541200595345620208644689489348214156380742758478241788406078463513228400801521495437377542286122158229682406451185384599556843024886460761979509828219414143560385485192139766389090243851726744610866255924758755254325324520853834061884891565248182810009799003867057204231929303301110345408914970483805672302224473759643432389326678155511869871986418478123916292145890172238442455056891030289313092866322024182467606873957198387948516517775950588382891267783517186170098844039745837900882797591764846933544821090192154593045510038578518172681612910650658993126397602066109174884256463931090061642421812777493748558876017094420539529441718038355008435751204237104064744285370791028032197605057542610640819340505138836059207782404554339684789713461592209957642953492752527731383290915269139326372541222907216792982000914023219010884715042508988073622173424255451287721302417976090277846121655262354080391726129567175294828232072975120711879043216748385098511786880761076303689849904968357244677183081235486318732871342225152204827538555488454806698642885934101454687294502438706888116943519093653942343684841078220974046795842036071221892222138909358057421743152424525234657801698250159282306242252311942795785987991810207065773404106867432061197172644486603317616343503567949056799066679773951110747523385941945080242614855905577661984215244684473898876058056375873192933052866654987292008657898148415488512940414152766887857638828983104282803788552514682967627171861000034694041322771545650282044172268392246550402251036230130489637649753620803757820444855541941042393566917258465603850523627177786742267919896243010190220630102780891723290526703794675937057819440705593145712079768155393867930354159560302923535225217914095403326242356489568716926935897759718873779519837710149568902445599168091415350360032638756414532236819488078489424067433965827207969930984431226231390993675859789231895022939015845490731227372825618911786986348364291167147921176026989133606110975472097921956436829235984869565351560896606171650160419305653542361272314264546822530779102308764051299491911325333824410090826928912124335373684538662098972908122729797816457540082341039956222005627124366475920438501124825604940467614983521263534759644374504292967338847583040476636999523457588300981591023094566417461533942790588517235355036917969185896270420522564780061748664030059244457950678677995257066630211704471094811745887582477871088997898863148509229572293927057866431715545018533565359457693612567361189830791112518702914223230640357942048682562171386152635649573363913453532752910631906975904807302721147918569068664102390318112894896841317327818627863944913154746826807044888622272977927552604561645129810241922618081177809976972499150120073388766493860097231471923228302321841458554838167222495348130724441755412810543466688645823830747847137443349077266461513513384298398804506831042060572575390538863690346257032441887842657897196060521542996928742273187223200707298380557688046963662248213975044485051973580141407895168630913591773920622899250376075217289594924892305598981261208367680609957668248743827334067185039068646078434583734500985813757515959927675589948980077135076070256819394983558403447207224951125376987822253465700404075677702462648245352440378523775944421222554589823726084768419840409134175837529670993729892814946085839337734739749521770320203674683783448581100882109699467795812082434525123417226061641017511547116543617788836050539786463494201218871737673072659199916220432498977288408164212429639711644190066811353455538419664047557378206411918761962484726902319932450511819127913909311747236075708920300934587905963156652122342492249063782487650221089044680355959734725454722716871501589911900656245283085487223381233635494483984647213716259796349416983024491092568269038860893647853022601300344674816241279737229425971538011452864682987065473369695335130544581019115099071292366136192117787849310741965066905702230142800726562509716987879175450008969258638515942830525335696647144518355103729500277115243332216337294282869547069355267075783986651040134333397441115538469773205392520317932141510493638547916728964005860628612501897657207928087049700089317399577418449276978447445931911394621690677057553414222001580330105199078748463212071267540062365318092889791953017158707346703735045563792814231119591404586590378591552105525044290593557635124175180028935269494978715930465778206201679842760177745314270769035436130717953531112163145410805963502113934934586458434961207050458093732526945035816836004698024295091045715790783790884813853086984232200213894997984185169496413497813864263100539612814919979318206829797846336712132274831069036524306686162089124149213409731480437723928284158066711355117754775787686505292239803471927564942270917075698008817654700411862460201969228087954575850122850447590136405390364678062388174763867475884319051595586785834861778440375158293222220149674000301558363690394303442614265199216617860960796179303950809329196088192273174592408743326029430750981602684045287750124521806443111901183677555561437436557188179729279403343667832572974126828383880613605357268810728204076176793117578067923776333989804301106453036477443065455189529523845229658932857972963066800288512136491474532332198477551282521393852693104214368002344019843045640020155593625458112354050065367125074076342620976071427559160023216834194768840917707303649196136503419148751486625186700429247018129354078259525589472398800664982965012274740073247819789956999335611483823719522604104018098271416833570557089238545336916730318027469282561600028054682386542797027750012999018968999817375740593395071700415766709887116546268802259844661097589641595759257954200719483560080713557547163105433963183613771416607192969804018645622125917616457224627721742848886555860650780765035401809269717343789568430381106615964437408965261220109662506285211265221177576232177423368293945398602734539109770347157340730182838627304702240917768985273434791247412588949496160742262081526216096795231258394679484208609364523956822396707272365872283115745766242594372499280887914242673876928622357252878247520614056133128527735725119956558031518260338422297230361451283997852512270885312201202186249366635848483097104272236437019597327553411047281916080527850241014568184136927845894266880517747036006536005390978353091719797009325593581354822477769904747577264728378330407887548055361803813656641489323936474554302546180710664572530402370560532292594565662843498184904829659847141159531748686869205991952565885502721714711326875568268628608817729489474378041119444125242273071299337781052992132424068891644984507285697791991639944463030717870863254884856660034250782074520422647792740098386780693289474275692787566624448064096972026646450733274026452705858135825860529744809215377987925807729761030658779455961264138118465644424081160199950779013119013199095811645681323191199363603489558214787069648841566852334308420102156127546158532086333878938359571638549978801125961822805180312902822612546499217362900029583216628547730210201053147174809810876249975752446401404960761312901605592402573430415517735214646356977937415797406278975562095504929651229405551907380787013388298807845018916090313676550555409452934199147970559838750637251083289214026494449493439844883065415461423872358519371590812161845917935069191836162269684003206650260879167840954213507945196289424215563170258517775024854089863188932063626590280633032751104388845959161414483260320483119448666895230104811772724904664039550365719225390208459298385424108443656754653646301435492454913493135720401461728948805064480114230950034910328193738111358767191537107098638734472053996102846577648774651500615531894810854916378396547050836316373314726627149376668715147559349139326892158972307055932900309524562513487433426960260564886689792512272835785497244024642832687527242903807464686984316872082728758642782132946969344010436443022555344541929273115066224853386567206414963552792955454936839328939040299286050556688595842099860201421380148873639094068934593165442534154762689535405171527326225538179198546939931047403055989840891339649001077593680699947030288816495138554368543179485121010688264569826577112978920250520209969984618022834614719710628289631350052540320551118509141634237119843152778245678528224697135549522610532793314752650508123442092383783503773372706331626130199154169651271021255707469154605414057596545701415034204854816275796420521916474773241964587513519013657090819550429447415077773961552447828984403051947686637971230299390395591957632341911780360965726123892197327507549779522166979165400346883596347883584530302796758803953806641028312805863309583143983823045321581627315799337919583344724359690605461951021005955718248803575266941928758955611552673967161808303608142795526172647580017773633429710095094637263386798179282657068187743004524651806129401948533918007389352553731129659032068802068351809904761355511710397601054899346317353069452491708306657917532183626054110313906073367066170479615784309685378005953957667563975492243148239049532164548149137888637206269116788614947518516320336028776230851007344709384254281702243096882658781363469494752868515066952356834563744292771451679156423355123272868143190874603196605208997034466677930794083220605356166441093572707271392834200515150647896586710878567297153469633533384159381532589246347823239406175640159102537166454122162136508789490150127372103885408685433279013925794766293790242779146040062371380429359754855753540803147147539207576745730493769629246058684919737222091535169525153592257841883097265690574225569110322504775963982831154551188227714288654410623980815105583700532293453054900481738929799261940661710230260483570471154465997848055383984818185056551616845607211275572694634879851053171213293077564199731707666299533417344133794728163726126954229168918301189371881695785638230476786386514269514967226498841255189728526622949729237244424158199667036896859404798445271601474732842094539761961483257213042351840547975114618854143511961750906984439561978190933324239934919823758457738515420730528876672180864136375038859908222260648839930098045004355971183030638165730241611069058609519369994462773143079861067759991536640885755505325068754641899986015056008701619097181091851564982694740889399505796277517898009257760814793398602922931901885499911724061152568718640139052933966851936780913535231254828971566190541990005888342987057538217885538421198176823488996583682493806359032408369104711227513543240909804266566132336263493484573335470615571661253904551991277447023522658381612975434876114448579960568137404445060797795356762649798827677854114457252056018319515224550096059296744608281372686912972324783860827276454720345734391393261030214331114704176367371947795376600615799969899268494652799018308036513302747901627482163303953460165885466826439485750590392230558837999011797623743555149965392061214237834830837487093550234860703864959427159979120872416948434795155943433528364851823310395492572891746760580798955778559636621918544946670793603839209351863750359379822466707370864323486864116153436751508879358841280479556009074487478884034558979242177109286366648148576929927396281679534049179504664844168225814109777149251585052970541423777280082370192065920168208792677055642518066567261121517599477668409479163384481111660583679075096478288482450363602952774448212083959086393957191466449243008026035477740937684796728964492953149550132549336110756348565484921009557813181503998105484495741736422578796590543254541083425045735900899381592717335580013449679407644626637359823187791194566673572911284195200764277437422572707145320922398926809841226515050774482261128319877235474678175013360980888665369809863665897490622811646906405041250711604397575614126772453933363796227615439532543471669895667806156082685074387858032529870257093645774009608094056204042128343645518556581268415683080846879510545157478995133889110216704252508879703945666410484504442025879358122309937736037880962700589531338750153180257647174419138824289834611179847863589156842478315998324896123238575059521035422753945505937824323069179665548177812727049782198358461525460866666261279502328824900070746502772390212714968098603089962129164546715535943446621699857225993173484844968946727900014225278333437669442089915274956422249146881738700598209901780938653013706766776620588845302496602854165296400627124492791661998582006291214166619221927093757105573125435335597807782245490088068490610994611088704523733912700205060011580585173987397487823389059694347095640856887087144032904513513449684248340136632559252941014794005178229016061587963499535641663598809160381510720744538406657887495352016564735107623283143413749588376020731201047259465329813073590335227015701383532015206098498947777190580799947234662849785968643269780272088239205010805456964741114246128930065043329470450549989969899937142681045495024298248240734151345655736252824232656441646866743319561187148350992856769611272149845317994981493577707258551134128952817252030721050809577153943161378592629546179061159074034367117386131678550899405289774533293180785939040894788900637350653248090463263535160291687024367711811632419876293081837222868156964781837733740292749537622936607043954925434143417974485290867008418833533750844061774276669398275677527906175471452413908096737834655870670031904900393629653012916586205981761233514189359027728289759182686469683019059239699567951713721377580247141115159723987513652831182995700398258521938160400654754727059733712517679255606887870690486367102568888239673121198288092999610424689809582139522350635350568049518168699857379757922886593839985212210125274597636372982625726835303820177388795410093612071122065502299136136313224167232610412335936689022858493104537417586302959144824633326474242552045849669560683622428292914244797222929536723284823965092014680156485434934750443572898089056088774882083703390041473662985126117719745230151495288386708613574096711484987093468984830198928942073604374901000942444951943460311167195065524151625993475178984041810615796063202407680454347855661460926180836591565682222625018448286018790235258762347249501876471487779954392923091870126770806114925456744226752640521667129056938796121905651077394392598364817493198874880927936074358133449996930548558544299280507841080818647486739016576076542393980150938378228001132275242228489725504036756707209857171446667011763121680750253532549166559562896498607821379237212114186803484837658197462306345155083271321324733547467059031174541819187651368427143656908680174859862682624605676597992984614335460299641087487972490826464703800630494451789828916742414398692339906162843126314014613045020943712983143289134894541392614777210107885815215703231480161897032938289396829578854631760263343356395149080714051273066129524233877118747032831805706954008377509769947554140864634070430907143699595133828956985097196498718578543795394115666381373381382375760636442279403739867165424957553965515233913669118098925724230922104988581177475635330845576701543692859431082213969794381498748931926902425148682531808608692660037567490169856933899467574550618940612052860609886978076335537565347299217901752356443774603034914372618165658071243824389163509997846126260600326256722904669514373838520803077110953001313639051003410242267328592288032772217225595250483866385748905546513680228491709559497388769365842255583712905798520244390300299577666531836611013082393950787164825886261946143219039459921805259681138265205076846715627540611079859803020469504295510622963605632605012069955385617900989080865410049021739717098440626924533644745227036972565911066226190384561923805761085846459984897395401602855857412971033496704068295490838451104039885135539877752435203952034474842748603479965162704844875327535878875254365723918266730624482111374661435259404579327685279918647791821442960457064102928543464418825806097118053382515144447386524623294491982914014492203707050147897541719988811547842313536063003221816392603899466008615454270362408975593181411931029971500988232377880392424502081326288708663274812630727374703614263187866908106948721349977556983998904886491637100592342403959590411323250976752600647286847238623937000418106242941524286571981993908880119664309268345965829020727916633649335638080876731742039271707789476866272275414601814385718702676185304468852186601750565223021592321824961268949969951977725395935996079867770271345438138245574620545190549742461087640777058615093701857129502242129010918155067406937959452092897952772986876194104337313066413102662470772544094638216525361590709327540586430848067795526667030789148908894818258040313370747087992889818396336477885915466344762425602018691943246996462399634780266061142475013370626974255936266811131326376280520667333497347468072145578542077655792079171596389192250774578936177741203648135343463347878419409014416187692025376115433639679883583127430157653457878879335599173481629143344369256135584918923940923536784331830662714836456574972027828684933502226693313485521143441649652300506397527603982691383500323430283934442947646467234961929493403461031463062174871188723899047672275885243679466351407230231553056386669059352232187676102718737315309117314115693797488332331582792652404645362604707200335064302987783870312528618457246475693275757585265179204337465710148324315087538018187962164791946012969875721796565623619582167157482515346686467304400708725867063899602705989900966852033476640158801712016852873861758661022437164703296727609441937003871968894569286017932550155753584636117883617743181621056777432150485847036124699345736812334692341090517101133957655343821524550887062447958166644876051264925423541747405268690352648247551163373864988194710736384596692391764754465511349421016583157281278212673395001918071941132436571488392242113949404532912351372827968977328988668482536696309486457917350119196889740834519361910902092653857219878304730185337354686684518098996491243358539460351835489542047100176171273449487772031797462438771264979386207803462672860053740745553964193540996253367239141238860375877470361702081271309466159370194367239105930023785357426079488720207477349509739807082016073708298069096322535376955808191027164262211513821274685715570852500279059336950975721566204509499801227389513792841933210798490306913080614477520547358656630975286764172454570019654109441351164639749306767449939104724356353225965051530493612454286209931734577958994790286795188352404527000355064359117076030477207401442494923397703079069147038547042901020756492219605419323373718948302568224997638642110075796677392516602845396416464564630268736905221528960711646270917337205134369669114053195167593592955529445567067116239095686539686996759414418817650584172876626543261613462342644907404648645707083325202024910721331358344802501280320252513117531547216402556761379618954366339950326690385800962135096390142018528912389046195630749978235671217328696698404282846956377202153585367522370898832478279910625388058529143385827802012786624632986613445312322089233017899288623170567496251163444807397631524032492213970572458664796141269170003925615348938238759969977405679248429365611311378689035574540753019020091982344091421236130447832631108637435767849213110342487285811574544199044006423809602796771739997806916412881199976605766283470110411791175569451477665770651647820294797831876831424720553051808755250549186935177940083933406017918149726702709644622126629949727561599201845070472989092803553769522407431531067339141364027192693578336493484452683006665086661423727692499077839033098614160664409444921196235951541538026583426265786953978665776692749350128876885797226631199809992433716002789399285824426635947495726124430464115642834316176733919285233978733744358122206835367485910260079103462584223412766424619861641589713895849450464206107833397068256148559396895898651235755967563840567362047177853454596145130616914214529912857450408041313941863122368132789794928820511431039897296575816949257550681373769300540369285635314020810841971520099920846035985358467005404427534674620337993026315912931612140553185968859770766610562489024843257518021820968256911222397510615106865538254781566257886050022921910783959964767578184173276479860198207662398639184558057023155144840561127564403327862350654770166846435500799629399828616679272498281795878296868258523042179387267678662029122734509340257582199425822667863871461863201164191902379117744724380913995402491910365933678813438964442418126790108761504749650887524525759703096003190436333201757280856418148625284508578085210153727713170898253843311857245997989497622170608372098314624910426645120725909931063846414125108995563743288893388890265372364280546561113864200114268236502488407060933691286396222136210081469828670209606267702241764936861830606093509697789390187391182959439451300793385030838922254847400344770183913867727615459158292616332400280448577136327460549848920533332479406732301206005037281522512069857423956950425432485463895290024438338905374565981437106392285997123794236018183516178840375843369822773878212936783462897434107525644883143110982267822401172225343619024183577832187416375269519780503313450764013499293923182396024518673296387139544704020858878874128064159822928007594354412790427966083087575790888767177931873083825796425689408774942560632821093309357324657478363123666521494376341027373834032657033228482902256298378024475744723721113054891851732492770172270167998593282128149352644857625800077651239935024881330517970554968319411962810910977820611291277847346383448793408610385555996850251092438253704231792839669138579531971330026888617708057285657347400994682182425108481975513073720073835231900562693906473061393654577282919372546903823881845294396621955937560942775653837800037858083515223169728707786734594892490630499814067387158406810375079963357415831245471358812878359371110204325301134939358507223036905634006846562116174432624801290082252609987532467449125231728030625986754767630769413704134936666795191386311704757376863700299953618863269444671315805197862701324313024799284010055581449113091000611161580366167611013190285597982725117638043526712791164659089312957282697562440012084499671373011263961284860117593916029976044927559525368704654841923240306400993438124403224908168584924368033442860912362542172339950458969229664910582722423799880566845043240796492807872832262416845142966357997596991733414623408000638962507433780120655266964920353795551873304050172753955968389594416638168025244756605722927990079016037164071977574708538748998704323908673210532900964092432361193950091721056886443129913022709860274033253546890676189655085694170974234273505265344341076421336269431050814555895704968201871004293417924293138592114234317644948967433103519504998366234601574023354173847766953147969772418787149354319647220895034442555749744482368495308899885223451699911136355289357209910302686492376363946851045535905184190829622811388957090581878443683479896095917495371700084543649515007838256337600203328048063859027519656543023853362513821790749359544274598170124259238487787683123889293900351822632426197797894851143534572776821622521574003168808674521894632068584646248955988450440201870178175160291144373909307411719948307590616574838720641373178657262684194283915775251835752245593723988705896058524788622202299001885581184341124962135436670894064130077570444041110397444790105434231542777340498157008899218387151960465810784014469587442311437941907721243323956780209004827979771735903087570451228190965668974491331942133176613049523703568406381223370577433907686252779050028064173387740956170873127208110242586399253600530928860650451915872061930910337778452498711263057102577022894711203503917354071345361563333510979521510103478615030535884509492624168013803100886472247515561827411964285907919782611185785429761832250686129891614207755148748628395506297301226566037970953482467547507995144944406991821846092517700072847543539093549525213854351270986599551773378212646946531242148974804793370453703219422091362623295983157912274270277989545968858381162341821415967903484864555940934639206291984183781510927296286668118217724829531582780326105803681949380671940142305741522882245147017694899054231147717331071964691738576377791535124674913967255490692489744927374108684186906949645066006036280793402241369725200020479645551692735367248656562051256832963986921969077302895881079542028565938403257639785372558788445888768904310738476517701397967952894955563446638302617433346741936976257713931657250226778377910879174143243692847507397040976087290180988313420955366985309251152212559169507636174269356571519985460779379846878103350582622935644134499148186750334352629163671005196789099266902493975737771181708414598857393691740654076432404183096852787242958852892005048863459129454207814270748301658185938070568277533540954858826138819644350596814820433774917516264159523713637353318692524760203898289654517365796324474579582855795699143095852005034665545587630010870920636787470946577114163940459464264623231907990679781650691321895705662581058425438125261979898616887470247370322412111124601832973001984443228710097440984773254118817307431151048432828093915711002085456716828745098351572990312303829908315308186133583349614241229114509331873111476299779690292096713931579426969698622730202848760512005966558052674436891702841458237896132034175383945768474370972820939311832632437369960270334246437138954191979894223620114675479829943984726803041490998066531112163965879258805658781503681176315996699535087103373994516843361528547119310644889500341256271664216983386967709621180742785594664282819748769285114865388685356322494896360088693847894059286825712971556631125910382306293437230271160235288636646518856877120252934582909445113933327103459686916569836383457162362635375068235552390749324190648529240334145086427639556060044922622197362509993908686159361255711328017583327805404087903199035930453721509351963008516367516465620049004208902529341243801883209143907211251802033290762536570684460130988943526814961574069187059401034735391438386518487266174505715075069980250570958803958958462105367442469420420500181861056234189675400398677202389477219477021818127765443689365517424291428913834172108927226272022733220537523610875167012175339941512515209388415599489839107311823339945739431314526158700378127871992216186390432455251468251099023141859218048650277934716892779139155371877694132436603360884845800330008497707196984008770754319413432432470494774227892695999174816259211748486643746060986179462700812608971031137753291095026915717810057164475190235155229990326224904530559988241987524722799185745887337210280153243963769361068537141192440925450727494903562722300704908339661644798813101060582931718004810181874844258370257484818631664229488522440397735552080730482250963635745130960902981960678979836287643916684773914576724039112026459327894691228856129302975560481142858598477770679820619475714113917445796182101325618906554438505787865067912243180409279156536010096750034407867087316041427616225267251314054392450697940782933738327564527792238528811835320359259392593469054689150910271525904801557628314297271588940157312845795990333050090022301493889912127619844897443895213185319010368263741563412343042569816772492057253588251944510365990015675729656690934080640638860154420965856599376198914812298799454187902913050121702716300073415504432715959669976525152132487221259631579493779577951908620003368968633096558932555068985177735697025529846303172112289180094350618446475301190274934192864911377181286609840385533709409169234847887659234740277347101842287137774482284215027567106851381109249592905933206098301948073986486482625867063811628301270058639813270249729757841690697936825885839030629827784097578362333713764861137538957050207249382520798898604424326022457595658863400741918359994406219978998518509402075623136821040451407299440255305193218012241410736038082829969426930100375639015830598627088526249559463861273775889415753525304291768050755063849528844512017674274872981660238254091670681608481970613931827805459876927021139394265685397658214609315213794676260731408643533121459884071368671056213340732130374198606301410140903961163843093548283716655177829124247459275394455189058535346306617496701147874982836881411781238729134577903920893007713567367813427195904097427435745368397055067247677025973536674846009251222857143540202142474545448900227073567215406822793916492004980641774988712443544800566109576049976847275298695954391993134939301575558578385672378409859121693050054292384462073821501031084373243648515181234722344060036592533287429779058175792137019724936711656600684664246635179538177431378774491782123546771624095551384379085886775324538400920214295391356309976631971376153965386489761447348248277364501359963354283489103673535178190987702540415425687095781639645152433430844852318064779374863117806181804295793012989051478364439387262826551548678657280656553092885800452537930531855067819965147732002875552479655196862570799329206173819703672841983034314009405038974258636341400504677365721978343461301758392153296091469603916104696948574193293796590467026220140410449859978773628795397178103935848778729340661643097329550782863249859150286219135989649366984924962571141941496724129632662017781694515293738778446442617057441124329550016208383131902494998954075075472244100562839766110575644469952538938190350202913583789641720629061308462497632844569717979623475667284063585260604531430775799780543961378511794809816451145276533180352249086425892951680165864090935309666548900944671174065864349028209010973270266571854417928686190525484375491521367673891536128198162435896050773241766624384269843691343816323912052698899374693876855698401775324395041534341041046790578528284657994249051479892374674957882570729197503724989488653574282941559754960895475032280153774354344525952340721974094655140532689609866376704923159064071845140974989195464092882744473795911455028516690089914840291667681902744634994664139484595535559850558270410384186690477906572833259306191564092625049891561180390805877039540729655162931112575346869255607452040683403210471828558476879518777064418336776433721226763238873933240617885552310242434314028445265881092347790119739035774562912234848672269553583174741488637168063429790353483647757148030586507088860932988953617161950532838211406882713999532728421687270784174117903123312605794526845193772827889197356881892529547039741992735132702333943056859814400803210274889739059631959055164504087309499928187199706204906918384027606820307525865683498967383668448135816744944661531726470579921680443930570775603586761219950223141382020778279411454615142500331029604484457582258555751686333642221585359702928610660773716702922597108789306187413010398887926428622929511404196292895418754016479386391460165898364314659732022693239162315089101824895503313600100822005936428792991194272810759000791765172817412442279182180927452071468797528801871573783604829082643916392250730196887865349579262887674676275028380110191826019926023601442633233616573859266578538586415466815309059925042129366091819653135009122668802981737685403980871743602381613966315623322637517848239538168204965507857572959151229624599023751176641295764073066900073168155677831337171428461009023426924167901664122372385896785899829611316264813696963546605634959014628361645558545518279974340065472477256173262391595013158088652220662899590114420596670125653889167451180073635993952063022377526927965742520975919674042325262417778077620386356747030598296886676024300322963164762793898191521893421248823367652332434739261960510116826364434537892108457901292348676539036808917544476661351837537744310730761979081674528507937463087816635285485069830710056573192127796285990548049663735952340537288226113075333014302370955976524227638425835740876766964773819253765036674009955264672579319073864973063340787448097134000743229179249248450035118459225664240089870053219496986291678259252545675098824873580144587934725074836868235970834945139790093453774113137225142164424831426123459853483481500228472100476424125885195469188054106564622679461428574386115666953707133167400233077143595899711995725728918644457658270253582943959076995053750743592918829006568650117602966121842406837112119859151573954763688913068699305190922652664869140143084945803019302059246159737560482525550668495271437112285794533112389248462526820849815091737736902091108644338869314430658372238213273476848669464274737729479717449836949308181178891975913504556741890755969872284068368015764784191772001473995123901617514484078040874118374902703105546144484523287215385714994074842150307496636369928802949977202025060792395955120450222746146899117067090319129108807284246673712288815989867771785216106427619777353315997319018481715842143724662100905778014877513598011183939484886376989940127149000353786188331721429823342931515217153240871198212517284735632947135374693887068149136768585378299380853319318050540736325407125279515234723072734880773511717245554938675775057331313109081019612521024754127945201654702583221860903172776859603860962731510277045958763750908129253657941479630840893049995063556895746595174148511556752685962345072979410591967759053383426436917305994856977751153647573135727925576660800157605285033559119954877908388962418646008471576348506867429483737106359134858309456632364604982502443794058842482530537347729974058883116488209395576135451160199253196326718659088373225604713265030631047173037228050399288153688046027526870942946721039299990751992854404373199583249695048690523406608315931523817841586840085409105708039630071719897932640538478230944838911242628479648954470422017633088164046769181144446879719323721083741628087841506178613701474335991854206806533032308174103630392563633200891316529378357393100983286081968355513326573342114364795537710737752734062075073663578996219402346112354923272191072557985728618785614317155917423025706340921822075996292943011081136674774011468222761519377276091247984962480159653120997110187468353249701985351792906124473621239861521765999448987568975516161343935123635181193171819417408938749682451829295305817531394506669073444095627866334273125052688631745182842770656929387062713805047141029004530030240042132990764117367991388443996846612940261689991648864057278765649660456284227158373214647255163774760151603207640564926571545915432986045700455672684053964257267450967293278493713764126127360654871510595598832819895223780109678630492708619529692818147812357468682056377254597558129061617241690819645462624378038331161839010895970326676355352832131709690808426598104445387728812132886746346029104551217660888846481255902611611728541527120454161397194562088971959376914089819235531911641431447319596987470963612990798800385089293634385818899093505777597109509195697684128265215559755608077467770864047428154994946530079188160485712957809878665330166018745110674067413251466127001772312117333191353236523050748216406033268998130677551329526268535501615941642550377142537211458125971383587156482049740577587401887768686298895875972119246014012477182603337223272551343155172563546227531625887294385806254770912643541667365100848212708979600458165578466707291549263059005368632561052284924486332583286640148319298955673669422544186014194254192466795389730411628519115572392783640920929317988106124018668745314129483018687670856617340420740843310530711143027614259219806404844409067999967014769520563834733243384443391202838819405801647128398422712921854665230889700484731671720252352538974411484983338573780482616095947812741327359943604251656396792538307163010011565479356089093920542668917719444674516250864080084388980479927076403086697856698854553123560558952197765290134860852327613618110164960074214366505626389818958526090450968194910511222924073252083048278587680386815608406059846313896081752043950630049396527024875027330657113189423465978946752956638711852825427393510107210090341252664749394244863132051700703662122158075003827934894294740365947223746531497166875881133729377155438995109221853494741173643795067645323443431458978629449966555522526142001308560199022203236065391609044316190683721343633036190949501226005647057962508708103670603056277707765359575196714585403626261723681792299629721233012523726686564496209299767940236777213562650445081758456281052082409960247445793823854941026274967692626321504082246601640960033247810610635730787086950739949972401543514026815035117705991069121293022055946001085858564599344058729794259757989845424280357674446881801509279488228556132750290659315852074777111808125305368334252098065863176682069094864006215768721213628260044227249414067711500869746340142334105518681849371827266298239861837132479703230406575852098918741209712301427990220023414200446850864288014692302780484125906885808114772777351480981421823962923244661675566687085128937374038989603223457463737244800793781875572322874514001106829032335956655385873143848959147888960371362642898089377877679286247135612042938222239230857196916173683058503143776190299199842452023063775983439701794725625628447309688734072155350297562695530257958376106486197679824185325988153996639604046294387384494126838156205313249356203878403470379739976271066125906611063357569772912951404632041294574112306910482858444621280363075095994971423759057407619403276117134634846282177389679725752543501240941996642321182293128125123170259967287948245193671119440221410036874034317995182101989717203548085878763074028068434351648195466979308078151615354484390359226983161621941181238528893302388732137085237527962822879868071675969000399010548057956832869382185310328686021383356337725195317521727490341816899290774226742463520904746091693741523904936949933814499982588818624206091041724794847093169971273569571289228210814696172475789406637673268155477859142906614941392325520661817820059783738213860405199481045619853827382852746928983978676041473263104165401562484629374315492131126531328094714484229010583153153603488331277692494091163530865391254538397547322837185367953456418206393775172871102632519640859235876187137633848139904789964216352067159136537551012730954125906858086136825222763937120821738825398474911540883627341366735862231554491717727077011203843222317236091879027772223251987500484490976431580026297130182919901047980203865428448475558370889187366422497426513240975763671154720889349341085910100853458599545933983042264629923148515013259932868617351300792137810327720196891456186035901762320046318655162297444953412558168004558424257468069902365189336933098592985886350731386386800003136618300138326615808224079832131755167498364977089698684798006343500686213234591570375924296415865273948185882737995314410159079465104691159008271042014783627053675043393224274227249178936856137874942455612525681381236439686125534724496644804278928497140031855189418064512420777675977605409593115522416441623775869288267426210207702272723265068310628428293383433030448044135344397177403178806345815102748055662281995659204478453641351771825362987334651434787174569926311183292435862173817359932909711740461796496408877611660529649933796175791233885909342505424081282674548988624219318880365205850218259689139788314928923005219205106567550598495025943581932037539809782347905860476124793413501356590696056342130714766494251014724288935615188275303133978608089003185011081930725187924978570238124835411337302989991494913044123352395484163478326630592458141673183686094658462132127364037410337021959535546640798518126021641323882332849972964766651738766990782508292373414304340860181556791858557091579389985356633126939784289708507285727429178828129243914726511126690621278852278077672348602036311894137304249524029577895033237950724204864589667710948938443152720105027468394603370681169185805751841987692643316882974734657331843424006416968304485062557581824569093164465828690963587884713289267277702194794635356152185886451873092965637345326123724527876375407526072940551678278017826525131431956534204054415340887191330189700927985002338043483434754776196522598484901938369964449379512822123846780823225560447789046909048501980131560650593085085036121670897041705757365950621955423899667087072537813358836473843190843745332989629967153703618819871304139456849417727077233077146155475112594627762150688694842568470415232943180243216230157925588940799753632332673806572036954970388014864145247840023128711667094285653870657299651560737434423735207396311239426849833147567168581817681249887466334643732446013613970675275363690469988574084150146788191785212103588474807926099389742168570585820859391204428819944985918585728557657660805558476946306552245348233318126575648545026908095071699407238984353749449961960112025048470588658402056782012376971012045176104063834661037630280387382346092228661906954804388835558603674726239186427361045411062826775719304972731384487959805148829474521603656791533154928835422175538903185168065412005672953206167465615524243195566932511590723673868082803161389096032136995455419680881249598486667177994958731988396284989239011368693487550265449084727122904431425253907006612924518988498177176993615408587951357762624973136569565180398238742681247134396709059637985527726741060478046097580887249113434192102495511708174661323115924495256400941654926003927138796975909265355368892318962487062035815855941803487310272083712636342260921442891001732296727227564506032620033189231537323193413545587572307674898492136816981706667197698643273026825971796474021746744871960274298123730130613791710604504206656102279320154411032203829086539747142922585030429018761936621809862517594255506291517732962234796205450077972714045720081664052866565003102327364697243016126592347819774432683030941279410195001583889891442036723939526357021546787301849430306726932834775649492800036698738483211725956685225855276471585934226092666590685305606437169465810985097430612061381280867610178693996050659157951396456532556797742526257469657941241542645204947585915575673515515406649201683045139456642120435754615193881064352165968673325859525975454712479739151486282159401652188193006974190436633829587995704269333920037096427849504462753443268463545939589179375279567310867420388545004401469146185280046598887420378128189096157806061106294197916510370080519930551624595774053508026214259717206063465877298528924322471752747726989674622178056413721851754081777378021090270209860492304272985018855092269624493787673334462122888959498881004767472187541576406132343443492960706882864571826392705158722751648967177743155560367293863889148560251751181520162605060780540233074714388137215539282074879219808277574370942740063450056356721972759508174518316005044177409672236616204978433023438754879093004912845291288984933602098319477772324092274692941841274315566394097190101137438975022365075817902334516234009964023234633288492177922728209276810429284752920185632287669585345791506616336637832012635870433572282408754779343080480340255444202694590546556998824922554523313236317077785417078235323026896076490093298938968751429632155626855193416611840398177170214201226277572211890127706168981697646169968255331725539824669032835724314266350664347381680465641021557455683285553386740760641435026478021077377056801668915456014949424379973350875971603581348163005565866792342362657339440281740713549981051392615952196098864785069216083775236656509899509737122194946235493388885784715990129761837141895232901499025948666049439722366552673650487950614242221180818482461987126796232141151612167368145752435406771093800870957028349307485036102094245558725300851567424928658307564271330167594136210596704128397689837417982720355318432391326664074716311973803762314459081959483699662801937491823744665586632347220504884939646385706310905480492770595123502493351875219117115096554003486316430104647499064418372138926371284933112916796504925826242164210720385642331823862513795874415302710562727351424869039792250439688884558652369566660110952391390495350274234898305275742729304282021231557384399143403342074941410134191437744505379642638340841508063134976365569735351696330409146120123151508538394768478484551985901802040960093131339468797504158898489001900147019694694220214463990837780494541479404936714809381850981419216678741570400429159473134074255751701119592850049315719039884998593045622891665860046306503751913323621635795613481947264272449224712463988181578682629313458909359263771238542631313490819905753599800531448782506044424399501973603591012811134199596210470339635298128382308806623018980793408422669405151374537645490271061390835084289998209552528380182901890892967828063750409923306139356542646085009586090081615317753127618188571396937229835009640535601393557010825183913746571192619913475591440234670205526275671348917035514225760841222781490649700269754871595944091347434350518616288362271896850216936954153400949874728856420768994432145510699135190742754476552933594790363151331778731683002980868478109397903907786099683355038778441128251624733265804981657024062145227147099970942984146804161991883940574201478616039078647009056429126192106711249597213474592437112871526684221434816691102267827027708684462401517123241483598625303153165366336130342581968192526230951121110613878293436641575951102560073179399221947402328210244476295269960384910443322950238895481269236024410356904337404466656706329176704766613533539762497069670238487399365610977877429795045525025312359000665486350651323483331448321132800895358076427091108441556596925292156816758128927331154012144949233933688591059211851448075091723351706062511810724125870055531180028089459059626971324991374153351948350705037178027823020563510488266645253507957423987840201967055403312175903142859097620224505155399793164187989341734310401180726357212053418915291926158090374322246574375816230754356990724653062848529118850460169044522923967034903939802889178440856222521429305008161040311759112769886566187131868083305833546181990833160705700159347162040607135651452809245402777764073925612749804909102002895719889377357063590834675246134311502923383733175145628502337523319279583253541684074176276387466444342474551702090318203554238873893349242352928894310839185782892837341050562552830422477133744797523907404474145786522342734223309721808066779883542333058196900860572825103368141200161434012061374745004393128110700082290042881256434773993279112182403750555320001439504233539946992402958015498667906434290170931667316296469638030259696992598036688954830099949635412376802198723631669327533433265326669250296219395975085663341703850177712648528935503776841652589801404558717678868697886529220095460790360841591791608521270640643871263033644128974934626845889867371308861549413852209490712063085317692148669613468177956506150190091189077126384980112386850422791722901437312352394073994651424177770364037640122833572432344597116735910211617650717027508642928418367535140986401489697670356070568996431753625671690603134409908975544020273758745326614328983562429755085551728447301943595397943697098453675444621180318233078401012483052971034944574854476686197832946001745630778902996183392039100970470924853996073268216319270009757046933337748475315017711213787326320709493795792615513865959197503890499798668310351609009553065032570598763471827414858641605505577895415152903884497551676381163481790840694082735685137206596334260815049816249997586508138950288863947789976535944269215662481254508438735846474606746373829044925706121011847000578787990322343282663416043797868457299748738864494468828099076952391609140362248428274098604827488966673720483403478279552470683660332358626192108537904198295706826409424017959597576097633865870602262279864638832091000300367805839308896523145940786213149125871216812072267236330223610290593605831497925086246672158190311025336011228373208581735123158919930361240045505295990588374720761311492722028434551876925035634516458681483597297605547425901049118656196209928551068012439223974046251295258164581385544150514944491398204247107610081814233408761948717779719851837169616020876296672292012429078794697154061015174523908582320213231698788660465513732965832004294375676953750873269188627399066452793153445238849684295903198040064833735660691727012399944616646676316012217265169032848963675660066396504258888725484045278933234153549246289913720624343843730618335515632566337474127586014250691301304672577587301099759753962846376458313928292212570887690760794533959040187703692436863989686574264496072993607419676057542310145829491980095374552680671436375024838949594350922780126964797510998759762910836875012488489401552890426279697136933881376601888273534441898070972035773980294513823084612373454239100012893565047923924940911338400359259596688523871596750630450367491017405599188333009525306543129318101108588417357955391384077943021415891523102352553799151555775701267002568714621889102396885638323634050453674463036767482753380449511752478411365328260827619991437794849739594184992562121228665554125661320297821438949252831795362228622619707593384280095331644355071952775887505541472045062206482647638767071490588442773778150324617460114965686870871926636613847889686794442769333400520357434744967996191673934065054792033360625643949910534262756621817556379530123084295293155158376944117062769707620881706054605051784757661523323770831738727890458482287560685013219579640032553765514858733486750411269439199896344033311375149483043434497972152923463576092463307318541959847403610994009460859965481561950184857429684516612678900949639105971702798188791965276653070833464027559684209709853948069831231850725853255832241054284256917983265817726153408590340838828351221414865074404293669114628708237824020993706815803085124107543259657282808210404254377189559119814322455631214910743647747678673549459233028204713886639074373124791659398386551153126398173918879821863870379773114349073726362728600279630822368727016466677048474950319634393202034445657383999808268598862785767260799565776301899047238908796651141272943484968898117861855148706826995921361860538923663337574248597190459522144322898772767538703675811444670926154050026304206574612342304743175817305923936700758256221501760808418531097988877792345272194793264461924563313477397045038398790331359895447738977441018295665710607912033674482040832701175894820571722012720315260019867624387167482548929348973389651244097623190182532909985969299351514406511528524620514324427968408940773202495253756616395757820922928355439122908177763885651105865847313639296798643473240595497519085481018149257049002717096752411940121917448635221265986310905738649026203191788490367021043585326529469251982496591672615744864580537885235411229090977452616134676067351137858305844452999213441948649318373935706704139000277178298123516874905688131591264145617862754912860200671338554530321360397384245556056786287330066085213196107080309394831468042927549435956499048258474605626770247857010046064647071854248298373775542005849309579297075090763731575129240907387350011257814032812208089289619951512487307142200429911572851969449893493477941769927544949098520050278434917885437316624650098973732368377171593592089210027752359973039134734633140815333407497842757661979690231327329996241089106922651210819684449727500771281375950180201399650836618091732537354942331048502242470769370513159431999801164037492293309498433562909409443070450961115538418797653730023688925893408162220118577524947538413825065939036429710012467159483533128460963074819545221330980971347142291668034480181826206139923096947656742151469496743045595008162694572945094899016659487218572773167772616438556687801509226382581308436123767301514352606816193436918646624486141548346932850459602825023062169346675541596705249167956235351936797500251182115427733128217584859403440070410774377706756232701722253342309656220926828799506723047217224736661112413489317511676625546802944595049668980772665493109204043960270845850393317844414621530411349709806900215340326609890089937057430816545057042957180888078390341806658597598607687189612043006848086918640828526633399274651652199348197338062732494326221540805821175367919400042640859259170706346715321826747130983995941026906458145233140391217668996561042397550794311278840008288580040206431527347931245025738837567594533337234011566414352158222150733280421592581712060198573912424120735394539755666892510763563602452911739535614768974575368510239130062055081393781992758895780044979293422310289924911350666373470273099680076761024630683452226464071467656447754696625902560134009053967785620513292697157487844178653040532230780280032856093533235789618479807453939480689575155256102782503248515780767092932281484716606877437958927705096508996853163112379757608850347744833243666298891406762474990347881869408626976473767320650910968493209390008209523473092889309658887153049341815547367717322721593037020278790117362824946399266114058638849840904007618713117550907096734952444185019041971349041183838948353713385915391235119715301680545297865754600608555609575869446805096702973726412367573891043801131632850815229521210431729756075931360147541155179106530128148897073685176451599693835860059520170139693308035237952757068922316899864959416164208917161427625959287391361188934983215539218306787402101845009830244342032179803710656833064952294395863216851013771737217662657062942949443495020530031948008704978671907862876485063339403942597578558364239794353925682295803791725142769995843946136815583659089979009271490262199138050974780230891733983148992156765173107026326949881898305540578504929766576383600070240700774624613797210100739509515807936731082479365021909303392649996392004979715061146803014913126766646421981348073231386178506859136291584639399963463585096598698055385616739295598450348239241731673966412161230767922568224657974554669918155287996824575446436883144210134929951207673545189855825198607217947318138988068264236762915709080063819159914871993807828079900789649505586977877366663425319754969370483885893567524028231356595263139980720487544981063799835548073046338275347847557460728998849748290897664904977883704275765507761331078399807105123929788729939378440617809773123140448640153484177107432786406967008135940011987890540188366834709932161529380040099448144956666452788442805241157482079088583720798232831461569416606106539083382528384455545340003613697684039515831324902628291044799570588019624793791514914720269789198499592310232595318126547518224438752332602407703836858026325276213605720396104476513891650494871593948671472809350696622019604243558968507845390968535780049198805649319620413455913407049600740590886180084710324520353901465598244759348221137145649975656279534847926151003900441729858008528053043374314303806824642693661537961155238646462749486009705459730991928025849179248191075823048090558732960764815988273540570586985486125023407244795358366205578015948056064284781989973663524490747158046498665787017971017996643069024955387597484758864902922859155548036934648907977086926337216456054904165610365711319868046938112011531660068935502818680532170625692768907261132792947110680735547458592661415236299557980173793006803897491881270929850523271252780141822475464219891653426133078929202234603024252897254563195009183517106348461600207684167020799033447097732049025012435628871449116680467247799231572936202547950416340762401367877628958055685808475812647751722265649851423414376203941234475660516939974057134953755322801512839615491062553677913896621191984332993339041767972472227948954453354627859731742323543993426697345965577083119985709030410683609897116095842325957976357860036065817562781887097603656283829265039351433302833149535372441207220010322543283390122543532830473334880249971852836084728184191214536779020424966522237715394640865710067461408537773489712425765190838699137131002347289135927496141719305677732181359615405367205193660392681157897282772725707401175362938657066668227414066759380060598976893717896619699917673586098124035297692382077964895278399807272463922649362472692811827541093116345410183900579947254528988244337734022463268977900685290231084773277336332519876387693268287946011238554162734577356424177623416377074112257811578153277888825369878307928130179739297676632508072516163856670460551230980655578522643820045439708643437141148083475664854557955869826353282532152940728381419288392487718696974742589930174373383448530649022507484556795969160408787301573270529531321155597008722415299665084016092680469867080155455647953605628330806538328921093299495802417694920222451486408934778965370379183637617106425947426073193082396657781668779403192301110230620290651409531525901369074020857369027722058958297463202751710189189072773189763900168485686465519546697833621438039249121950468405991851364215163059834001203329976442163764781625104098627731214607411620234259946624647496226062022687351942175278971083967461893604817319248004187950943219459823943539414963068995020704372601112200546426148428671590241809295018377545994776897338833595249508110235063076206898470450014104965415025936189921894830931578831884075221373115237649863538869969658054558634866574881771589597684799119120157085559308804551492231228299962163926561251028956966612766543714759681421416014413644710049515600634280682433033005402148050329589271600149503460579585606597305989571310456955895053212789927853094915729211762429502596401044778539907264287337976025920929643725976341315528625114727712666653311112193502884514095377459753921914345764211661861055584335621438236408457190996761483705647606443388543672764279929910482394408090796977849539430459071030465785712339057019662951986877680843111194736192005612976912563266570977457665818544482186889276329450590224053775566245750424499532491019629527730996383342071389700841869460080474201181844125243237838210287527072009356506295681920583423075786897639625862925893959159314187885230358809723129817120605146213877176033434787222952429660454031352341479595133281352103769744216438554547953758577599663779943941213493495904519830307544219162596421169538386938341335856130945574345967869800231207945091143870587772940481047227823367650781635106321649975777659051491906417100260887927227401577765481020818892889004273272190386768709571953439736437978032094799513758521973713183650075023470573569064791284194068063925263259179439828588294529070295958852205347097576223555834337591256753062948931439468471797821167034112278437645805317592789133181982631714245732026916202847284197991502375497971484418447688032642682809762719060259807132606966196706808110759830087414497377923618249221546490919322621165990483239403060297701951298042745491312345112492284678561448561398770774398222516832750342908929650604251686702363375337781643306220804719953592044642011510451097226029808188163107566618131408845832920414440805064235433335070482231088840567695063552166227153005580003103654167021010026256245716798277519077826209931935295549239782400593987093152296119906407259114463186678163691820942037837510618415945287493087011722114699611194340915514830212865405949482463837855581437696035621554208275713725812594110767915427160056239268524931439939180931697825122720855802591632366319854809272545960629829921716941171576175153769522936439762908101180385268012880490017919759412275591446834955990766496898982014102485232175299584012161956927031849931043915974230117768776856407517943007510319593972580809186630898408979240355187345250329737966179456931910643017337799881216174043881305447202372079011677470380904807407067121996757600490038404911260983453012474578479270437971092079572756026399899207215613397652596311670964389773978286257301484216512999737606600046141187617108401037911891363733366520218346344443114529358650084105614539103934403542054621536127379266114384516745242468225888087848797327311818114579050023253485113565592266728706782390865629667525796841630548703255960902013421914182388877694310332088655275266402526969904155046915191530261351008618815414082857006961912180100841642981510455344969365559114654584274140736772062503481502091620025811584797541995517572494900086013230076922664527229601607026490635831237099335840973314093462298755750864976145954953648594326752578305578089537397760541485272397505499183257850837103976769593005866651551456071452415815029524824296903164765315977506174598419115190082999155494464746178445145573335340234866002422545259664547996431773986343409454961793617749708480631859300300502178303197242064416720339172160671470407379925087446376198189456632782673488294021020931041279170537924822364521658583293505792064422879161432404408840254381623710024427646415862989547199427387252476565289428105190837734958479235808080756903540587289866453978137950066188054012300806176866987777860888297846761253097155439031297871338075639150037110069099384197721016167435474843762584892012586115253456082382017940976030142578739948223659897238116716665178289330375410216347825649035624535299905796799669897230085605486238828744216619805290206934543048304501739915498123002021254770901131351346016090356735899108757062588206258913517636377322741774534419124894679552221671610292965387688866771761594641762141482647472395521191455039869084853072337262532849082524533806586315213818985448963439123174858419974422115687651315834948542079375008047261349192322976409199817416312953762377864230837998479522059606652530464740716577551575006063905336084896143666186307703039598842732698876721466383356593749923531410200053385867910878658353502662562546253815781614481713641629546347321890697118061560241950472922226350169756173617888597980213990450208549595380659257897427939558027809810761720402855377612445252316134578745397434933757875669361432208392619178051156809066145467971896480840641815246926133078910731018913878748439096971244685379996100321273844971217252021068423755367055936570884262778602009510918229905128307564249137791480206266361342668006053396227072909354075625018010176281001692246307951032219949084922582442962657241033006574977003247805914373435332841178225182595590964191348537259980250216414588347666768824238401984206943775764654643414611488920413056658464330741689390714391504096852681311626221148973910399206297099773420499638655233851713927282511060169687894937153204302257029659172213952396313995944212445485717221842992115091764759884029864292671493467334134271109350888544729121543736932818769267461903332875527648072066303019176652161712679581812686131747863403776397015463137391615419759342162036940346254545399124932925044659851982246915583748697789644851966681915694953416768416022774706751153449566131295378809687223092352090314109004601490898131294357050139132982717048900715666772639693239041640872668615423043517983791514467968606069527014431592627154755516515698843526807269305342455539034706886722721664126494298329637743934647266470265558489228768944446800411052609907445340773056484475148008367434511043025793719884460648983648463956617354180639928616180487213652433025894881095408348402783586977498674586384550812484115104751833446345770678444190103393246196561956580712755189334538302123636373801378980670397484930746660493417032102691815988897961941042995546990849624079351956735690219922915058905355760804001760997714859761394097178527247554895498009006572023433843481581022314274200692265421721712233511705219853711136049029223885905065052717560718518824705310994653046815649376683912755402687525965479109683633538575091064969652528878638589299745849393247362833176140483699236852155104983201646499599670493350474718015707129811823316839274866311109223553072389732614408962031487799072640549043366946954493733893215263478311315766960819254947416672415746686258444542576561476903549963149046300758058649354630109688793079869286119371495785871666403701179237594815910767723010918802247873633743037449552987877914598709488063648182233963465829592514366352533761189565512473096363103757148867846065539815654612257425624763661123385051965073751854506607582001193678052219840786741988742418004560087701493259138529752098757465707662035836582911473099923283523075260299811215718978472080052128021602591298085857459995865712948513894028151935522257119581149153933527135528600701326179143264274102508140804672120559640178777080847462280532529337925499120552920250733018329189805959732306284045727517273583865251660187003280898940066452672247181418055045373535911827914456914304697707642321554160034276929085295058523182082610191896076616002615126727509235552652180363728697002559528753042000137939352703569687165987439969989321690495711549059914345916139732470561936882092877209170113246006304428746540083048877961826700641084858542160318714623122706754187676508637166340857277350389065565755182115667036779662528618975673571201728883016539994864079006148748106772035230733957624963450290700070718118742067016405788356334302849825556545413825854220285666603784796784989849850026967917025212572812396888454799061538230485607745440978222612911029640647820289563888624156041499652473032228256427009046482737307617787669256190134058865632525940618294738248784274106695430090862856136993187732141873467328914881840665328646366666218627889794493522126222466313950467348504134351623979827129050868109484817382739840834921212676535982056215593590948378695604073971766315852670530476029114718464408553553861226312350230553259853728358179726225081550983434635107019600032934982449873038560554280701164443851492165511596460138010651207032007553886954337234329308662192499466667489869850529578311179223639226620509832426703303126563883355234567016608502801719696029052659512566373975820044861814303463197208655376137297886472045749300073545620432567919105675762140487369829088740049745791842926834086264863802883677253515841719845548204559727997885076817830142401744334781138992570011177516667289038249088537834140066657778370856318284572285470673640751785253604786627786607341075952531564530158255851464483784957047787473634589784142080052422082362791120462978877290421917987693689506411903567595772538598219007093050913034457924586114744976230830513867130635469156907903901118125973499364499839447083737082615845294129346988024391294588110169522683382158565252982726532256489632290432115346587118207140596981373608965255443660427013286606525777946225838923118786547758588795425380447637312024944552521413957543153595465422608217028968697201333876775847794496465925289023209810383111856450879017542218153634047400252399642517793109126084846454366949596720111592316026802213082900184009275685783970556876483736274939640667352546005707047152426725756055563462545252811084042315414473805016495027304134526374227888813378391707166217663773047524580020685492036114258596895624749941043900431720919698716869477465328665709668260921474385032886050534310346045391028049111379330435352250083303886824773120390300376489603867401347699897684786234444601222703604086470368480553691747647385597784505124331742260490455883027571833572923067634855952280078110805124313204927900147613045224741828661732107952557423267170969911537112560537475737757995212030122270852084178094537116096468246857903768965309769397489176980107487555679147309338165825015126180365550939953234246018346627697590837684791377776762903876165398973830098789284280997811720813884745975636817465638585689735913563366327832443134087569210543094756969011893985538889528561431665849515205666439217294548697603788038978170829751894395852647708533114432567522280984854983593176832935670393183667999863141556594660021370304336392545219338193312000985176440179016225785598994160977087785185045527646279974308593700032044625760311148923459698781150022913294411084465185769310148641018053688155441556509188382378613281694952733150212776331883964935918108519927921181779214257858110420033098930615266006480834435706796776034207874952220757749739648354306062950434643141701755550250540473068583400444528627928762065642578737418509194733957629138352433598681616042239443611146453446496971310216547684863509355336812787762926318607677543298798470187885928134517672016625201871421398841457719706989954647206762856508554738031845428886370753788840838321130908573223659571515177216064815817891565601583677210371977071172790395297292510424931277985310334824189292109106322796128038934423439692278571610942150033921301510249322497245671845257871403808482099331706206442966484165808680448267533498668895042037839190854171749279991865748688919315768290950420358214052103870134482723812456654835892454443771358354517606521984625176221032442747314368836558555570850287940873127835067593606914228225270751079834149681650143052609245764177176105335039474177273532473162511639105541385172635649619969837146809543069259507161765619188306048606002034949316211796466299209096946435824588968328066302658579491486605301993415775643720981308171400601016741554506656327415919932644409778715145624312982721317779806607842065589534222135101191772718828762038781288646620319294129333158387989444882837091586065593861702851065652918692655935018242822088248782364154698136333404748336741715301681452307825552043277100293121289008861894555561024291088338003426256467331286840885501634206398397750566983107568326856060100185470364468834268567376225164886041734338861539672416760723765974094380659297819076467100666111250208976750478870011216856067724872449647644054695266944986274310858363170003172803514096550063863872308792783204411682512222345729188132798372186999286587237452466037166578952111783533938145991967625136739396657197557139616366984664288577042894287457979625373614588922445062327703412420134085189836127383092674774907867766911576015734290603278846321224862070669319728055038346277145396228503841590036094680236389395640946736709744586718792945669620990852418220445175365179954338675327495936752572069014038540656821711689785446436573406401375058575523709429676019534349030011662641216489055368306825188006184102539019189994591518810459261222308455219664974518643323952426777112374016314170034731558798360895091050928935352214250554040324598579124009703417310222640267436076616494997526249899577018302564095889767494512008749729994883328067855562544354483478506177875693210856021103619443235786063515430086166562404923848028261264194466937838028462588416321159275708778497256198301760542322511511946116697747073876327705924199516197991853610316423602069374098317323026582859527228571807821943479088746013817165651829263085121395126815810000856973325387417468225288446996226448084722568173903064571430796737379799007541059218230036082108234244269981513481484135135468371010895030081654781490038708054172259802680018937083787542898620828667536379491707764475763037761677714783460623684089759402145733792245049923566910759485980033216824091220850709202216404022555225099945804248843862078048308630462021846366507754998608875988051177160968512805496177544983990979007882175646468394904571698887768594662997476784090249433727733320035663310488666965836815890876992141427274969135576567242609407875611955951720624721231667984718170231723735584744038457319330583706312563689311751299749478397049427766754035900129332305810180079286106443048120185036261257115949874269504799921368129655228409492145412460633748581936474396966281783629830427224000701999035872331328637571305658200299690701474033854668554902662467662167761823361829000910566743470888893572613656156964866120305659552185758227372441531770162486688684664292697101193397973048408364575249285577900490409060813215212331467088641761278336985935037988692288335034228576780502443257072454442328380005002711563039646479327702234972515725640412086235600361275746946981832300814735713047078377790437638866830920021251873242376778846292795034777052140156842121264509872193004697719545416254732102339515607635183086873630174946782498510070442864519776130033900595903874102639446635016201513900231177233116662620793839114586394897724473485140070138470279615408733082945496002023736306580305396848189988694375778350615610335506630578216091682266380966640041037448208914336831270826933119604580800747013245792745050611423070909062266849834753910933876576365827998786704094727651328689818488198386930227614555147061914325302879795530712967381360557618684632769078059338164483916936903606414070524157121004315295942608083136168703070280823976351657977633266131438416001320099770556497518239040240848450226108356824890160681953051440146091372502407855336849106873468839782710044357912633867704242081486790514458074242956391709865843027077858623037009334712804229724877093094583378683013410474024405982014993100789646871078357127848802772196578275837382834787611793825177871368049056581930127277614937254369973686124239305325400653193383560450688997279451516188402132862812365800241755211684372308900251967581422607501539961876426252360740628894188156408216886401762995709342469484819484126043437482249832964428584077550699342904728017799580268539410005971167518511014151031640648606670964642393685960331825332963589358320297966303412004427079024687129169645974700681346043429348004787803548316666790196760238295646128756313476148850764745563576891651532860598583909212540077960940417397444464809845985750338964240012551657316528241528051790501300518680857864106472985862182162568320294387824442941525295825113662924980644727322987793573082820963823703604789861527970796812496133058548008535467133170272003797445270108208953563059012757964792664992217682644017922828281149140279392835464140358317664192315147706834754509928061914915078601442235038173592627491764153168276775734451947572008810835260789193868612057669142753575455215188420779932630897211181949495786877147615751766939956282935447900082232421515060733189168750694901885333620585315307014824758086263004813903604846953107339943061855843466494628892710558947791390584235401098501123027162573717208938427453314015446612085247490562862468581860845199256054390078726469006326882341559351035253340811387333859467775803309406253103968314203020703757751797458525352364523488677118740948123640384740872703154087508129323573422078643147247742291730084908303873551451943105953480005669190424844108979310048308611524267227904585369955109419810289981386552945966827593217067748233400968379225510947525391989551150931271438590808965533420436703558346598793554934514486806639431779625226431726706873337333075831711860241146456166515284165586346874095631566661212909612749856790255819384804714046982132597531484624391150866201799059099701097304178942035402202433199805979187308332583688036431361178474787864859624830758419947149909163822946890141381732177861369202204795518407118649834012466686446957950417941148571850619975067483484249745379326878191226672097176862402897895174272390152177381742709061562811569373855336112930841684062345982031622094246050951113049686156730764361268558790303145054988985172739447182866915730304870409697817387151998489070090979529361417488187313818069156207162945103803160456263520516166325000324884946584899432999115778223113254183690645452071728469682131761874722612144796904698930863210862162114970061077566666517891764524532455482644962999365726649246083124020401578198575372262738030778225960883574240947291704947035678567914140980185350679133156644362463660179923941547682560805888298180783279159284167990908877282656958200784626294112827268544131203536583090071323083001747331303297647047307490025739125563545949473719882154464287705101631363467273076132634144450938907929891141161800513535229310412735454065754659251079564145727135567094890104018087562847166975074515616201447138320206805403455973270923129544500985330464158651735372943825739778960006198758519943251518217624749152612270942204217045040930348437645821534627495801688600600407118006354703333056822847708806733078412999144686262996767991187905500395726107524660239883385729961255338127438924130738587698781948077842804701565522856645682178740866940218389152636182143565880459895261058140656565449185837011833629792759733288931060050599669634846146850538759592948645674544357398624390699837804495152651481670516281494112606467861569886982840789625602217263244604593832437917577749739660364473214877725848562373850148251991739300916657509267115185562034536121818344272728533514194594008219017388517930265829254445160841392049797650181794044936798849192430613013871994540009979276373958877629577656734519626775870360286854521374770096070303360045626210478384020437399855385820473495060846947675256741971630998786764475206398475255488170736684664445183330253425588300540307674102134242445906214268064225641496492996889549741502751816515805641165441438236179067524807972423302228329345182826896379949849821548242107129108604782126893090536126533557232207406531114439381494855556526667602247877770882933447660640640469773600173476589440469238309973128245967957853850559197878112422125372256984696427928979544099917821156610879170575882566407331018846304263717281617198076864573527542956781394995269213914788220272914106731157014428476070143077075482907052554350667352551640532774879328873471322614372199762032851358876924409942676632747520922152901319604172020203011556610719016292332240299896989233620622667373346960427982604517309947970251565053607111786570468591718067796618336949081641725954048998219316261175278378934864643234690931692374010259278681256739472772816520185593199535412519827062684091486174119602032198829020474190892121436151757879721581675476170912332781624869557972392463868103929901334771732021244556230027672003902130846215341154743324856669497390394104667575301082482917181310730144345606344140118384610876747980577620183230680385063992934833427081041876123024465097194096769801742274125232669304846266366398395159564296829833303565623918820766867339115183756299298602763869401841888982994184042634826262079929865115956964979427992774428226736421526538298080575982208288118610036772617160572940756156798035159171121723863106310606944075726734149571513313852408992559726686211834403772837651294283469983051173063859406814893145549021437897523456557747760117805482554572664575010236603977981051543373909752200898765283995743049284440756302856689252723776564351416512699199847923249951354410402118960071972499535126699565765126165830246436324402976217054982010152439956544490015886028545143675161524751722061819837931700727192221882142870544050050020787797724056010170407045909216450638426230614739843286302331712314200053511158869133995298868258055443260208337110434669542637302967607756567748419417006415844610946770890265687335073179562977785275412793152428034868433555064887901334592418795523285070301406341632192434830725250421146897443744069687011525519137529007994093266081211423688224500219417027793936061303089436064459098606584920605784936511211546033618018345362186754211687500650239236287188662543981009013426995838848350550742904979193770732650827998982312263931263420853314488140014671811171643643687141005812286742048956857950225075832049262814009595731314808295419124136391843020224343447635086403166610296005922541354611184837632788924852800778861096155818331945079040943546551802932438263540459440319804401472080123244401062596267577029685052597005416539892172582075503292021424916036810966781377873700677643822724794560152922426697778339771473112455972291855058026278439149687843902648374841554410718897664048733554346904197801256356825413893902235464036693370516876421145390284170723465568381837499899012066620080118235322859842261081965545901951770991763826482510782175821109808279188467155350424859316450378266851216352266479644009912336599895771481613006424420660363823268191558155344015745993204373132741745607296397517477060517158748993457656542099546300958833246136327338093313018265380299780030986881441193135883481591996131435038442023722393551597850521727621984041615284859729608595152229074711494602904759506550778042206964469738885309573219819164270314116065348627223641796511523817111975093772963923667978918721759882030378572297394504039636735062776760503406363873590543626028456041084722665775978031359816763894568316865854249111054996054794305373747603358050551305128248195872597982459444788623302373283933899369885102637983096348932241492951052752206299779047327686169969596932135964071643773243275828895982657939303933241156623762943456731965331577991502837221931497878579642298032523431124288178653313409179684554457403223163926227717514491710385581776392482399130068684293169041439397473430848029643437188698454228508634823297707858860541362840470584697412153969136884260089117400885059636876793043673506738140475809867487626586316575288255015904929760343505106081730181137648796345997115762483301565102648482643616585590396702925704911865425510336188436035436742402941969919920502072434526378816958588905106436773866434693192080124808135544871699238825992335421055136710141587201613518088201655081051723219305066557647278699991703402891389380264627374294173171965093703181171856373808134000179053162034125199647074399859732518490658206141167499683890526082045397492550033645322302617893259464887321337503418513840874873039192675529479810660455721251661888173289838253971737981060214058322261233720580001736131116858962528534456554000134030322291236700608783334634071989877013672148122252447666407619151716250619020633341362041177366807983889064291500653597473291594784748870378871540370751622461786849782887666520345906723177983782378359451790750387908447896371306632385932233931005759718519140851421037275821471935114739581186404924046632091121489993501315749995611683970135480876620994402235754434695740421947874262857509591071947699044940025361758812560977370590294967303102464533047613302184904349931974215956399076942042837174804685978793737155531029885385963937362745085111055916916319900853471369337917139613804281946256350263029323247309560615493108129727147096611739123493770747907290158155680024590001994446077843523892466233143270375670218703213601427504355918278049261454543556371533340009244628821270550042608997787225542972730240630896242537785607425936670051686796418031523646720946220134176759928792195480444826388213815223972905660881031261308943016974119238015485809313378867429861172590730155917305968548540133874028513314993702019359438681010291680382728046253450884383827730902551633090364478984702394961241356240436094622334954748140678321280061238582725708110259194589193266410091101146501799257542884966363973825703152774565648486447619626701115298229480501857933380761465841053975355995201027587246910284857147119248881288840053713002000333670909712644774012541515254661481366507198996604867445221452996746380227693589655215260807583541418303816624816861577931744003933376295337350785549284325422515203643549372686699699919818837063480765322746431215280598443789306632296064873335366584029505535012519917400618183071922052050310971647440509529735685825281278744804294364412732278739872527460902761026915768903144566012727345646583752691334706523609515663279507086337097000126413719407654663553791616821251813267936479049774347314639533207921526606078246473171819763767411074467996839047691473132125598832138126440991015649851389760397827203075654126425664079364660943499105462325364111334361280615058920226361061917955071615443827057559653849283770944984585158606238483770809819618529874385851592126648864920095071248182413815172251169818179775118798518485301438851709944292332908739990797329636606242963514551177956450419265772502904944768372945400156933387404763325460460440966657665844168624839908818231971205269619738112543662298463050721341774119900859856445514519857501000403564978620227363435662837557594710676241866513920251027369179751881974474338937664329301476661331305624129410735112829716856402029268505942798682265387281599826271982642605034228474352237254390359005167489258643532909432579823002498167010170704089928885163374109665690896533433423498040816560767785551636727956392915668050948108820823219754065363353447871816119802763148196340344984399421429284038004720834880829361340733608795275600031124079786647252419710441470383596235330136083425617790139149823312701086545144743749408669863970048483023658801709817226862243652689132702955032769879549390973390977946075299594039611392549950060272561646482566764693616798173735714255030116858102853711215275465660706950421381930087060530199058849784003225941456064753398246139721054272703840900255166707314738876083655920353302232850628618826949954414316900470468855473725058883128278989406178296588141538033939500890707130090845262419666251353175161587402386952654570657345392489779146069591802257888080029773076266743002843713800360682488851767839555257323355648928011414374070960697450433214897540344177082828833695064584225523920596100008840008509124655903778332343101788836884434749001514327032414878061964915745929124794196734231357195573810551918754931282391007310367167354131170802649057133518442312411506191217173402315516668602475064778919125502186716627760105191622386128193707793972600896362493929855544588593787286852814233226638056774352727865508692974980478660303872084202573387810335625140053061515039006696639204097029130343091222160318567275800792817097334473691491663985996012368163463029550203539557531461654796483902093535078986668896069870374477066447753798733492384899357939544133744681601742963530389857651218220295845547466904434663582284359012052428610464555541895394308410023598738752640965694370672632249802695707573952456312884844880466094595664177814275558144594037177811686398580548552400989378914279622372746244160443903889244590184367628687673502397048466339553968277323395496761320852419108485556255396104053489274507526666266285111435243943266143256454733170613178456231735060452870958664174012920925796830012594918781023072527202305974155314865406947528505480426304386479096438526412191356009106523131372589180615752831667336010766541748230274733135936104956539313081007387185650051647209913289972405886431349606780966979640239179118974829050292503821563723539216666229114418365545235813575660733549837691730012309829050094361701784491187642958510944719930128825880987293145412650395438964349281611485403295937670062743612386840731992413311408759186477876194823587159673325372364487769126624079766610775574534503374519672211375224584412297366462825698949037753784025668171529432350055263386573525848379150614547964771288867743310364801824466629936556359897967012649629124305839668324739554898674708909760587912803688701621047447545820821904526063188442891235289533891076944025461159270253313778678344773570356318121485945023336022291236836176341830935261159590989794122896313073453062462751394075475021475731727266148992567373002060878983926558023827340288880452938812223482294830763226120644073390458584123694497117682252327318846973690605455453759191685204749083283182947439421535508609644440377273804824352797261562685636574743660076377481937931800234793777852799661011107646838702960196336302361401748672100483394627398147247234629724312891048806700000055073297253911541062617663254498117862595981404990541268427549467571990394110460597594690971741857851875425625295233978747458385950502488900636948756906077841693034343226827556793271806792577919474401917239311719037976607356710516442278454028883892495978559934333263450622517092019452465839590009284042790343856561212294558642542399115406365959089392017194574035219632114678790692377449442755927086551731644199866630759394806542593287383605486808170376410706294267821294186636289641350875834138422165248990259162649725188517827977018008237983007225554320332351294072471427986386945512007453713430145063131907917209655536192100474364488256413417632955783588253595100493538504645270642029478238414694417968858283781975136608621221339709323540205324473272869135205328260546876341340617748625960656467454334939906097626132147445569178573151412531147527692251100585818297373586826060566390339835308549692634301967693222624852218279406598423184046981542664599713803672916206394805783829523131197201121174175303590135054287586208189836207356977296274806016198827188970271679266334165087894005127965432272314861663011561398699637386858544824633507971974725406695828418399767970643327985661074607603384108647406196324275831879735658637592734130378506820641234164986675564400891232648962268365312885397618313142735860399582267196274235256163133056594601835448631357700431686820118628101418106832020147035819072303068741845370847200976420519040475301673329021921399754045399482458565150925640509090883352445786996257208238211656657547118596436922645964815167661773231472129089182249482869215425952695232829393569358361088894645484092106167285550912290216498480988788112685479628497028054250992916273528716357794154323048066802441199127677720466736274803345265084535089312038236486885508689102819976311168505159747976505396587060572696891523471773688784379570590362528675705718017204819322093974282863464714145799998998792663746530772074831828311068223103898512884123795164375904839382145618870066093119630217989729748873045427907467738697215915119495460997260474092495746865239900337600365963467904842168471019171856976949281446379758383869628105267439524445207708415171943382080486817644977565820615112045210737654103233931794913981934318953579730418523729285120627528059150846873519939705849173216746890362465527909595987580299537548616622530443195387713665055360365471436085093839172379196652271294535751728608830139093055139381135641892866923587401724922327257958753800648415207040791929459859272473752940732842543204852085578077183005194051932589740667156877953828947998585560397772271714265416910385342729215250552295670438882510290918828567066736606613141257496500735306067603997777634628158101064604480285517395633721422943385993763036653847762954592789223570416696681121415551581116201471750433925413819432798764023777193412125731791750837650488115091170249539735334113511621987953414733839152522514040205904213395249328808946897504626716917749307712992868435306929388267867742531453439579226333745080497614121045930632148858479024386483373947959291507496913139437141584443296922327691596375307397963354558775198422787231046790834604287126042409877085184959267418494262586163584409688280331799459849438593788094287234020240632340589270632488100157936020904185300806791035998780520437914082627219791851040512594643080012093267620280859978014833867032816988494125935874869790524268638941256500352182459854105496813148972534180486816067079910813287138236471620896953908674437454981064556168542402160824365668293263769348228609831385373633380651018221471038336012615191307312619945853191194195554443314532272427010954168874818059641071702239822794257836570530707315185020289685511678390329847425295011308463324207869871032499455938006732882769205766291119858164668237396670598204224288378159853046732034566403603447378064778278430623515186322680580773586223889440803133467255249262725003160619705969140147495309756188533364373456421831786456083281924808261628446283440128347293954907113566116955145423717000629231884439379580304716826042078855421764783204689120797735223987558713949897054628264487377447543939511875334161789272084399297755778738403435491266707675561843027639790731945545472360198928997658626860050440505574626639961710434307678715220090214746161789879042092519610140144551785394390109808414632155518407303002695250049712593601071617421239574425202931669220956484562998698260191021890714302490965693499278099992768928077326054027053772966643092491450025827428018199552705234453669068139766629996276962123345309166809443461453594813934128879319350588461930133877984054422445543439701644320595765407969461874734230489414346157641635583771372824035284043945971248984096552242263394355328056539290563086317853535765254467438863617229874896865646256446554210458011235102641070820128330556207492189682678115267339668128144579803810816682075955953414083675714034934258518210898552893449100126691899788638682839721636721129168043498011122861319208103465954095608514664459111893294250730015845104001578794259436438474471663503814673759329073849395271969359255389787925412648728044703770123187890863105582919861685676365481737836013594175088499031325518561244355853570119212212696499607151542574611367691653338720088011624621362528835790908505792473814868368126616973161940149526675492294969004222273070912642068687091209850907249213417358604898675680138231154038586240723187073400163585507303591832750828736124229080974186474468885997256546396465021700976160299024005995628440217320275917332685329252912750130141459249087471125099004599335111254992328301123997161738436376901280920716438956957897931935971389940359102082729600297114756934784417703664194784703985039943092919677834496467425390773245361073669557467112896550621308961231275133293390952174441931177844078341074407364797954815064226365067058491413404727530291235346420104855711133324637909834760104249363417404204931192331620660214558210805895762633610434491466346538283205815653480609922407466649548277551778165536326204773439278840425787108604602649704331848388412032030247328886631382231668263353988661767031041786490706103803225028019166420401426361449167571007927059349126935623045509384182996300516423222545972217366723640976275388348226961784909458802489207367812835637158559755632637073942195520028176410509073093974626599418218948741348015400293147497503109322572587520006251823627722496970401620917921500867448395834566085550928175240026151888078016425455775055212399484510878427019080757741628289760378223621511303304711052153475863363675824882318691640848063841760413397660064067282823369343302976395182649019798739742673418980543991283232161903231538572819241813367418553091030444803113067118024743490352186695578912119478392423865520281490080269092564148785746970754373140044429564012195668103136955800421371050040086169806659381460897048168537211854571922963398919401480228524897981055134603367465504650531870761159207467665884036459269258069111340310808922288366747196122756025622757658065455053014737652622101939290035817456985765704476002962648356676106561728802242904397930633406045752338276250980412006622736678033106285466735240217989222000835816655259677525587450997499655473365318180101337039063393792717912308694851407651509420190464229679567111563474786392279989514679739482745245116776809750999717176406964673805784256402311620804426685271375997822763925150161542323795199614355651283804758592290265384866100564639120022753690383253488437001244130403477577492254718101713545970411465993009850504639840528432323434247482874801379173982890575057505416357648060042562394043397383714003634496960921417989724638096850908804968962753305467764422275866005676021461443442328380066875186692460948368136932954160143119664868671990536804106322971964980728004707782145623080361144996960202919934583892922483824191415579394916980414351592719101297845516624203268254007643431945035752420531302153957805276514792433761038962338715828973190622396513476002823577177820802599216502996442997210991332932382670425362432134072746016041634369662078465083248471475532548340374769259893611732338944728786946787426755862003062443831967944104822245482362395338985394984224893782520500956603314158460453429386313774079366047747049589551218377409602673006626752514475955944931141134700020164663086660248409098565790033201673609805836176470704507958295369363076882639294377375791688445598462805675150921428414712150098992731086286670526864443434194204942744659821863778384816014696054315824504772900517985395357066845409550223593086732175113970220736891064879597958495107873858331684562234573367226274316206410769185178352260680874663906025392581548050438224405367980656816551697255291725498759435479604862730429981614677129749685717596508361272036363014230829886794091109512811663546837964641582961438216207675641985323407794301692365786970745447812159674546191383081677825746341083200293050211084397727246697542176045568855362101891311478534324616729561465013140876834454762939742201988982780947400361388763300789780593678320555623260523481539197567188853576177687779548756919479581237850049934749207377544073832138095640275197968935405876917977250529349879319688793155292006903527514016838434095885614457500167876516477613947734194743286206496569469930601876889357518130517015391796716695989598151190437098427682148239413839556567546753288827869194608708386104431582128615805182426582101812039479211633831304013211508339515725727516951585482134024584831754150146257361514259058804775085619339129267638808555910494119565911719576730724547247567566695308082559839854268275862749614279920454845289415956641632357516064711396422262403359405611715073114693550095567099620434986760459300705576371935891440049274438599873534679379615504965060922790476710703778487662382167447227986984192515631735136193380651774484153596751279865195692056659864102046742564467901227445229786468903200463569762104937798474659474363490813063688457071637209371711865047455542489312459762328620205864654214254034243292769686156601209765510038781382546648463612253126842908186008350295961279858137350389015790887498315252602728831293438010791250705934692156271900149495367265038738188923110056391182329705178843225839697101335341932251134740153280805275030954515381102415730535817997552967249542979478028117696608474000266719509029881352313276805747474399960540591489790889620082476475826208207330528333515255422964079121028424108753155274314778431556720197401058251325351863306898518942995371766831780124311233163665526661702975846456080025047091956190247155175895567048222488377908509601408570418071906575210474719439262243924957377654339671795651132270036604916188597273071783187704655538776644889477495416697218652321884336723497632319097062420192254450492318197747648304225401168656337514833766956769005494237323603826200137163594484629899445855024003728334924161035390471893187255922257720842050546951111970152505149646946315078517531196224595505224907268001281871380536617774720823695614495001112492246308137170548364374478051744276861619161420694298601351487561988541085225650725917949092372569604583976727770781758353317369304767003962229728263375771346606667654092645075487319528055085535774988557239942494468403536904973351304084114800819285954914782555582207696185576544808865346556320497027992991406978619965654122887318271783221081448682256011321064948273577671622405329057818050193654369781837330735692856972788675653900797982050713735457827439949089329623079222385297786456765653694917634441256446032697400938985370885127719382747997159190268329543734915761683418269247111569297991826828999900876741489057005194143545672013774492020961350895098221929645263916982322356570732505192396402190107373223742918650063867869342011694119239877093224994832349109662505055715166196724035281225776264907295677324958020789691772829721077488716751271422748064966674943556914122095869240924713563355640297391200450523563822868508990898591448086912866209840813438215426413923900021734981212693724980917638779137065935648077780045184559589554598939114729020472796341750552612800625362251415952427503128065900451001185482517427038336534039390098104723091332401157504629475488194013770023891679576320559525648436389705438260412506886010914530184496678107630223138374529201122401839903021974274264501812303002021836022372971746165372638807867180039344380255928966963140242529706853103511927191747868361326342320068744170314491717773254048959102279173296864409033757473346351709055865452883493132991283311800993823579526338325413929405271253671256608454159618426236229369095102001654874756108161861499335836318448940990926899153988011562974195649077694661549543493025984468239357179899484071645390092881021183230429462509524559595249300182274412222193454987260678775296473176317650908692107343029691377376992432538808003925847329124689209168330181551574717901362078970975211392670407714098493502068135760808817536074730834755325277808161365006610829445768717089678757078949250142134355821193374947163122660653211993356909396149103618764935482980263906361705764918458280900243235469690035020154741266024116761162559743702701779819246419154209436259918676581158583361157031049328720143175031796586162851638131560701163062434591790298320444438924696195094903700044749285602433026602822699816108893001384125157187589601691866968199560381739558638150430959050123400173682597551873218946317813637879162946089613884532570074224743034126070825702614896646890827532344421059128801066480210658394712930620128276175693333977733740377303909875490863605849154051376442353133165104847764118785570651313782922374814117806953844595493072497812718976239263683037219975766407461656717273467781890732734054521167517427285011280749136649174404106920336153113797841317704922375504457997859498648837604951504696617290464345103348010458580898493583911183306860969345325389729115717452624350812957587094531370313511602161458700051636542651959447083714816270706456747421469905018586813226768961713775829875194998332714427979936393620483953939858269796709543908847537845944474082739105999599483414457524874561783371089129764276635321780659292846998772037256996593724448285114592402946345925578787449684110274763158998395137966665074372118080319670655907655060844268630547251041507731741053471458734042071755154644406230370515096361803846605425181890451113852621920530860395906561725321513465045620081854461418110732751009652594039368951330202968631332915218761471097479486815448231608587628599299007446790214153379517712460008579495822334812460099410920920095968850388718244744228809717780611119058915999650598082579133980115239933740749434063712559604601674484834608669355855129573289497755845072060102644730175757077874410730289204192168052198884903773426051485845380084660085100110782600784469001008950481608862147421664116027872849227123453503992901025548536753424587939919871054898054438482198235374609594801316021505478976731753600611222596918905146345894282390709450646712075300618409529405480528573545996419157664387682558883765333723095419505887142993178225700561612596043331863678860752377221521380069098496950506811925346269741072647976283882527693885806905854905371679656705583374334911978089763136268230169261702887226943540336103466149034735754147694496877879536806966533858900448923605952699428711239592022138639700077242033012403593357057899030995501735670212105728858555728194261034656894994417663162151557673599411977504831147596297613000736358940170872144644248253591111468776810066979436526445662978428301928215247646674913945606573273818750293755858556041687090097561238747382298505063715529632788071144083178328609162423629938838249418969185917898000713732459952548258132763544043147588396156175257888903707526162329889528987233792261204236728833819107802042399849469500142954917348413777548235214652404907637537799724177693458061994397298444133626579988572278981061919104926279351418487867556948328092538227231544615552161796685814483193184036785637541275213473667615506041470228560376427004578119927094443299735627783225633209797138598390991493405533182236627209136230778761212663374673009625024195466955041502011948876569816545141160381258655921313822644157808519627147839211963126236254371934897840635764552879944473636535297703581204288317581597006668669770145946295941269168886404937029850773071433401147402491872508693726230969316538681466579147967537691828029460063377138580092854349081154674316504416495114547583174226203053867506345447142600582008927014985778819609024995576152795020534172651909143488600414692307710463523983672207652260426471928104387652453388954863552672955535334235568116318182244371069739229457659146470721730967828566501760225386770455617297574320465125947177667611749618186094207753643933195585369767880198420257030696888066965361225423091657159326988376974841358053363785538829698686921611163687228121168897059928828315115552615571432790765039689427920600451330997980438535593596827527385585446684939501842403350365868838022465548634161194488140132714599884865156265509969445176648267781136137162703487316949362174153379972862916380612939285038492116976974625547158451576065169582852170733703916990684094468865506562858120329075352749792788253742995489974470762854019328290199791519198760271754293847596823243680847055166218387579451411187944736354009135884103860987293815709325300614536959978436107838488999559771722372851172354412130160432817800761247993862845271794114384594948852094665858464984089553588583937484936522313590172046371560284544006863056624279984999670038795348860799661886039064229603771628776597694452996123823812389002179564796831632252599793613721287821129445251483298051710033461935646522680202963860331205488979068033780226493171746702873222149760386571964534578125106844019169484387996634098606040636313408323602951827747255225047775032832482852245026738072902732956824738124353694309254144883676798547491204279947072949521250775737255935583724200018635190321416935095256534549499657964140033909001806438121241136569884603675569750092162265999649083000152542293723183812199254403601132242300628382596578025773476991925236154075511833002550148662725183504798905453505514338474036539377878799232412848615238123950362051677676371896731977515000759790191745693746797147532263582711457386298549419698513438360673118750572749589860804101949687332140684076257660440919089915022094763792111545345694501158821518597335273035086174076996558490824641184051771743203302875115359384039592028602993153897181581775011829280870633152918333669785927402141119068838959761576686565507361725021419428466683001006076248427422142070707581868396006018604930184872576906552514425823266676072505095522247431207189690847253545658491352770803662692709598678409391968408710237510144451063147803074252648736946754012376951081900113575160299184304536185541366678391789257456943740379019664079366586380915147148606401278012474135418829414540768647902028963266121620263267108605997230389311249855645782954984706108933381026815589606373639746019565759543301745601261973080019637951945852581329393662572152613953110053082128099266798412386909709142026147263725518488977702534838212057774426415165151258654115828071813782846507207755679547997332633009714904467790986509475544143598498054341411180251913341796039443316809014453564475564741757666201719406033317124551773099761448520539963529633792453236742021483584751742212436599838274287095039967578354268115448884537082956865685238252279491079711730006953466717638276035419842299187237673233383843289061235918717335205682412326968201731810829074299055063939969497951689984345621177084055635114058958573350128585629335975433225922596302330102979205790842997815947319858774630385452822651783352365215488900097348953885871438939809093100745890555572604244506302840503360899539518770782167813923724308113189377345530249471196554009932423515774574783534099900364300971137338521360843948522645262005421452581208758554579630916620411992283278518243693199787271750177928862393939714793022457235176349705181848548303706998019192068136587461977425813248592801642729107904161712285435000692884286046447228790831598351261460210135415167195873273626201956589054608660071251929761966194530881557281388899137076527450651893007044326458686919907203076442012862384604436359870514568200750742630016323677360822002641485008765814261076398173772431561902996729240428430131997685084044175359380140799865947436777353581812496680662650355938865723738068781682895741470590642224521777314164934197895738845032631311069309904481900388777224052182750456482555684713445934029732258172058125120098515452718822106126174495433462521994168243837826903853880178636160062664787145235560790374105163010815948713190923660740071793447400084282723679363569801353570707633035278321610326535281054217646253887690909432656833149015629106523901729524110830028318755219926709264704074839761134285781734032596586613547118183033218734284014275988416107586464984243818005911908032303111376683374747270292792047906264908727097348898776078756641632457888139966960170585898402864274785323271456469051755806359227070449334095578035205352661027695936796997404475162036633807845476276390334293660733994917763938734056960244504624222574648461467673208461757216043010537154025261707893354417085032377567557518973108974997400637076659619093714268027019453264853773330808667473347610343899549744818160291890075877714184220363987118223503956266783121880176225861271414499271370417242612559014887078146793167881014065682085263101067886323246205167379876404455780736864443252552942662601784313563960333899540706407692596172339935706300566145069188078579567346301224023387927914829433038112875448521766290831790505685986585528317630116102311448677007819883798079375160590455061982021657113151213705331426187185011635044500284738875149928779964130688240081536292859019458204838147803921485211618278694057527341909646142917581778142023296362179183712947221669536964568326789326780227109102483155492963733549191428032536220398837168260537842036389142884293795005503844058238443317600844408531109953260529102140693383076679436711635378159031070608338228783944730638302602747787314477702622572686771982259210561430911433299173589843040794508501588419439601841950636901972993797150840180155161568947717851837894230348716499355848751433397031108592162005344081603678904170719087209448425722161938636417449371538391528012126872359374031478272970827382583579172758685942121192836419206188285742316921431166236547601769359522684649418843920622492956762005659775570503875733204215459898075128038145640249473548014463965079983518222543034834142954150635868453791656479255282449352557692866674307867637990890567844317481854467747626135082690497503718898411357327636665285870282776698002954874007739066804007927116838389577859018534264810931034473950186347441768649745112112646638873194614667215346538977408206810668642860219199186144715918389953108821171529088223699400617359453676416695282698205887849410374614205647078141493282167784840801758547810368744139167417001845138974637173972920724236566653322990588844166003793108985702591015516369883341867155648501013280811955575290193420685965356780383698947410198822727253979497553835398831379331451657451049936412332393959445229275982513918177660217244240788819655487503159650219886533255965674556060960309487424149370944713952887607940945014353778852516157612925132083069933174412043985778093117869669372392754755497901996487920295852613899284229486880392344491732640999977343639221596967398671501193563869310888944916394078053844480752854716696252445049670097524276839889421410534124459536051813043514503365514599200168221808628347700987626194814251845830124854770087623653833238842310633053759267155266438117791403781722975610526953923275244204064263685400254061838022734638310965482750497533378127932518945240745771620225864652775965066485471761019211215263667607849558586041235796445671602876820613639309913435026460516737231426594987654932845590829840891673321923941341396193919742194414005531595069398942677385203349264492018580139616385888973881263103291407496533115448542725782711350937458992329934857989217854328428128367304306107393934641843394294952933058494860292574314744689007100134927325159572415730493392530430660468580155920629621178403506690524269594704594769663949651768612191287252385154174072219982854897740361700568034654345215749907271683751353450453005931226438847012406262397904387670193614269676225857782402415682687336677870816066447434104904467249341162775259737695086161026650163681612935596743816801688767604968615220110947644884521498850033162390326249417712051772968135678461041513904394322363107656161198844325275030729443677812158639205426491996118476686448062671971281618379766911026007064421838933916036203783478318150522509956500685944941142459991071016676049489041960070059138100844318919461471755235859439610348548223685070321748000822210628542852732871838883644688137128554397230048310651828825332347530530427368122264775099874333917179631052178777655232757017351756263102265458278914233270746172785637698734387831367580681155646856843178509182817531787073658665267560119701855014683043065203233772467306522783358875256569588653176519711161974980596125844099300501232393486326816522879620698917244454300093961399683533121045571742544719296108589156997598882763450460825603672525037803223110125739193512010040665202367902375100250589619753461529824070045399183072148526813927807057648127876203254576345770758839924855531646992171513368669285148578841590832822133322785314113685474294959525684509332166811425379145903386572881549655541298352834405455791839132963942167269579181144475060850988642288995781816655580582672393991745187201394767413886506602837858195928977147381795289444712038194247323648958057697014550310333417816014917120170071616044100432841204582753195223506001910071649365062893953632330856921902327808055112092081413395059130888254515495758688172476517733572023445561360733590923466162739591250126125176971695652592650484864231299076359571986003677883972152859842366221056722439210300365088607598862134804568035549900354469527541297784788409464373422095057868685442763413314590803978073854744749343462650866726101663751503151365527193291207789887177171836705476382108423960963189208132184947290272814611848024327068152365688640296222058860710976141426000798442025173673010717347768546009520989804431714016622178743114657207630083065076228243520475808771653445755842358415067759501947352183784140183907846035489818165530811018196351751363733394301376602386421313293452641407462873397913982948442699437412534649320874153428563420825965013874603811326534654845487012611680396644683140955550973332544150925585662073182943563421577048842836129826039369052595277121544858162689451658388060606948323805253323648953973046596390545313898911250879202255088485677947507126928019899433119150766535724057112122206921790211384747549839209568585082394355714489617212344539467126036776890521841540388330022800258381023330598379645965090525169797137920145627460132579243742515995404280914719197547627904840165399766933765158672449020685498816144870404003770776817339026642399346117830812833560031705488879476972485527036280455541308537944584197837224234582004917790385975130970882871621664590768583027360865752259865581229534065776579848948105479581315284147392745796062331405387561225656874155729437826136717291766075184862738416522585110499163923842852689441285085055067676378468167489215231393224191624802336850135072701727476816388759032523572148622762952970875032340663868179729913938380706866186866758736259239287627900973400930745059027837643135937674031361873149580109440607553656358001816707478133750956941373737280500800996824920717780927506914722121805706441984517794917895722528742453565327512944071905409645195233609854961767823443740996411865207940721623399399425949186624917792208810519360278785336989138815458950267142084150028799406644174058711773350309542548742175550124448540946745050131860405247342030035672173728747007811625939067905658295457106734618576912382094080386834335265606131734906584279051986551912644747552664413068985239282801763097460573760378764198382298673211464658033952494643457397348335161784694584293388697419281924349796297598084171104262109987617783266031698174351855938786916320459478315546228964297324889818207912577450425638787770136544694726799344194289174727536770460981926913763994551864776911516108803234683205285449557447028805865051367520416981710597109149717338756178668576384251835922333010918572017650969256485055805411977244031772131795525586787665041773433955860459145601890567589106041906214706724280862105034069305555011274684820625472838937443541696380345800860223684481890547846329960585436652598650108912164274823948436362292306478987967381850454649639679456619678256992494363954090669643853563324323396641631498790421939518410820214109562526823777102215063764709622551823198406309155635743683738757340911897883136907218945496069067869958726866237776737608703386456926645280176186696860690860826123569627535757058437200756753130988590070004908084350904657096810836467521504260848338685669273369016749027886049129414662115612612179276837131753283098401672071148133327880520471405127992549111636567651224485011288236731259658820243539091188943845650802103021102888086858897794333443672916536463025976612119006345616265740966052659571152824688232658890041961875812870483192645603887696899444184897860661567414273566574603679278400097591113894769330188382251115100816397103023844588498687298179854087020079727806383179415768238491810543554683404359550471850535327330110177617130961875190899553054162481181123087060480093208872109109779022923506204689003666722363386240126318347577882595616408460315996159462168150182993569436830998811911510722031558412924338160388658985653660313905943457847851263793831476886939764893717904634180693569514313948072376937157256343329200213369679890263631192051833632482261185010504321691409312840838184688690419079859258813210331147727356892476255199912706020125916097330216230036355503722954573628594834335343474391065603477066640691784142075829220597825197526934210515108759506345785326407778913638449987493076513227408877598428196238708802463311729382225983985388208619901791789239869050529126286049195335139641363107598244857768070846617043817839656069788912758297424106928611372550781027103025892882641750619554466054026031073869489593011516243445122034540698757013683306753917068763460541243562066867287599898857988671259596265355590473015194033455943323781870341241946441650429361396536932784316066781682805522463304761555819451829706575283758326720325229314161050514097543830025192053786171071979282055632178539532238368396122163855103688577174806712444929820521437946160624272903658616089091802156131351099785648099042432635777272372582370523841707772800845818478874260802636374619710542747627979883145715269978999056887162421357984521135662494186966926416677818886228595663124833231510355326091470713964830441864627684801267829379430392691984782781739364359436802644277195367405750364069943517502478868287684213688704780204706936897727099033122257389390081469743789836117036644198545195627156517727652568833575826502022701163067811158008088686628111292970598899997482105424748861096523518939432495119622438991031873654510791470848188401276463835582019961231167747851614883777797083106911245225135611885400046288500719647947705942098974937096603173328558550975122593706048025551633229116311007564201234842918985496218276432731496768777569060204453595004191729491819361399609216768811962991862728314391465914638282089527103767393962123514240770246606699829837859386813860138235291178041027116747503271234265748814590339695820025350525755361485222226728998205208076946400384798325818043951572655209310988498114787419851312461597635521973417225929539285509835886474627254165468098303685554217656627059703574891020404820775826816067560469784527117921058971852251106647703717470931839720336262449471856824014344721285509079374260520106879057346142445031324624569474059240474985134534928598583782934921801864542880033415355207182047104681008291499267839649570953970348018723619437968070278102249372942007686863523082751285012949244646756836715270639409597604054464018241996538447505964563900456502784193349037413680515895664518482604100064116447634455975973243673293860509457710010513214423589810095124383813019119660001648912930362364081464468582426217275460888504033611396684255915186499321363551944224255174759265407333267768357105376417195416749993908459678744606363735331292526585384677290514917975480959081466758876995979063810593662748674521425109741100189475841450031921241159577865958674574694608326738572728222334778894090162470379949901284316869187739423433112591882367020191858363369757938760596145967934235801680038182111503762572308633288487263843207844167350059932403191818303314044598478159543145960505770151023042287474546417945094929186019890122664960583679148985682824271989884674615735475012071664926622756851978612363883512554995100278149314419639908799564620367280598301229431301803416244213915412279086997737979812359335916563310663719968610937644843267245538939791617640436838493948854390767733851513858426935244931116022047984038630146529011637731644171637431646250609548664281892676493573562075143228383933238084532503021063353239910206573115556269782799246753246149592881674830825263991527081036291054927922089185527342445641854105590756667596146521331646161676213510016436247855678526909758856413468600648520302887308361903302574267124441255340312415688954782755525132559048069333077470913198331430446769389296067242336269277848867373797306222467715888827267307043874759453261682522311874765250174784732690612995156215486339113680553711640140016423108255999930320251249939868179015578389636471552870740721465474167716403963084259278141132920429696726291663816993451814436723879723593522808613061961551779030680379015084661798890618123840745775410901629475262872992438989178555766929545171408514790302561606550667030327586725023722619257834503374498158353024791981473514472259336556532345815688590797417928858930466710372997112653728258278239388746937640884891742734049238673776081303069614183639886630261710499515926627755793673663217464374788216276801250085318952392553024316323453337735047720435221100360234855185928583991777380843064711897883220831146182208995784187771851565372910284882872659238728001380835472927417886104032499694545259847899935597486551015110191724017187959493318135778891738161708577594239639250420456111445560758031359896238330386015492392212239476648855751294073688568129101788698404668578415650017597024912696124177863957303141480698658238326628297558416943446515124643133628408677161365203733809394959859235412576970032916766689048764458177726102709776334293265787296057946398213310150046387741318301269172270138383671254145207095296316348553934344611494265406385643980490969043053924481265069246852682741994053487790683976494633984140413501461135215630987431189887741247619612766875654355823531367741559825838006971700360979848166782185127500525945802944120485162172920293770025516445088631472928712978901687217237953869063604549951711084099516254583887197040497927288672215381944497576145083152869622459502483065212570639732435460071062132676596461931848180808851047663985142585018573296560160654389379782424001416347786512008859585510723309341008275135233403098408060309557163366370189132896138987113926237629791774936481359651387844413692550705355203197690017849693695352100746786607483266161257410258113237492374627467178832986462717398727220999972852176127595713302205460687786294913928032695945624327966539208938441209371482237880725795963056372973149736785381939284533455006990156931148480039723665562968349814072696232612640844596522177195900446156193157670803659821899612688030807967303273797016855197573246671430212833667049993314444735865024439771464553871587920303706901293053239160227254136072875400182272192337894980151001116441451743154517075896734915666069251121051286826103108244611987549506820784040606364537341315701338313572790699140898016402561652792562910686677911610859719128252790459284865805163973827541549371859181591894771835077516841230227396680211394423106801545109359056422909440355996243717287630090925203314579248453779397883023146229809210434778224989066627011952896774166368105910309063997512594436827735546086045731446696290610096557463667322805722831397368671177523025683144846626538347552619452892965629156957231021347302721803415977151686368894348388915418545050293207732339823451803191156183774323704526509096415620759770699552337804179723508359595669487533645661600538191157428816236471348860166920433700972182358773915291514930409468505387276958414947209816176916486763438784604185283401858552669816635409494133035322502059110108642661253923932358615206073175515950742933838258897232815867437307046791007860696315932306120278280972172967417825268167320770097524819373388872919726500507569693607078789931966112009576168345083742053133043241071708227438151863489525929256215406290495635450295082509955655492646895535020705778475013008335786955804177929340800263745225540387358273136093662115184205099006863594711869312897970732077190836465573878426885839375205528712504673940473684852705755666023452371722831643588889216635846480220290778927973440205769162982884748472699405090325703466974741998592079388633462398284733415393938368791767832492722031723767882413282283578969517799982740600426933507972354397402316997868428349646625330088632388497222492126817122035540253637658943031646605436784181963873061880988672604318165663683443444429459513990227705074770198865806846905383280479276140229217808137114488750094484418575282553255130391813438062655619304750419518166912461127639179642012467188495598125693504419438861801912320177984921503319082664859227638807901260545784540766546310485509431703424070698548183779132137335635000442567037118920944499942020243384075975713711422534800628979728382676783488865859243776070439520153166694707501896210938551871451253325448690279474179978940717298442813102768376321675152055617364530601904837719322842341511577964081988762207385262520540165366194235080783514990692166050090074928728491318981581600415284659056454309762671309389111230630874276767414983607021689701210165181782619117644607186857936920057468933295999157785048330034644160760428337489934576694281321104213414460618864875826546828198057697450141571378647405961748835007062751271403461398946276424438289452876666918190197947542143118094859209706626048550206009683901728937356907222061218210502315164975296035791348180001499016927898845150492801667001295611050160115229188393943376617640231939054886051733524398203799171602641524837477069356759029254638592276828800756297389370392754777516527810152294130654207545947727709408666304684416032458024195902461243478203571513327169446814263439143037626993092821429174845399033466603954282006345676124313284015191732599916570171186451580462075955258535692055050895557501336161330258091358364135348625473028224849870413273394747181183840727684653861142369932077080628750605948493776550221131681903093763575872437137583813926890631733913791486727325108594225797968946342226174181052835452750660495778572594925323181110346588114453921508394609313955940326266191280349276797767681753040055599808196652291715407232908380526071383146011130996913072705321614677302912098624786393637011668276838813543927904564275009764935872903035996158626945963406832307918832468567046287706631917326622271482673209089835862001515268422971934197281459960187523262233664526917533884378607775284351360264300046124830865134865234983412084488709924097414410646764606529252501917212857920233434027140755489860466620979314425765077930026250463693455188481452515506792803476805635791110609543839756341147762386483463778480526350667277808232413313277306224330220890063414214756938658498228299541574530625255263680910665852190326414352282788041573334284926419522885534353353556102892195980641889600284902408806775058198813795417498176614686120827316127551554143014943860091387696982083832163326526707897207435713997835168937689143059893446892856752807121634589286922286894340112049282537324671149243901042468830736025641661555132078837333935765780738780803854038124005552006017729987448133974575906628224360016140347347288396943318217946648219365761738469762697285951191567442124196048830805221135482970530022593790456104739318497786941053310023728506081251376252916620265818310238970930598659523492655756144727684128381555265367813814579262481845278477031709874999738970760276291719132942215461776616537790625864449026153549221107935952081326050242392721555214591226424885773337531486005672113135764778642417535256205655784229938344442061959439596630230841871233826404091095196227831301017183026604812352205382840823037255674945203418056493493536723688353194646128252966142591720326243287440657144879936520498217276169612349633883813595277752251607225030438181398191141090767869678486817927706407188935722664996118570080677579553364874682976767247032302968986125568576772623879933124775093350290242010660124818947680680216760821961548453020073371201338335340056036019643138486826848993082316036901264750999983766503954578005654508481222656367398596993310398125791350016692187680092645637275297193433630237678729326845922804910338029546355343773453617263695146033835692039336107060768624302504346707189867069837261721776904234113353908072085012757333673785143580464130281966431916635252955145965760408821963657891089724276273047743648630725864643535909658540469028954491755211573360072527551517302752501616822965097200227816615335202063092152293263770355181804207954268630444400822163028304573147844093620976078348031843567266086700702403828223833314366225868962192149547000422089180927191110936678080820237029511709122056628805333188655369132283254124500496684137916514588105969820758733094663589588961859662576854872991305441152477962723718733734300475523757869145617310674421821939675559750522916576849487937358430527343126552847791312944958761357125064715869476114271029828566910967051403533379910518117076035843151091270293782560335697105760702423157180707555655474805670388316881876594766856163651477563799633328552605911522944599087152268875367369323611631317686511301749271173057990653740488957129672491417507563368181136311265617200962348174835177846395438898716982898349780187010769827354890612538237321094294074738477045989565354432469651766621829954309188719122334620084678438328040415528667081267325281450828396005763233788685301573203171521501724251863294372386146891250504160649209185796621289872244264953180688279868183788087235191558314031918055888674591169814866271953735287304792150239481730337875669314637703149779277496411877580838141384528407833237632471947212989846078239765195688047496288274354423625274551336133258470967452857180359749457415152439038105467906788704313550963921257060569145294935569713425346947390933144358987168518183447866677448388622806232675349097587935311249966589001261737054770488628376085980582772466860631465845028786938750365082377410115640603083723941844700738960208890200960089831897285921284556928492442492979247531774468045126520605731231268406475321635489579039117597620014838829532743523074056878804379635970643126811814067109861146591785224883724526637888777793177533211593746292771401929741752499346193851751896601197287568071697056383113731642232638586639027814971714303768485229914881849056662397965664202069844944681679507089470155571095284272595928841672054043540292595092067144410112376676420396539236653651414729808222149305227422001014222026767613351152100727732138739523271582069399582342935754832097751839718880898998044380522146618378475310378178732818367864625673012607507042038840598107371661844595830928905222525187893617702438559527517273124693440695684119076219418277036480259412059515374435793053527582266350640155241922670543798427126970096172089710179158849170622560486280813443623572741920355624055435019438198008428783823940429332474060968786353179386099762506003569378301559912035225613973427265145527511870511499414726574438309746001735180330978849126021434547379851958920832212719671514556536755587326949677094266918475329955303233453990482524547273167747369103335265871096881817621662234180810581338991345094981617986445606928325721360624190700792900427927462265205022273037716764503894994257289139411266248621848875055934175507228334756079289080511442747831646438921004347235042047430972331506773356017650429888571828615000075306925349817535022687316940958536359686819428414616466123087965899629848761982902102498299913383941896854305618305483898476911045621289897963762416999918271590495640478545554854962140686762216397288073807719399581580636424650921538182447537094264884877855497699158827338050344067551944169700389661249989594230367912009818368688757879005901801884901913673994364577777233821647298035417113779235884934543899193098949733770878445041054570629138218360362008871172220698082574822511354695200921406684284603802282554077768985098155861313974513765019941353524860802835900225295960040118126274311967210222435534818845487489067437629008081668543038625713527861530180357585714519684857780665594911593538750318265938633914739073908171013630271693162080566465815009692527860224313009189827631516523701723052765478457299046955783309436188469718606852101516779902392058626867756006025525264348016015963791227789034490964204283464392949630793514331074901730249233157926635110425310629409484176030539525121135248130540057465425667233548713483761023402264831548867718608062863535856960122198634247478820315365885434813794867624502165266408948122388966070520853530834738603932809602192959066877169560352876348545279963428088114882798468747968005617349662626216538019276214014571114821438793429848905052566241750832316798427332796941846993291324234794774724880262156935017142143970746654913607344827064114142736855183332825802446416060105809702118116325026043617315708769754630747230628284071272426220624081598304784437477714937037042368644780484124152727505784458381327521095481395993028152133095602823654238305634936052791310620668371115537920594288708906388229963338322360158808396440171539083363884986196641979141624675511124338951389798828689953615184514369640140714380441046113561758177622991830029802605878578430523386193771903760784132682614115829967173779756655415264751086542104541741972280414368118151401741483981321687658199326035231138753358717533225747471952115172254069565188610981752000865919450090864667435196250021334230475011330395024572433605220410552805825324161916288642549016903471950557215105405757131583259316652555437269787072335126734474376240039075394447842703725226663383137489072129611381802335804597053743495817097725066744233941736238425249959081670788657158515516320921965016092139658709597627698812572473310566284937582992029757604361266358931359637266237308319530829751125174520301901382859593656570823073566669547373997303005991778520748925593196649378470284984785215576134389699265256300429512519401422359947801578132212958806956154793831384704581560844998097964470824004423061994950637529315274748673304821416008930009417367137978997202012604941478422108556329619032067116886339596571916997235642912426281552281512433355305261051613380368691337151266342876327508496803831286132992658914148880126856796204539337710116734556787396774066482893377110713789804568871358596217269842205902619743787128488362074949200649369331991658223895432023693359793459540501348452482542490928411988505448313528493709262561233047920959296671498527267675302728114488012923096961541333424141671152672649423201719107127247180708017197584546091631826098107068878691088439542289214962993454588630599182702304438850955209533499278948464413483118839503918056664431912105339747396488512924362827903785112056974936694601427343410970884601515159209118640384527773136254463628247974866331032479160231655872423742389235678080671903795804122836197071125280940850540526436333128511935502424472952221252109370441478099288554720058784107436285122316471029822372192135797647667618031265245523752983322297117026334135913582224502350032999277716740604164203462096250134356351533147056112648882802602133745027590175709744404263139669721930603848417326256707124100551842049336019582042888372338467303142287085229100809735565642374173716637670411811988278395900318774038711515118476401116024510497638503369202977395034074266181801617737988591897170783549536583485682878627578131770513522465686373680487637181763857840310702786238337692512871603527591435150229665132496425497500509611322793420210722243569950639149267157100118670205070628812746344478607233296051448661428613338632867200530337889440191859340439230919030483906696118654456021399426260990964121333917564595234267234597305131099008901802386186263154466103189283779570161278704420906733000663930784013581991720910148543898274244645220093277532287702932007753216690610268143211181466415307281254993863513917258523173380280228299260228237285189557241632085909490413873861167492294318490588678132760564689830844083670299926331842297907578996364592296322238392362526157006821404527946255381993117548628231149338281156068148861343976544688567627417177037639649958791730400950933572332965747026873278193200399821282965190862659175365542609606723693603998014344099621283741751777746605445619519422048207527010164116287856292264654244979903559184884896571777700575977486661285128224743525913524631018887839866650527808147265215723228129964786384580686470604833464630615049871309113561861845261577493622886441308923788769209298462863630138993905470344816705364522855678644673155332272630969619621630441131189727346319567582815126660177659842009345985004733223723771406003697884872515129687215080355476367499413741141284541190058771813760704355835493379857800879457968417731642820056739419878045457940022042176068573263620261469955870361488133436762230933254389383307424084706212492730877130198210870947231580744151668804175150885096927693570597853553294747435301224882734745008266495011290191495954719650869590840135733741929251736503402170703612725469153868968838680626446348219670700770618316390261494142751665484011575333970545521539123918794151589188287850283411897850798288061792863211066403931642436474271319991717784461396100598142605797503165721694397627259346303828387205117259451427651801428550437698932675561563971433743677104582132637730747050879720653699894323203025497524075083288171855289258336196113675397083834196898428578448533493375907861245175158940910006874397883302069976319235075728301546264010788378024632523217980498368455013331629819187593549573645346226045522883775184376924758596784519101597313033021956113045471522912804706350057415373515016642867536456309896917843384560344155830970901863009151268610265339648193778293646248282855076091670114852095766737211396804911313429731187545598861677336714714021409692885698168935707885130869108299289672309195467359983054106994069369233600434656065208185237738697710005447020712407314658366051653997841659719988296364553956158996099998974284651153959908450808215296855551007589147559041400051705937968256530434195156321090433838696492031978297877904037831158115464591734545090999863807764356744000349314173779174009959014560726818053231018228086701758066830100892270557055657588601956964243387917072155513086861467667273262368551070959001938712108125923253233827831365006334195357868661896061222862434537945344257005021882205100235656750250098432335863338062654916199222613890566950256514724512154756443769976556870391587747032825249638698399223404871706327034263942503928040091415443614605182206687647463199266807365226502533845211514195837404140860413363970886243029022301405476350035304390929503179220762530047969354156375121709702305243906651252028714405685862449701651870957092515173377350599994999161456207735820302015748335286293740056292387968656992371758364412612310106108660423704288531915354512146148567125495924329206800582746306399981983872204281770960446675172505034797920637856860128698085088781929894947673734871046396859264291762129527466485394266946833886426576727450383918396139580826582553940417919571548710672575969558856826090411238269467062177158149580389140207727519828412000772089598571752580033121417792014950388871592782161929684892130966231235103586338209424808310798740121191820639470075475655357915019113839790119242937888247650728518225226262774968439111539661978174875663673609457536032155605509174434397119504437503599471356724371915021307660594380040326740057283350140836427883424483680437505173150466068400032844116611697961315297510600116769317309497186770505418181236039306497563362975814218198652423413440648438038758812157874881139597076456568073046752796593356504639540458763083339874792212127214069980890068545734282573371406229304674663585107998181053228581158592422570873776158474373208922027057272650260212665612655929035471581710195066073911191745271879423496678799790206842647762039727233832023323673302866804720806427576940326410494712659276736024324013035732433825590107847971333910282405786985626823941107025517873445358038887323229323919999609005105632056722557499924006578586128561743253948306680454028944066073261330281477566714155448513179205587220558991839194857347297009419349505130044076508994807461642752619535404046682125521471227436041277243556758831295153732178411505300763838356277156942258289324354813861581476273282228030373438748431918358891194096657648614755200356533053837434487669424201122349046810253871141448742117097119119913320032218761809339224843700528417309762074631370154379090980999608651089340175561519724486867705957889780540474440886095947403234378204481264000312377719210126861923254392239044673164826013952440293818996584298616002934647523159728538994093715067576389869472149076583314415312135955513831472012235823328322172977495873358043326209198521876819847077527819835610112316900787914904896317890893261173556205450934922052703902497838762582158170920315269116705314151947201704464695467002217507882617805576480687839620141927003697882165753594350169267667085966589899047451781194249452659458774284378238593998112304889462985088493116129402495428335488990577273508869670693000445760382088032766853895330893414650499175086572728715445858118976428819987270775578136966174679880274480907004867907361147104042470666793495680618716926114942512976537071999156362321321567762977638567082156275569334427190400819397423925601200053395227953939483413907435335660996898014043831403774609971147904615642889751374068479575242710433891703325615378590836753929219500156447594468690326452849761372821717679153422147237280748694461982649709916682265353470764298534485616967141304086851809308985357618539327034949034254754423545681155420488433642336237111219658050818647171814309076191242974075179448279077144105675954754811714067306979265207803968981465944025458344548063656268289491513572017066094420265002805730293423500479173444145704355148352390388204514165971453745039495483988454878898596459034241850933274009411749475563464986353812070665114258175505293351748135566008529188260641629403407582673539019700489826505600584727169046000784295434278115337624889366432464032772765183771316256042795567546468444812817480471083983622406604017870706633826710807492468533352372596388424783434344893821851506621676438880916010380477721426816992562529397044470838346949883431622420184069452551537216818350417303949038012786327648582219802365816641878907537759190678776727648740188748154204214775254864047845881799174250061153957076634090244683876992447940608466873261508895196576771784002185029088256896081648376362536987743227143995447414423478742662013480487134721164619215578603159996491330536807183588697126704191784596746326287912450850181738983972325621601164691432260492271983335122877976509409817516950227799650720089395255623106979187771886781115430108316272463199627086031745773045674435425711789989838965029162516107738782876347687969748105862480780993057678001051339438947264010027264284370081611757301721044164576818620306105504043146867600122438835663241953156698131730839229910715767827068349578804144773185241615546218917116365706475861829841649207952951247824965194658379410930134283888013735419059943180328254533515196680165762819994409644889108696232128504478814490894347644643175358903482132525379889070254526628919554188454792663470972631429254803281150446940933563098155161724958707047938647905940647223808989311705112850702984919824225418477162423299196258562188806522058720322892468709653928529536108769112443890950952728902456630173974621349138795641382906710783308047566236338096651159460745468885477974984055701636475838633971111467335822960519523719978891603593060055349322069970213601325909833614253647751053468168448582361977084345949603746216874502278226134100372487542642140308436581265549179531884374127389743816114989185152805071570926364874973769485174538448924997809537307023555685607475782603066020020920618934144013346189382439656181493104410706811862371431250859772404913486416557481723087195385435938401453396370521664761010149631451011435405415176565283863764527838897536917517848508521241017546264244953080966367919424657412577868355222095905844067542249529944082470369509435564039098822093215244570842053182775781145415160218277853248554814801831500579940096104187367089566556346759720087090499367001082157429216897993939731261755125734559515771487924464293715454888388654520204855141000332392214048337350690478962047656900607666269327924174808891290261612334096699569208639503147582001629024566872510653375184610573181222342654857656501012345835364207499762022702562313563983243299304049279974291135401964348385902410697169638374931594334887684810673810316138089561428850895782994236230587862712868119985207399874420173555210784883055790982961231424337078278001357076539958659418920223921275436030724834832371564795269601084303006460426586804031126879342573936916694707563311572256223553206880612710203831580789650885460087333424611717443795425141824914061410653848407816700881779952575298995809891174189355752996349442539225992777290037830485162339730591458030079972947557266322200475634615022514168823798945653863330922820412559284781757393829962773507243606935785839337933479910346347055482123635574710351661616896688833324628501871901078352978656945192330235236616309796801691033791184444950045863480603450776144559197794889443450053131356527890883805338647906620130984524830179914315689200677509557055089305336623291673210958876199467727180284077958257176739969880444779203578973042780307728523034857366372913034338344037082305397551428269757377949655677338396612631382015885583887193552305249842004478132736053977894078738537788099249065528089587683422532314238196050172663980663971449893553487464483466529779679563985650003591864062966193119605824616050825818481817863985836270249469440991010998814840325965054714545416407201253389241598633340558833644746964586199635670401316500946063814516048479750964359620302514991794953094251686410275556708856187213284686207562758992535867498974733643158659492292298038234165359332802691260170862558645794182633272587311861186608797533210204718299997249793555308512178180667865485044196165119260373237092045590367866078673262209216977163723309038753751967447079625192000581834222211030215575183564660831909867023714017618690576022116195556815246349348921893398030165125966511373959104238426220229644580271187176673114851563216132695222314514278202042794415758086877067252484873164677988053240167271547741753988592871999120031609471413822960348913017405701365287015467121808898678243415400047020396078592701659087482453219769289994468871556340195913783565651701145199761708351998177308414062877956338544962049283379109014753296522806120550060598259884675548313345178356724980626311274874052326636158960587814845075814177061570125119090757884037935264710564568403691697577300364374565822936680693068299411113586861965639401699042812382431383845393691815308010886923753389304422746876602235475994860916300545658644412561080189918496678269528901752608898361194935371029296346536014843534033947682053736428083070988859705120466030339980258609895643932251417527697701091283206376568358192913750321893725962706595515767334770426899185743071398616202324667047257461862808598737420830486731614733488967600807846573806523348918120495779473295781794424913924231843536597339473077675719664794111327339346474507820896914961736023327586750058114074134346359714818387067350070315270521581003010741239875925962142646831923344538115191436100938634699702550433123993893534241490963925701911608010547087862255095958947021913235332475674775798381828006751564667020010993765852953200556999091485343567035689910254829071071094990285610820656930388522908411582882641209524256626698339365698114209783772359820621890581952082259155728645447906059082853834329564951311440051429430539092530942173454332773472975548934727305515916206572388965668428448022198269075603702158076436440477292101344127673632669472111861813452626822153541575802401081296364567108053145274345790882841667902284483201014968549449149143967030115498536379695482935715300265801576026868182291352351771797505176866325891828027981284349042710567825677021922656644760925457859046190698201537396697495731816810796516436724945975064662809041326542375414714596599540948248142203754778814790866017973192982479820976369340099785448771617378529204800071643031246750203465644834705219290549722737966931065458408187879744623213639741154179434344206681843886962531903603517724635724554113400086082812363259738176374786318351860626540723774862412886021225121763580061768108634913694233331496309282947883732422147888142109954667788744127261873200878114471923696279243004766642739396849251992121693116860506895863357714618718396631483169965311528360812730331876784711440147743975860182902009625156656608049343901884786506133137719228079241015134497502107328894755270656907220592167263854701610688016581469562992209987503762978559297091696623553830563532304847689646977766560744138896415560070808029224880402080933752269726060445181080786797972756757100599469482827282577375728682862886106887003580446594444414445059530513175798168692902279132043914524750608709498008500009675186666543471741797187290520816162092832569571893049972862324645523769593162501724299474198640465322456948523432910154276635502880165030761693665217405924158698856285238961520519085179776191997758469382719585007962751374164977033768055760609510948562246209196423979202055644451677953385190745743104111040353924658474681779586599396303067728359742836376021582189383161648968098238580257419780072751708486074021924599281917419623018756960362978546808324506785074014227244654370820461925252187148279527106437265637625620500775201742581520047193598796968667790137544933706278597021700801288977385269131364026672781497622643474863488875550332147354851640648173477223532710960017460022300669721833849955914269958574371870867165486339706144574983859110542788216009270435382099480022698796653619852001512436757453519672191479646767492040993605054447058564868865577062191196871955841513410661164086869206956958012013446036528746773221912650851674312581915983002781920239521798356506999315452383843150505362355971355571358063031652109348761976561678577303934675753611524976078424287093980454885564502586637206323435957944886555122413232151820736793909681437828141474713759728014067323550869323609954707738278251272113294182382802758240660820926073487220226346454797013826573593481138030418079514063791413951122107645524205278774083366991512192319159196374833749181989008558611023494265765296222609571222441429663388029203215542973577284389309274157313745446692315743506505001607367005195031380087543271815543402087067554143002285823848427200755791173510625483848573175605634636497342006218975895418889378458823245077247196944282216448323162972991139763152854876662868058104671318050549490603023079676334031800270934604667540747573246509039737435920505554033933044184117336505032410393050902894352698844637650660505923271859286975113215449048572950759350843537839632297772374228092128856232557985278188362655068530610196562373014984496461885666437320637986454093117227269660777533026365241465597905105187340087552324039987197666836378220229035280336297869898559977821244354447719894890787412124235470340922938474023794332907141674992467129741628009179965252838102423023323461101765467745437632330080019881376956385400677165795351194158442360290154753495197469316461531617239684612681742782399821498724996693999527509243624442036106623703910036413112003619650209416687195339923860587940572979129019972692938820842270839987542563773493138984370438872359983948608477677555539075331250279579743691039933770824390142699823223950699334019349196548389001583514066885748993343875072884430046483627929888093411125288699351385031261878435505786128993116363665467969185769994152266219132415929687767869133641256374121859749161635986035484487332248988538308809092912535831938332529439899984184431434638803342509139323409021956571415696720727118293099091114655882798084685062269639409592451208430022579180609717630070134154624385571589746559662421654338470823756138086207882375754179450700978688472974104814847161025579186078502564938642991157020842625525056666222184863074977918842825591183665128774553497406598871516037979261167968958850927628549250109862871921826114626273457833334888226253441211254662005734305468783638957664056153616395978591609670472386011679906398882442391834179065592935447143393305532928964930073507304442560895673559271760002013706220911256529453403546749553527857597168410728107059989670554896616492874207811915465309646523203340414133743706125391401813658536735737461723901028413303631053353270785078797716908992235897772381266077865197882840192171446179694565405465083718025847188219451821624594355031610004390847788978692457932482504046213566575691116332757480626282116300851794260802246435890958363844522472366301609828903263540694953182556716042698461218746343327302623339498607217370802173898059181621438780464249458390845312372421246285519742332528911037902542381301363669286620706494378872225839719443632485326875171064146712538135025501257999563726272726455813631312547890085172164934193930442147296492297925564614875526496349657988676036703878011274093860738490956723669435719625530815501025568118122250933144324225161040766583144924591640050346651039093881778889553870271182672425560733348116909222836558542199485477196495882146140202480685716955362025854763571546246432483396552868102298728772362586482177890312297710175457233949852211258750402210179088808705703501701320842434872314563564118599913201833783367162478536991441738371029255330311092509524113109077467422563457874993500033368067279119239134958744961955040061584222266319890812423996181847441050384916582396144825197218443314780250652327669621188473334272050658250847413307993510026334691901301339793049191479960544646301038806756126513127109663053407015068840991084372386789501800857056628007906932461264768958492631496712321991846853785364306086765503566686575403118415504734079871878709929194856494281847015496695613231438593705725389070568160629219776248813435640274892746740711210649917814159890798212073170853624503796088361812985665546052685135353767230391811465231645379690621619970435643008841059705065173188012548564856618289896100048708757514359568961132307626215235524291055767152515378644304214807620593682017102945424778617461504362808877798937045899568331500396008858091244188384753871907611086084973707784699788890728867167489198283748870073233410469627071232318385541193090783380327833652119770627681450114904681857417156864221702646290068005971521530673421127252643654645027184820961429557750340784793525629242195304763340568993082940183487928525908629837681559907202620408428171827363290316065597190842928638787807399347256425937733312075495131713783633062173850410338405083186364646952949152366754862826571718838984429233319455503939829044453376582028510930276429772115255117456639189118468307105920143168500273498266569513697828739350504770608284593414314787879584178417435286035475118067579013888227041207714703447800637344298096047588622354501279898570647825398749843792813965919212209562719032196824662710602954476828358667128744437955930218315122983015739009599378095569413810135921515977229983483200761208883509789092492316907019650572341836894302534700454110908301200338448184229224554275977661824927946695044984264732688945094221743859046961967132562981816455412048178194369821686139841900402222198484896779060814304150132818654988385994275659751526370730878847176288803872766960924344914748011997311644145903287414031976266594322377173852891583742479340598340453359094535970827309005970346603590325030978101625486885709628302481804163832468949959995144166618417088285471196910074973059123815863196658871411996291184113288699167253956853404131603017615425215006482762501223304553350528815618416201773696448876411360970230254598058754889495075664479741209064362472427692641435850611791026423913218266533714642207693725318047043785998672742248182930270783402564991844164537600577911809360478843479512283535391714705022754946563641509866201470165727598274519048394976825683829923932833376294579763916403019135186718904979715449188061407756927814003247079855633451792952204380239467284004546722407375950402064749885885378014440692645141751222391974010041235270154584916808391991998217999842816895173594575240143877526127989253545593200458323497257355668957254958560368078749868797395357245684397857821696244542996710181119658059540749033986278025359052083782527463858586202915860332154910447426301890289985367087312221652297483973152367835702558076530826831361229673669754448918585573749812506792805162801007113086223118789945875271263328538786342155104721481154820974855921303417731900901695438574576162888161746507782490213962990497296875868329179265869217226067664265545444628103506670477422452309507542476157794746663388645198419612873457779311132917154180851944528867774504875063587748453782610387617094101923501928656268179861573361530307088114218790570902400967733817321387012243029846874437995640271840205510680820311151655364290139703515939884153644719755256359219286584383331714673963253256232485543459615384975445437808574769495437520292622694814329178065840795533670619665488557034994158682607324719546912236616613903224581755125158079896671251334032054269530122581237941750300438205977279163871623090088671324597910328115906385897291894631815323865206499594535686512892330076610568064510118401612453142340947357287873777079072634827676456715187116569847167935985557084477415094075235102626380748094320954306977854460718063264739242078683659407576491048755915540763198608551397645974343323763782137816622890840524010957345254416559837855264119699195609252895847465214744486792590830115633419329532241340452334561252287213476558209008504800739050550791958243406263726132307025600639584593485178054776360513459951935380380906217657838402436046452905942437326792127060919381624272702536256181737316469083799145124322856981481382343768521905901687307994935083839639921013790724569313828916944995016989994061821165403540753662626153149579139495416362107263457157784986866849511086354553467390086510994506543797221849150674830955963497306492992592374812472432248647420143901463639669413753687634149937490544389248035641052193340588389335766099888798504776518799570774579367067864191324668735863282423409560290398351099602129375107088649782556154343501932253233935031076002312925212233704697737941739390515765645055297641473726985883746382026150036416720959994219482416235217616976309436642365415855553156381852071246111530171436289741833776628834136157843669996940293577503599553773016735337219640020116764374106764052084198245662054443001732534491296042597913247136949249163627789304086840015095955411943878108147670731904898670333305565778069694574006244100357836032653439343889961062107029380016498999854747447897026086855939330899529884088602037266531559776847063094639292431842750143337958388476746965232791788674967330345412310491992032411111895374833794029571506214130651731415727143890539193026974060034420460997327869122330192690410092541506134377161373853653182392831101573027802914682349934001459025241621868672395309864605421778645247185752774106564715884962959165794248976984221340126946977153376064509306450306471136390405807203385534454458268411794699732647781031930557630827902448565157294953796026923718291261291290565634081345745325276011763269224684772378943990701088343376910667363335688129554725294419932064145182353748757303542559585233222831228822769440645489982410101237254121225324070813671480242430358985140052716765351142055438947429589005382080514722757421268955869251392006923455429648188074687966816434562973159531299454969281118461656804940012450320660139954457948288962061049066654324514573950210407932415634961536103281852451407836559506166719654490710275412995963673330864354719959998534698316698335575553892529044515900676044516784162353648254413676965761060143291594105676798636720820975064370387270233321733123361871600810467190157198821200001051790950259264197053987239589499894460717363545138329035784371648510815664244126055600576394556418999095928807725510438091852062259930511854996752146639809484544333853152556792900559725656456117798255313523513131074881187749936706410253715768631651821645857195245951622998930323164925330622368789025311090411744092813908857941158845648000873292650638240802563806656504107661865783595161620671430158927879291898461597565582226115512850295139480343184081157922203597575956536759467631491253457423857259793051752785996104489020501408822150108518887289160092998113224969406805041907823659624759930177987036169720330779497246299337688032888700062772421918320487432282511702347401487522391257041781391553928255796258433894817912801119847754583328104762213100877872229468280485174577453368150395387752224484388786905144628836642370927218005531832364074029581113303125642226238461517931748540707942449658547277220203385991132532712858134767625218559437168632377225535592815338613390557658692289009872269459748675144771188402399513737604125297227147185792419691635127685096654900315064568002567660770461962335437576546630959707476556705603377939779108798060555244923352337334739541720445537992606992050314286081262647961293683628507424360657384264760760694093855247484117312656371593846545869350698983708274344331121948979288013824181865689343341922569234665024969508462592908955580091414560329861074605863054697102430623174125507504197052828263919853908865902803693373662229563414580314334892666838439196527895351179519842025641211181931857403241290971987293522827054516914415578407217415942415516710364166795520004391094595202640933376673723331025972647146715776926461264809390664858577356016985316674133224263766068226545781092714065298612475255422902475412304172552323884102379957478035778234690096420204248571259827493420302862887178688358335959178098218050942389553911115811622269510825542541697799841859843377208207032716315106049168799987908891321880069183635825943315274654734009476190366803482144510851873620208227023696885834538178028399922160260464112605183558774479506918817997288332558562568699082078801055758647342573733630634313280081623148372542658067980209102120978198154134310001677153221190060039136995201965328178602711164554883540943237034533851182519007270268820680203945301965889516398978042384801839016202708358847199620610229473830431110293070423680257743267900665522995092845230193143997694006109109168662528070085603632813101453381029852480085415990480737741606033279283148793326405310611445421064269865459182199388480580407707429147901002320349141908644887020493190956088048420706951378879518496658176718472611181404965642154840364314402395589722049413901611839582009638685434375507757308905914114376609059520045492901374571816904457456890170612159869175322926462803616620512989270605129202416705218008661315353647169731654461685212609394865314928376922019860615933659532803276563296921173483282031866670464863655531204559584500412035144192730379736432986797139391303810585337146396199374676027279852845624202308589171883621034529908898575122402034029999603423311025580442626545940945226638278379650006008099943608353063172689448135573495143728760345522127967518817875770717045517970814446065459699535790408789849692304468022861508225660324649785969200619015194999518289802081889851857592812251901936554320889671365446796887960073131576078988953388050794300939212722905552653601797569229114414275120768052379984845247394037904459500179120813898447470696488329499546707997844478938329963070419619945762983336530645436261700500372290587482719523093003025764045081475154342182251008733831121657996191025411666071641951341426208944086617143873616443454328133817546090470654303740182502046404975167229299557327354500337816561230504105099787543509169221526785514788564784536469170595886134737676430737140918060643813690730573292618766574724827237883177230200832839132958165490008228966148317411887763766600810462392975544373571853235337033871187091962473558428936035297552934246469557917966921596571208345776183875448773859887367654667851719519431135514048278511570726737492329379048268811610642124677959591417698360908130639082042709269102290803422868952786180941313095179110826705277631144378784235356739690293027362603896812739659714906598287112781920151981082334351022639995326451817503225787261451471582845783179523216927216404465324269940252137508953210734694369058411078686769716378915650858679614685559232365098690623002635956192227562312034062364587727370479376407648989893095923136778057822448042058103214670114482193664370467893789030421162804847015293347151017665664850317427098205726038043890073267127118988594605690950396461628605009446817981634236081247750913973442273514751605616931149907791107925758862602113519114568742316803727247655267771451916047642207873060761564479987662023201285176742293220204473093036570516788959233549387903932279806069285702351235407747144564038776323893384470320082866450005122880367064934829187797324311087036451347021191990799508923190719684412806923261668571196977531580516385926092440476960457388946425374739944384782749811407468826106785805322895751427333127923635408246188436355277054132017999317186911950900321456867582425813923550797557002436734826386654795614663585994577616915001253131324384560257153973075177393097962042839711383466441031935055642378604346448627781582078081276437771863514242631958231680918252504401931674623304273741538045875968856745798043723579694523005110606253955929983987086602410099350195048728440826626219716455638195793842138881281380966729696516827519827856303647121636149265298967538515267214633600634130799790711793659927841289760381950259329309524752996172131913125029448441164100386540185868345521157675201181250535248685641599761273787894396284800207901737569774221876272304917576462324151989843972820571676758451646841473759185991605818868044415926155635695845922035173922995941738891222502413376348967372845543835246912487435064089941972237187173938821895210425963310339343739027879320527761416936089440113082649794034516605864875657198575375438529496061205074980998243811978650402158598227902157718085546923323231637906825372051659662425047278722579311015424881989700224542858722043020985910491627503876652038884904039612670496449663726425839840603891750898142632445133444964827829315847599295097003047095276420436928298971695745503316316607442833924275534462890564604761630564958186735099516903802610356030181215797436984336521814682190233814030114205914308550634364528231515913898792220199810305729920116530855941244147902919016049878009901746583493765091965492027542087421160724351499163188928174566881455257941034481376800189945321759568387703850347074303758378518014843784359741104696300498284893316799973657347028908343766643900161945373324362420271195020344436917718666491677885769152302176753223087325747631050470129206390981232654379338655604383573094110626511421223500096135578196353459485606899749414650718936635200279326556476885858363477312359647422609586396997845813620718347588779845911164461991122856844795062711240179379373835579611131420107066286914500839038825295974226849091524822081177376035757425829332099726572310927390358216191341211322428966803751239285653578465305313382376177777529744867836708688378514008840310171681740889088554594252113448862995514184554467523750662360939861759049540293250658502880998802592308991878851175794098579499592657876031415924708085873051892406888252490784732711034862838675240654242503543427642272025992223027342865823623380434533606385433852673263962156291889395203732436779423706961396601471052362499138939752275133815171966816174580915243376784981183911238550368354284798700091244759906872674239134892268168469947614727314055157048041484712404369051089884295107220191003321645478603368276785677517071949436096951477342874959493762714822082505464120823339188817524346113897338224641770601270121033567308457687292439037998518503621906156540016045765090736662862364479688282799784176040166413025650389356895706983243050289177752854397013249901087356784725298001116457143079467771368222330721353580283225025003492803556337286946262783785990374567609228542917934995395668950781512354978216092302376594600906059184812898192764092491583961783436976925976404929906024751609209964388050348542630064786890585153178275596401820705258374362184224504717221556838245946321319086836251295090280098270838575773834585110059410546505459706579600323866269865816135871160006609620322369946369191807264787750053798083147494265685290349244531371245109238344564174227087999036490000551998084339913553513337755485706574766823993451466020178301134190430963122891777779247425109418956473758467792322970538919761570140088631077755074766945680729808849280638282123989934059588582275002684150792149073558958861629691043506134952987149362297303970331544296666975933894606756235359143537980832520236631677044644707626368447280363337017404393525989305424624504679580597513947114773840669646474576197703201013747570088505986727697578420841271714708232279261455216551729760702320709638598928231859272950341785284879891488418067103303920126116064363162739799398821239450617901599858318957519302248924886874003217070439923950722639649994267550193171003346260521932739113892333245024457807915671550513850074272114597809286141038276433418488631387214002684218354945065573460275951616556946654274826620306213615823981575741926703338474924732201245653859073844162677481633019495704730306636480637429497958100828241986411734297217071397691212599208699469836602755005795264527065195527881720462280998266933465986146198714787797000369420926594720613274947227803287886735579314057553912935117492254704022776761322887407457091151570537829281416898552934306683777908499724140511523011100379619308845819898009184972286065456053448217173863754183313732487760038626036954083129756765219053505910585926858340646022737410764510346033733257531784320269228161915211170246568665491734803382746035433014006568825629790490320032695329917482068997155618215429571788126650202265210804595983837943858679214120002416946035130236769506680215889774339701324739582285737986079846992785251636121817471200972237217487491824522273995442341640456102477169934654920824684458764405301255359802830663681402575482528156167847693381545652509051787139832426113519581901698137069569720322068097180661044484228436476007772471832002450168224868583191314145096676399825547005739318634352256050361350654190883955326405224429532462012011052727968980676058865262745094432752948365262544176214524837957009960458189000404458442985410075476979860333195791374698917901991661908211799691947347573623322203839025054003225437523893447899959517667354829540864945687980440810582088431807981858978281115462374536675868480300239636432296382769678365128424900713646961954147743462885478578487286573225734128550233616658261525248103633663961528762598014055579453587304477286982035455757840020925651402041223775220134566102694419266121670263412738626961959357596616396945516742748400119122230165980547126687751383617211788349697249008051007123157001787643443784510733350862505718462372113054459592433779924462865823855132325731558274080504053980833657501229044382261124265597141212348021901441429054872139892293329776693675008392190286290244053958278876173007658565458919765055915085849311817548932178339848829385164843396846734720039134191492374781298064337508911667921001787664234001552507149134238272342611925056851065029687490141851727379597136423803121833527275545799180522612137062593564629899661233893232277214338616390611827953365564803142463383416648855688511761078598064129654059202434431531120507579643632979215296109377163254151596895340060052193214408325698804888609639748247869382756802917244666113924676900660190828880970908344001304278156978246133444702376453917184274399915323662264319958982530921798327301202344988961490840688839493815928248621348241691561673597426244439329005001393817605674971958797074504385843387409556788887258330797281526702031930829182491540882541586520648493278088943968301213497816217756037979213804072682664160852054033758022029706129217881218122066645159422411381328694268043542550373866846773539513714523331770010472173016526776018484330503114913737117830002792522204810224896919831686470033995730747952452604970733920679454136304124557432665862501066663142431688497268208758268269695452470675728296811009526020190454087387304870844698794694818536230964188956715080867680675135959161154561326198425538348528910284534128803480881042210702626076597784209140664320199544977756642197988598007784479990056688202583797082511349658907530282171506085329717783449028990915533415353671866073334275173757430131706828587999073296134738589110235222641920121533904714004142293055377354709034003960322962561658424076659072656078553816220387384224646469248916729473265053884661133742150790305290043130825398424047483910601159324659352614072896500205338402123404998659564019140375521788079447305824693138054063397502512885099555837750132960422041926235409707741995786556022265840898172787916366241197282169564589725867687597621472097643802264583495686997036687677792075852655696996849032104019500493452419183822278950099469982601441491821338850291018778490138412801874814636058858693220397763407833481980101015701758151231389845390355112903974937176529532105405133091003519112301402807891498660828935660800031305561937824952632653634011149987126039874321607148499923068494089396336093787681468110856667137964618998199831026139474483666286040955532196462859454211666759826987889685352212376251299813664531755931298310633428457316051888781217833565482646169555260528935967542992237303513586146925828955220281309196963220031209287595209088601324943708784411051443249528043612180555261389657559114842971672086441147606839744479751297411085969666036367463938572275538626964584641398601420197061905037035404650614028392401217436632848325318349709246563856503590090026755880045490354410747464464210975190908749226978986508003113058612735511947085754612649738726584004310637508607440460246631213185016379737356332683927651584024634548486426850283489837045123661979259678191155062035825498012963253222014424092893919655883589841865905761995183212462824986216590793143652667959280332921272293954165479444848005773660354316896012232734785203142635408935675968700639425608385685748940921238205849182357690080697881571031567561738188260709749267100130635534370336837067920399680991467746774805748216776547130917557163036261851202144954093793891548012889262182615737619010118470237883972646901566905723060212777183501550307381678374513995036252605018803877313611380906018463974628851243278692850438882052395623199547828831998376262412535840817407831924761560296991524265825422807508721539818708277470122893008296486566890090985751958135897715296114660355380506672257323357367842922653527737178734844998830024178450487904107511289097366401641438172765555620725002477988605038970150635994256776200836834353924460084948433607357763925506399996967151490336666363443746171540749320498725144925164653977188683348067300070085340698515809480466630567902285589639288873798290442888529557444438317839359679549069689444504515950615744714829363049802537602465309057347132094514913356327769264886750900959602797427979731059027875881548506006193173950197255996334862300315509982140093247788746008255014860191570384881171207863081767834132257168659218730073523544596130483413867170009706669542161266020321109442148635070448525451790197014540255564324678755613803768151681074827112440380792813115557029578033543403561425009363110660636324610958648825410224960755923262403945327830804229178463366185077620297953232800805400313211017563163367661529754576992957122866206421599955401468481756874243500091961966779077351351543680378385804987557874754506158226350147396965788788474223409142327151182301242649289093181346333018623067480892444187406310001795066026248052908839049337978943402117254174896957611977443817023865529467884765054958365831543442478184750379291211207433350184332908854225852252353968444677364368684175439928529988880194368507953514262629553492111179006229987892135230888028327156777791103434353212634066954613891886206739962844541284553079278885321685239527635810463910568548699072105712530468644783522715500976411020846223884671547909058604961027987574043863595207045005569261584523775695272812028580097944636321978728822243089069160576876470995955055768984854846327025813428311390827599419787713316202850148230847450668407540817160947676441507602399828085593846905090406542145730894208440396551385028781570918718556328621998250618013792175796487631219962307825144297660705100154223063303084847878951878814823011588983515208737641685606339657498758076441680306835443623434918257857806191539132338090256068716861935280673732981003247076319955754235239635727792101931225499269202559907205637480583212067108331491078805471423708095475992832371124882233160925947566170860401913306435505374268979398845376115319937624847504667956979958118463923704134220999611779971635262134187484583155402286672123545167356138015821069645194845982823251977644245627477715439387083849096452807059024636787235169584012820959171689483831565111901732017647996827027486221983046481045809824486803086189971943104379973589188530577946240046127365622359715055598821835346738961583239941246089734514928353958347058352537568548998124872995396101206894702356643109721896727379768196072386951362157692656526747944747796132455808744687607006634198239879807982633461746277916502474088752488534958480144044772293105059993198636732238055807113455272590592190467706844512523771909913895826814762465463549481666591435715647656483348107394362496122534602838262560495411802002506245284827054746466196045625713756203855733206785348635042601593757659103506359793876624691978087101043290374096109596890560552067849275350577667664188068178400870929106049119206756841425548237326382956487872043386989639847567130114534095831643020708746680111840311035648327540394160841910668669232254888096265765750204582449001282821315527621905582475706231938620170445894045796134980208277946602840253433667337555290881963672237877052399148393705022857178596353040763265332947059290755371790472987582836723860571612240667009293656990357112566858230990552376198036047371330618377546262653532436782632611142965344834192057861362753252459674497158019896738265348013191055697571734776292135951852041308552990401166454706573031460355631976304137012252471807945044138939648221492489329953556619906054709911510144675702450619730792270597074361273332161073116673934210016233191254231775776814036434956337357388287242507278245855935700142265048188741824676257610260573432076560269298375451854061701493113098560132431650095923404510721261256969509403169694947739055016805190216877331500239397378737573017127162445340595246960811053122072694310113455766087156612813866610206050473935794934300496740418172226688468950405387609804946391883697689956745444099691316146942735387240630873678601502287148384381667741622878410435126718317815816256619182786562350237627667369543952725753339282887148159140758489181669079721168244165076867552990406518289548974676553680042061283090137753755226292420237454488362639883474987489640837634157646014550713399491935891327927395302822609370908079764518681081125415094261342865353089063160139330503686065791301775753094558421843587879146842334573053104076488027443267534449026855821875261988714229747320550412404239258655182977847545986743679023151350887274748849541370027514309530513604775873367690293329870769415599224491572550621578169272696882097295858453759657078295321512115257228984810529314739115927701019597943294786200871207439115966340723871837403105222048139550537596718221939292521181616187823855389932336582365877620214963720406720571753521241774629599529650385170347696128062283121834155248896627791166365784590389930735219275513075204704074305302189543130349209706631862230827218090592603711883427384793488400406729461244503552925528402900287914462106667169320905951335875939829368572468771401518083337550004101080080091052235049012296524317692360641302871370810216227879222755908537581445979441367059748644033106421827753408269810178734119918574770705562018642800405112566986451826953544631355714488586839950186831156401143780867634992422708254409885043744175512264077434178383457769594760632537037723953723980819037695589116241546740333243294566777421812354621390798219882956498365760963176143934668893717224806678254616094831690479769349948624806253855955291673767453329041222886718380622996180100393962558944645321585856096185956342830921010974187559346476838887359295384773968938363639217878798961109253956738021365570402043628533679900819313407157779459518240086208019812403136939998242979086507608794968488955525303316581253259572306090447948133447205427999067285482439807515894957421936980683525298585605111686936168793502823361186435832283993286892071422915928348655297329134196972438072292721853104738395352337808654277091681636551792679158204146379926054897472242937631587062055316739171283466093636940261710913876619181772467297664857807039742721670583475081773104522415746916667480501698033528500289335316673224948653379863600523893044767923797010021694316886616406956944961883731416478999058321078758171011770393185127238229717007221846072953610403446771798039232636843850723029246327842802161666751984037801419983223569043809042021004027940623067652127318200787079144546760840201308708161005015816360402070988779164998800487306984842190090798085755489024062634950413778266513874573852959761195253340743673024261788916106124391926772777980940810105066943389512219916268554414507982732811272027490310515254975261759683707653487420203271146490918212495995612097749307604608233028708920862663120003140638340461543409458498979853708974508991842099172994844466959615079278967308623897530167873555056128777059422546498135976269958356918081151124645508802256160443676635846667609670973506683094634446925840066246210849646754516985783019469909811339788375952343503063005906855151010865256022931829958596065395062054412742459408370872739033696212013650106643529302906422195557849391047264795642883748348205630100097783299881072176729346109061361905010948578029268749648678769147475067081789464232266913177935305868750370295503088196207338465687108063451055339325844356890730506959029431664771917372179203416548868988963303487382078722731870748584895945904552149268228663331528552084737233076473785648335750801899945473896643224930850836548390997371155828029532515853451485725122415501538592016085754234121717029200179398548255228729609364858599937355776723376267128451204415664291424414225743711711115617991452378865807778768613739122261685794098063855651200996528963646013586193097850093169104983218161466120228506836689476886870754627470710735705076315800546773461364264314567890156761882232019493927872312500665021438100771084913442000552580061760054999544837837337696650421043273469173791480047959703468498154058237550533898316172603331351012027645536728842983486434741700159439617364563279232584028953871937137004096507621591327554305581389623179993547528078379098115542370309739430802072806129070288663956921554407823598304066108284636333565294161872084745675302146258558844336102954128909792820570995143761241724469610899764458885163084227087726827755426578394674182866836971549205718979089628479827998949179131990312614749874839457015170754129280454268433489998166694796214306376847601845526465928883012239692685940900189686664073648982917252505422553507883307241189697914924645012932540821776576957996823754594695758046151188178485844796483109092809143558065853629329153405721612267019336992331889411510926619866388472353683969725745660117333269398011175694095859529639665970501269842887648276164215261575795554946534252477302501070084208893858709409931794394206947562603872883117768267913156297884787990511307751290982118443592080648927947965645728502210524132467303657887533428084933812005258886119988368171708328245566381290049704759284880923278855660264136610189108127921902431792220657984171737693808996447948724277204163271289159946588239835280893726179048531141840458784404166423073266217459130289565903996224561177251364863113446582598734288463616110232597760009928695897096322587240068444850777834428529039180672228720661031949654891491613765548082992167364163517098160477820820905474819848473916543203083997930992831442183546054907395005594148239821394026694676775819091848239312088533015764470047791245752385840493328820369279096959535713238757667471327227705665965214311587906182862614018852379646535048905615785985673543696464599203278230470587956944762876344665387184962530837562429671430370885156566871548476968424976919304558655185938025623508648529238057899820917693021214528914108260210810334857201970807879273565077150448245288185754545314128723021957885397688634922334289225685909441100771593755282167360867989523930246915066901802790570563578221929926630718460452459427128986647758749448929095450914432597713696288555152380624464416654987500426707657541161766143858358624213222146118345258280362973709966868803525136232494282835035595406899929346891566732115288948973443025755170197038711478232068943517254499022551168215731642031702740498194604188459038313908322906415630184877446409836089723896808044594435684783575171202845927957740289378309098897166049053883699756192058360956445469095691118102383313015281478554687067354191761321823324905719514863608706282611020992276781840904943838605422579345644680646890059069910606480029988223131124577018598411135848437367931227828264024583602587249093120688987246027548817607074887276378595897771348151664156179251256115399758247678381948180685681938676356562337758909275396486456763521856089166262383406702328099818284926039555036356357269166321317868877265997367601267982771638939862537924112578533300643019731257820372100252071917009870634227030319724892529939494875518406920767747111501077598541520175977333088104302639962720340066182142348259406776902502770125709573857131696414201211000473540054884442455066139155315288210561033783025736140358296855598869387285184733808411101595969488381826361807601495608440176230196719521903023340046399513344641034340634158007904345732630374392296480633834139637619714322335699320147610083068935351338826806093488323867548007786609287390024216629594683884664289614011005812505418386165394687479460650657594344213374076329397494289718506468034936533620459104110361675966708022393145508801736816683889185180310536433669348442252558553249677649827825717244738960395941232626209894287942277589599802961525361225643237316381995456317431122148366647921240182927413875025088926122181754241828770641683663129802294834161237778894589548497437674990177452377570167753340390871533178207618833444739679711755204991229516208111818925734707337313553045134471945947574954413341766931941897565759022723941656563788746788713479549101256565520624779094562888854306223377288811752276513553376960810014174904753799367747291762439404001577232353209418395157408417064088232409984807858672377426894579650730220763095079235661343869781213993828607100171894182061328531552576734036713779102141327919772080101636821295847127052929318070916464060230650282710232362530186640505804148257223013888534418513245835207850275909503020461265222539409707467097529404425666663368444607539161279357027177472428581305816282593715259327034823840091833964157213175306203749656190877364710340343871711898790922471958628254996652662448832218271924378209340114881815892911885216832383654840904528911792074429269539857895415816610885116452007328288118021245811728659223067900071694092430732748331273193363134951007974886132914484611813033735131210970487502217587349826061288258073161102036420322867003001467479443578200696907885748216263618444284118670714302476348294600470008079213078504190951038616511874015055634694802788766382350901897794996171396948588589393567350349115008803470294959340866292759880630162649244279091781963590984239737665055755050902626895348861141674751865170380642559477127121752395778397413701786500831816980844657314914762556937757370227130013912665493963560311059427782341401342487464981104901277642719273685687173970099412766637812644204957966808042309012508420555122730472213138184231657847142673027841372319192550492461001733961343798646743443022338160463224954592641327892620679884028667673134478594490747583066255019387557388171814056648133098730208448235672939142607532471845931931384616229191804748192393907498504785121437567131223413641864212018569824059381333254130669342794377702758249668807163336330036527776311228996489130111163794688753731464671618673200780897698237028173217690613222510000794843567587080157865021144009593149934445027709344604903977998286110873009887436365606252679693378327643779449199121953271179250403994010619872088010418547999155697240270718432255264098304468523008440145904418011914836433961135897365433825014619979655099632126459681805663183879448054975439069944932803247835203262078331010248686237511534316227462419229609298875581149649021998888142038540706022247599697838254009779326425014105411904668033600297005445434813709869334659403371696901721044123532352842870414846426779669341737210163363395169865412845217252798659314012916655408132901428226363757522382839512988585914542803049846433130921497619449275106629183740223417504117372232637944325204513326582430623798534377648072622934971996086245148344354230799616024225672963381448305220396999687436020105069661932282219681602897039385860639881065346633704696054568648489334088636282359217810838304734375310040631271631015046846051640829705389123806720115743651528627532680458550490126595401607019193817392817103865000203412893951690402356164717551589901913039653276602041804402262580546228843524441238829749724229685955040405872584751224221012910558147811548248134132507935727373992437144618670763602773370603815598225580804590219796554717862125654338717358402818022593638419699403858628791050551127257093808752278924365119807255079014817602631960078174471849387404722358007002555860791862073124723450038901926689903074293310004899399403811225128722241391003603994121461681015824793557518335604717618428799684009214696723208485153066657379849789551035614528400005165253080234748314700422047972587350819303444151813193092043626016574877539273120206894035604691324083738234024360294415296924620242100000109162368872972332422872927095712498572271153398262528508399088463367250360139765374047443204967099853154956240804085286318344371592871944118978658185225205455249734031541628392831889859664994064814911607726037529038285703232593439057674963120686749716703383427566510120127888917116124330424463624235392124505597767051504815909069506938577118261781672035388108743636657254518111584536981183867403940646218093184335533768763855969040174589490046004039701114367754268310136334731263686980497514118324261377754979111385353512912829539324287278439628234826544647589238440324338642674793401270691246669242382995679923320060864188210402174812252780703140394248305008962289035833553583167947175796368513803593886295428623752136153090607159785264345405927285821825197829382726719737404545534695183625904833322738080614483942405223624876767912297225410764115738189961954146301397255494396119404734558639498702652458818198445896832403098138122584888213588019280666688392574514681967323394940692073779811837634539199087864232091955003462822057211110058496842886304365573293892408028579855327597085097275141033113512528366036200661666581933777521114037518017814266552100532644850086099670406350884010824108362990470010579700406326818903683311848431488412205206945776722050853514833482010796282357553604173703458674727880407388560293589034175666500035573758018512592639315388127626723032081482235272990044315896355273678137157357926175774438324198327328253670680641351127923041849488452503966323448260531963943464744116175611193386936052113823030755066780301136462716833004976250729720198039547294324391115585866814554250442426050238091949471207785766034974839524746323910312544655300373248123319269774402546018970485178792882600609997377533389790005724097203678805148255308576286738105891392316924652068613398738613253124692268040947281936908207686263205442479088016130794325835933131335227399229809706487834316605801763200646133444000735184714787255792132444585061583156355237015325073173756525468260323169731747510280713329876996455522067731782182782403709419470813007766425045161771724118185646688206820058390909283132064598237624332763034667332196902570227418848653847026047145211154733814793499263721704682585350658112311002791004854769530290147498084028605486046114775554772022610777136945506304459479019014362494718453075217774175596009261610826338771239328247595120049564842458669052195697599240959313443941808888390293006006302440700165953633766567793174034189785843864134639354353117079339336462970591316820958783810843132143489328258327497992573895899668890416593058067085536578292971514541417890258683077940868039277796288581149014451170069525803150183764218459649155629910119426476818013286821448689101477200909604227934813327598068160195615075651287794058799634943508006461594791253797350847407550065453600077360766247523763303149493505112381301526535435977295140405841581481008388614764695362194348620326227177837162406246247618364603058179858336711910660850503808540768023051037405243485543289884331619997793605055086437566774136210499882409787670048758109227796275879437764478759091932236430660949990444676160623054302070977466749840042222141417677788892310973851142561116764888965410389086077207756680829453185139754070847009782954854717175774753748363707781596071533373482416307049231213557981972464123551569848836885744063426583837738537910434231011545263356990510773325339793206689124430975320174773156272277826852581800409067731524357379836658472615067688566531846767775311024803360366316949026171024947310484121373405087634134071050731286261713135653928319818835714142739920746914771379736623176886652590090730998420523040968213985935026621465423239184219246083936931533322346954290308421261694198414219143433661440568167728965406282488167965795970423769517394461499407141481712514751205293101546920690209698624361844038970267236472016891668448830351386616556766745815607067483913611433161771959928066396639932589575989515481050248428016425195664083422580928670816257559877876876042507577729292436638462959577251986627191179457255248736102592996118075360766739877256576369419801197666952372497467922465362610933560310242681469617841964922523264398187265863032853287569668720646113738318100088721999296354631855238236339348331281354423960950432243396099789323361152039835713338948762735310048261377831045772945373029449563410819959420065897346852600962763484386602748359205930123221859999939908914573502173961970147093081036255676295646432364994796865489374455583045234330730395764909350765974842834283323911668979774732353604984814212918611482271700290196066930696712669440686798914471339985771274399567067934338696114349151381723890134591559562726034061624825811357226769263532550504951211889575060378980937121638746093282791961398784835660502717288607526820775428368483048133193468725840035816857016415119202113413239513412440067872453563595294898425539653408187818842099182612031061436381824728611045057115957162346224336768691919036964427171240636703571104073021920697483659641856953101174139360551237196588342224698602762222913634503001778597195046156980446803636003493497988625969870129427773210904501950914996453374876795663884990376525812450338919522694799840947963599177613823261329744966114593036185002780719752445366187918453119081391549930253983593788623284335005857010339541604168762170929538525448295378738320381770053243140681405562321372867888233701604129781180106566430379942902395914208126127666345718500497284853185733749356413039035152790459203794378423413962971343960358013993546100939234635807080275182182272652686855930826465166561994277372236580894052087940246847953722378915800941413658156008754173587705929224278628431876164361791100127921760836523124841429452105756294307166123079247471108888603405058566479732662253299060627670048403368148636943120503075105518509966088291433912154419366363416449171989835472453485514048283264334452027600922146337540542967759729852937618009378966520081511480703119766384901700912316831047473993701469891295014253348674529530459919693346585971408349852562817601187021897750540424700952993375449072078497523628040699208080565377888513723911347578051211240464993621459356624773073418775670132332086162791949350133033666078665950645738862376491848453069195373898329201819798914493625588627800692732145408601639129960331246492632529539906214075424363265243752639383187340266790385479697971096107722201584544386708775823152123297536998238179913256583444750048979806301656995095711620548944619024506906420427759344419152260643887044606469736543768487826719883195480706455282685652666825326640456310630661226934877212663738320377085979940922977426474491042594716483566145251453693137779248278528234039322262127886393785546537353565371959000734365711857399776886580675166799514659742027980509739819511440490899741811945980205005884223001208359597855684247158621668849400139585473488971146594632506350269691566162441918361151028204774438764785509932130282228333108472302491406668519615189631535485056694256657470627477362161595548645823203399981156216905723984269148923269555000335287773586058389830732433849268775879344748001726428325009472872816172690049395551487825738190004371611846129179610849622739597071092703307843048991298875924642686566603683382335651909561796996061793898372412119327863055712747841536492249818657023994727679011998532407320570875574226425316576093122492940687433535224087214594702241889349379477502270627658531247216274863405522883799258713115215307990439591234081419849135950222430343671896134227118445248694711981636997143319246491322992057643290907198183733171174489065881632894840179270707554114943055677881272976228393391723353262582706290890972512327727646647348565481544621709278690381908178127751135158848789748757107996515179563046418030459814229240146058211295649236767109094380094967051368909415345341966961962241621031511254407592175983004570933244821802687704030754116553345742237943467213999101641707171219253008474412309215201165167520247226334034703903470456557594653413836349996672530390657950698958999933856255458817238171160500568031690923874368274680271878321184175355747713619201873335946904024606959139887737997658512186129961436932404099826318996489867160236685055384051653125148565499094994136029995928527214420965066768426637997640992503501934443902491844885395934584889796945068888706477065843484566957365271625435746636762562863872478830649587140086594718077769081923953498737511530818111037218587406970926259424635645892312168004961108901028073207852550323317310752603158436299289398507530710604416056167680817318182768167558557834560737265231023780744800329658222843981861780951842859936201690346645165812852937141613400662226965668450413452987409613176408360968488251062820157302392873471271012376027756194666840421812205038312601209115389908627779719864386651583348343545195524165695562400957648017914949473125422021111887146362732986574317672761416986307248414159021016024717651813262259079977216091556816403903539836043022457199908833863133239082147684162354464055532934901232702275084883657558858271111749705642947724869825045413700831556133337988229367570211302206405477143339047478393594589535065934457229799364578668115724925306264805363034418095547809548139277432009190887654646819421755736020615431669186087216989385458726336226101802803489182562741274681437572891205224098622635431461336777798342383645176239113751460498866358970647044872189577267114490479773041498345471646162009768531965553737773660677106664489090545822657585106942060384726732085938246751431066890257500114854940127280929747000173716497444606830213286724414159030620590598004743973710890563435868816261669256336597454036246567070956402228640939663246065486818954215581201869671301204036134034742789008574854094824656121227543300223352688702767093190392573198192487937280036974453401290888869886434319773267953185238224341197731227229282049355554355486638931025745199761693633149297620119970319168460031675300155418689288772476644834216952510203142116621552653646107688669435525310529737151059094381817751765037216345104815173183958346919291170649642871384333818993967206054739994541257447031772329507275123426552769975489319754638107468161301022602387740758580432339530423546760204868512124586235332421019620254049409778477787726488491999133570540695858255892294009270030830234016651200382919564571220944950386773423319328926137286119022095494907983497195352439382725330622301972410784960172267102268204374552472955845378893082903460097077765338202476710403214766564322539574152884140979163959766898095948256264775271995549194260079356089756662366921514444066615013606622292696000773779655438381133584930188139377136644457771643016393182427823772297531789510120722896345098396857963299435145496178312621452629333112129914131366595573451725946809827938530419481606417432185128747261920328372117503035914059133801370525229214911907696714684797620321344075846796844787298250207059655070157897738080992456358815015815533834547490519088482741857916297041559102456404079368616882701672873597814792013239078078667063522167102231530768065240052015533505985372457184455999875185302499340034728126142472019007726078481243010099270035209178847026406753936537610027944274024448304792521269618218862699744391695371735211291818821124786654339301959346253677383711099264393101490445703060761088362592288760405044606976566186219890591121480005059276536678895346616640004243757039462302501865088313299716744987853783667007223351167268453091869195765061984412100235135693059570925039829052997838530204883746185198482715622132917666770241029680455761877286922592798997565684851160279560004825924982655932875630019228002923745327784087665321391775956724955380541523542401963491961079436744504763344155511205752855168929343724307704628399827491944455027957195840240777323776291796954400198359015729231471299228775914514567731092648485116478395472972606040621795485917160192426987315828210620535562812991472123286808810597014538882598523852313320192449788390204856249440616098526872522797315364835057149149033936036720433096257046812560573862611927409424427871604153152011137909251085544118568126283732704585395395410376554539760729404936171897229413633301103606261959786844551263490663889985629841714594982243115497605136475298144696458499041564578534506275267288171954039619227485852068338528538392595535020914812044464406714001766061282589988234317168124735747978580264126726070679213074226255742546570141816411030279331632571016629673362150379238641084129081053474014115411964870334873740579227219422676943915650945592163415878282498035308211194108269939506340423451897392389146302868801117170797555206633399251163270370437190431546152826497562447408397704906992640815567789006313402498762876754723220321036699892049114457678042937785142307525945231844867906211469034307871335919156188295027049945932777725014381938616986119655685892714013026847407125448887321218659935471766230569667450062001685945959475581991877686737486272686644865104889424673213334389421534745823548724847901692041921973137092919490988400945859382295372196066905642110145199893300891614533518916091484999320566128688644502788004771057499039239415474835206004281748121150185221454341115392014461768672617670272656034728048351802203237548436986131417520620948777610149359260256694739451625303082285707397269243598101492188360974954897717341242761620801167345725884336299016374762359392756253604775509647697723994085451606682998857810164832071538610452466616262290546211176298653309201350375945072672149906478487865518933546189986175060116756015231937446011787478201544420827352039638450778734007571758648374224193612138671814206137731828646263596890867838938811366910069034571829361570737420882403060524952367825303888534523565006729177272493437732803921823171747884331033296145085059571929369902591589434212095940923983521833383251649143609787746345262559369436232700872737048833308380425820791982075470582558588448795990042665103011657598211262695099525255505161377608179619236300680983089047679572378936685116348192307828831510784307725856463786384259623409413179871825756226039098316854539075583191635469198777977357078698714185743439839405390519136287202318147249931801742362991122593242223603152419126190805392231116092151107552079458337354634853746339952382247668414568691379381489773042419572636514897138327288648459099033322663371917791755387402403026310627201077232729870020844427941347851209612235853827113259509136784789329186703106625588402675435690978659406538603014258992996388220231249039311197741397257102623109927266825852584103411018971761586137511244217650599432013770363695048221093802495827824599333841911195510603637187123193196932087565841290611951350040683127927954594995730022800115486593640813757499461532925645108931615136185144672864743183257294239493363870524473039978782140375592994717290398304765129208762052025179047907874774661170125263519606020038320138130613900492790062548567165336525525119691040103173334588284009391174083555809374661032985496299443553161340212756314566418154808118546288553425755961400797465473030206999631617193750254692200021315399644543923001840151737770319994538664712669671247202297751779799449312137726040202910394569552396903552082748515623819952581077366256450819144084462802217246256129770499494282097029101575966137656079430467401594084997102330726564426684188952136225299801274072347400150159248384808902078021940987779893416222683047492924121018335351760568662272397735871476094623057718059169850628078534141045592982228481753875826870035444177503860972584059507876102275093064437506577881828846288938248896807334675526482490371037177729482302736148636184930491900914319314194141501383306146670147511475188491369656728998623923312882759224282777284314172633161337298942580398938447575263961225790337592191826607223618637418855471174183890182943698024590210784776340121773508261673094540042849224840891108861196618930813478600197664985342686411005009073859792098118055262813260419873694526097535703965425174822639793067317164280153694795841964720275964270087797961764326855813608158775165201903715598371556454437977371968355921128043314440483683040359973281411199773845106334127564993284889803155431964273061031356620433136857783960499009591306119737987396155895137960506985462040370491719247601460825882036652982301547460433199331287764520090734504148221089273364789420850244096776829286491303710372801540468693623639741745280879926064994397014637747696472743970344777666231986969820132672104520286695395994418426649063658420343747887936708904379398337744046009993492726698975489513305277647146509186016949824775531051561654636449522241886588365858798034708025093503741424718724844535715210148822115205453867278378570257818846553148322840791123269729435697454887556093965660996216362407407040268895407780904732139211611349986757011356087651879989664347497483421082628779845782538472899569981918108296633099699539123029277933553906468802043911040686454945431112034008454816139246087103493630262805109736315402950985473895339121460889849271480112306506369146596581690087179952669395900004886691545630157429513986520856887652412105688597739000897879716785619152484776633455431347790048131137092933470799714727037821916209322199652098284934782419197719985615726125458777744059283937599552754410053089732774363320485700732921317079846423925495953428598566293908057597562056690730253072543012093913762520009121394837395316846050789529282275176106449732356791730065157021485848706535733393634179236435564863332797996966711215676861814672094082608428588104716629999166288334399248337843271030224145700333416822136617145310565092174959814489114108008336755411640034122558335310164187338338973518778777485598421085535178291606418685573350127517661119887863230973883935497217543632791156883398621672658360639126064488405704864369547946781957505870163012917322517275018794596005643902105745543133716069505700472768032739042982406942720398648735806642311240954447120890918029793445788984079209211316888319593938875297407027408481290675948637323080264615523358309215601119304933505249909023179268105988579967404645646853572280060694596617941190267793223236352556363666842453112087695351543145569160664767164611894342182567824687889209744933792905729139350085290816381581373652270215982520330923675861499226823432011927258760151683537922829309964044718856933063133339955544022658578200956072053775864668155577922518493273489688553500872121290503865104483374002964339415865502346399370490780182552611790003533648806072752554078417781946400153086681240958539956297317795876195944215740382379472333424087407051798288299391628456727377999378371716807560814541265455070826935477422901169415951730395760932430219443294985467375635453575651664975827810764558241772380656667676775708400398194968979742634681575122333478920830032720870382180161777508719101174988314783732546242677040303169130377887593030130514789496955875129387545348263847682306407284434297558285521274831905114367155206715256764932948247652244872491371555540801031278830508156501073466529089054419970438060821291568565623272681697276724219712166430856842056113230548701693110354747788913779547925479337713602786515789886610152221661537386784426604222438758838757824429762638294539893777108559607513942219998323829240089481862140622016513819156202829541887092893554197827087696714980312252694526584153021616576665732100532473266114062337143676327705690784115132489139207797766994068553372611831804798356760251563710394540855838513685714020254902602569946193331693673450524648651460887357334758019861128920167709713878184352021249754804761502937278015428587067471204151211633810926042896234042071898334765091524072751592630283054454943469917642259887100874531613408371145072269275608464621637111183810262173545894467437673820426107105313768217263324179143492946719813752250031257042176944634040077158048526786743792707773013131584431760913177607634943685926907166658698591617200352435552951935919851921476526516627905670811873515741581364747270877964690839934337246214903092949477258902188539356468722556491144207722403835024975870580965924465841069472683721576318096633956385253494195580470974001954442092130420931971510261483160858998160623578768974738938210851653552871421818459577508758647361378841556247956965242260677762770362462387350591097142678895668165916942680784787745666705529178304920513835493056616387965984075750107627674275575768390186197366937526626800262697317686919967355731417999091402089355502389740951312534204963479534751480557078910835742600683485232831964292938100623220255603124334144382011830592257816225012389552902773441910838709399572338437146417202331707809337288277594424443782527201600196218546529673990450495499642641925930201484634238724377276827833539328583699383587385928952215904026889456197489854923651496837175484533691549752426661013369296940833587406780735830972713154236750872092392518904690155215772367582107232401395085452945660102438900566853762670712607085332880994739952907963735969443261358460712530534615233488052137102711333032671563923827550450636667277485869293535614818213794436096468826001642638674166871124342891551462633300953035713743128499891129706539996991431333779920884183919866856846298120196416231077228552702132063171986284661208914424961954522017112801389918954772321826163115715092898278871542011104286253386749806285575514700610600720197180773706194088352773780791611568498075891671815495225600282536182667432057687759429669169617643167254074621033632567519477045095600954890645007297526515081267696362576677808577613032102565584596655184769083939244797325572863001251082653582125966066271020418761143145239866188215615560956743239805377710998511737278013108881824084255094462842471456345494612069411877934901468573100613721739398027374338223681490408518205224188489067081287849310167290792428382688746290794516540679674093187130701722827107580958989288098452038411340392975657094709284789441481363296821203966769039699737739572976543725838925726967408783935079084491732429991838872333125447433075486390407043626585498333057197018344982720104659101365292866367379758023955494601729568755852877503796272384774451052605714132163449433194677453331061424856412084491384178299622502307504964179096568257473936286526691400928190788978139967200854103471901615116365166047138275588600788388845004664762722276146770476687214771217848248271609997088003962425741635555547583519439116352236562787768750130208188754533711818952575707201350156193977913104325043675797708892721000402871272109341600227245660787861677614933500929431666427849663018603374994746890986082907286170973998976509050666507840034235729875229812114878013600047159181287301278076214772817155954054358560302359198902490984872080954800082290539443142892269181107244633746427868328412095883287549774376826567464939884568726043193403531107389587587986854198214705626540084518623102653433666508374643389710001876044097085548914646344648350932869550597122570982042370021158032760620196259908291573262925213026408383172016391876824380882376534763127266156560523040912006348239963809975151304750170585674500139559589660653318609398700050288489356833593688998026622331000273449789184172874218479881362872917243367811823397320310126229107034829237412740160388392762293632014540367876616176272909310772394656450316075663471312965619066178200343712190054424620223308363837048301288079311443209226519468564240736099351501050762880738086217696576806917457612331832150452900745564735449445056976631579731483150218057647115031402284022671226810515144371023223384961790040292399671669393568527023925844689148007374167458417094593232077586545625828768491876075226044996958726679573190756681052843764553043700188142667655816500384313524842579810090591573943374096033731519927020695772327619109657789075903990051929632855408296783319729776501592504983528924233167528912418972050111204234430600639519066693671761659467009996714833561634237023607840618046424454315789180958157730757242613356341866450880752511353062864320788120302002842215867691819739980776273798241486206198108802957407846409164196311566572220614621143800026931346771265404907850513239013757531558587433514326972726614388143488683815169915915060526140769536795504920161320750527361048504471742155934622997464600363122678711025735199571574139276614964743681061630941313285864906359384947653258047792848396969613944701764909187262962581819948707547278155975384902892081613073598790556510848492638897441045037920382622127147137516813183147598263636849883460687061862774988826657726800822138639301952576504743325069924324781225021532146043731847751404656292225954841739929912013165595481276063347454587427716664253566879306934030091896189856898231395112484049973449754708986979936445256257144276860997092011445840149664126828645982666264606943004369236539637003238796166104657826209743761130933566128299732975050641520119395070845163201523695623957175689879868378755278551983843345981637541342011044098146598296740185116656913981874011014585419145309708001025361115348390743981431012558336388250954443140469411515399219530387336698840272581012026045726019877324849714050792017963262965848566812796226497386527213975430612429109551196576016910295031427041630934386091714471772151959568481935580865545510573982425302220537922455146461498500936342031391614325386791847890511655592902031551991674650199172439514283499019280668476103341843891131227265706073057245468256500494425427821752679377162337658142811654480853265996196604908597634055931756421153352733627941005884908415435332554831289883182173631474586005372412625401706502920090713984685657827902837324649213529615238270356923298493793004509264663767507764186812393355409260964217865364165139400491875879931548126245884745542587001779291498853396089420525002134246343016883287305007665946442263757697440457503572369815001503173413025054860774119303593894195861038857172102486029778071324273653351806164869495398407319317864314064024898048079039580317018438984871377881027173282117461310641689570569364577920831495551823018910883979487133378503980091919750938771662948996196581721923923276283654033065149399723771522889415749658007155737543362342966969861389965099960781223197632709894911918934097525250128339348493558701960007425517531364252280914729948448386362908846646881721135154286761105132938986813639831955987648395002375458550206946444941743330728766226835428889811395700763125084879869729363152081050078603809405294671523457477237840099422939991203727199891182541622125745115446718948117781611253611007585295526050573606509238322424621661700541229194020047668059214144995293165830255434316000942520039607699648172325260316566341472742095442452024202575754903409673224478830320422301184149479425775378306806967886122813850659390031516318459274642623526461525055772196476175226395233224728175066931672080801377732691488025510241653536817379726912172667060539508295427586276765231084167127783942259715358277842310587212565956249534641428691140346430378921245031478996785577675590273821585014164726298593316515954512462373976007364969405706252079567051877013316736907036513852512163347459136391023276475921486332735601049782163858035750001738850081249614649954155463236822272462125984409079505141619609605524297693062096029278524124713335395951748763952324803411835249713463443932876842441918814935948416711886400894979037385183489071716853025556349152560895402654710034606386786445419585704085129901219274928219648412670999801708624138317350923661775588639303395386457480173867393739684759620449229978898296438934400006415806993537333729042284817162691254689855216547856332824842833331311579804077039630026646868896905528958919172991814027435747042025149157730286494739514251217840639860099166332922352554754055317518707685264921776101262512135168349597390517887208553096732621925304279094025793693762241335842143228378909141236042290785151149918676541655842362605368520705519516897983851946351457052057037485396558831415488108233989198035954603688104056607322313119143225842098212400205671163013175987883520192889657946265822350239875022991323024970642935654573235403877200817473035977121496115975887914790401682739446506114882561222230371088466555026534746464700501724322204651776773258219606013971187269929943953083689533657850575228629479754424003553910261497482538364667184767916769478511430370847985345628197914006905336892029461672062530001966140344350794462685619476031263724491503799015915074611920304751308022832549192404994082586102185372273911635682886662597174586613392539369188575431713854438034113270712710746203367439817365284463469160452766408259062263267122054878470883573571571992757122917305649733615828397732055373711590489669095062031739699901569851170324474324080916198249544302345402537066243993407094476437271705871470720307636114977897480198326145628318896019248098717677088889133344081764415692255099113413552589401396674476869310239497940896470100314625715701409459161697316774577255196003936826673618885018460592830462024400363847634176564352885032664752949736874518744373945112505966404887756926612688772405463012679915218991164607245177029085038417284198152553449592700273474918130647440489553989495271282344943900706452030092910037377254878472472580414762355144061977729791344055262910255401773859578491272066439155201259532023241341467789857898770526579241160612460053774501405864713358288085690572393095163266197742350215540899517563290554335023816279540759212115989474085198005962608863238044896906959501205627032581488591193112023408772999092121951816987417235233921703084081343283410424939898610017220164873124660339691717968962821230108161872472076312423482702248988557271277548814110035581234171502711191554821479119811936768521464414639369292003235826053307659937489918504544686510556296063754442840508496991363973320808876890293547094382227167950844946611436848267273617141049652454381052252400228367081194023777760796153263169573737332194425402824714616543386642847520074519791290152013395449193445074968414065718374760781757275437784288871976721885439933010913671379820686779943589950870475138689949703766266402925788362593595514889467439545091044850458416849885131846254520274666229866443953423308982875002460300894759778018283100198553075310905389181201029311606010839937344463107261894841110470730020784708701009046449459225774319831560713840050617060480330547186710935976386080520280089340635247231438896628795646850859567303758877408015132491434810113676943249529316338878025592345900377005295835104318180215011453942363103736780861945000446570334321785089916030218561782631475354631992128926583383420136965803854322249423315437190856373982632990954717864490652038174058784765186730421551160321407100581851046078403185075897692642194707971043440388139921458508576693717054385465437436101064331509545571814857291731399732359707502952550813166232433859245530034760882057554429587882235920537151706707668152740402489024345147229921229214573652368268885268122894541621169751895827762924740138003368849341786387501432014854539747715623919318024391854014247887160915583486159934334695657308522057827444154011753316366051200544261819876365978338376191791837748883823669487548850915595495406524956735233922114536721192820086811987128465516641600124946062157942952826528264444621475168914114388689015443040656534165714063189653800346477149028455634925662456184461838554991162039604053833765008617040696717509034438644504754147313906627775602821397057187290178009962014282242445939682289907234578689313094923925666630000710476179274433307965933664183420418211314683059981407054315357580239465211093290789507014371202228060084909643013108389109367889867205561865850746389454152048397000839820278057319563727314465976678491873239100901423741188920061896784074928320259981724635973621391204402644262271533876244519511947272017241443098847137100690705699855977443450506909785103100463503060636880791216563706017845535782860999786264279770977401031694892323544423656937353552735713616855318855148430426219345482676184216917291118901731312710706183661237302387024381591157164369509971677208211439375422312324290611619253583254815652433838146546991527475893842972335245075265815203070525152030059075622418401445026632130382682364535078297840059333628489203225871851264269294709131656526130795716610671096931348360914319920573343738084828022721275588074911093262384506345050873235923032810108985129169737259520249836320043188905889084563424248745162315006939624181060000648327974083970122444934870907642103490596096645268958496334738693264538171919171192669419191688968718906117777416155430281263299375386654588980810693007830024192944581725357377034343801936677268548275554370365543684668286655708713248128534025878832183418409923943542460137097097677452488454740380265292507874074618926650497393220706315990568516032209716853175078881628102895587727644508542071098968131323815454144811002091260177992158818780750703483555142158130601189863680659365433696331725727743780926926463018574124229541124622813497333159698844365170935177068695598116493657299212164975811878470813995217225842064300409947177368244181615364285050297828156110985238565087282962001285616826800290003316837669900657476358942901885217524449983649732937036297854992838492433324795626723367967501475796016957160659497267256894099278503608572908528788770416415996985610912768674342702724665262252675786085998900620956116721782438350969646823103456535821800991385773424567884316064244636762359134900000002599261290412905076530529422591237368874704247278895450877798034903858408154097539155476355445397450322664031125427588173478705673590839864971730060896863157668620080858320858668705647635641172721568080593099466445731695864002320848906255042501252792026523881212709102250373075943116470407433962573096254124099692557694973388129056645341436812408991100448463800252048242199210704993443236416788193962550305150161816450252789720745657534674943964634633212449293325404587494160427697464831793165088887336752072143117175945602036037132008302672392415722058111688802735710998230446588704786838949280645704513905042020613874051131959665385243845465641981910417080077036114532809054635249129606441822287685788463166733155468330271552719457516676191628157607040741534229670560378097084862110426684430899028665911092378497183429691448449272540400078988841507758053410375713718913478664026950047367119752965317240764497329520910118851711976447756534736400537466437632527535963608949446517270932716297803459658738046636997742426974495387329797785394199855768020220919308073126050989424016310145774989360156673225996315276662530743361245694658064773929746964031681111479467936422168698442016182089448574416229677988427197293564546153165718368828196894779986281031142766187671407454844659519964983024736055801885448171437695356596175866313370991041713736735279381995921883211271369810056390470818470881828767514437785904433029934259875069046988008408106767684996657473072940648707899037106210083383206574480855500093660902727555506951202603347093536909831511415597384945063125395275382002013587597576227661367056933212650734041573418628482408937288620566775525971330318750209545449877564753004241602720492551945402048102622821774432468204474261706587526883037322398476974474826935212425056073572082698717771901641144711478867034106411272152417749929474527102241071174993690740274392536626504645787240868135814011570409520208234153370088047388014326333433103964383243111639110611396359142834858471260216351265172882922243135470420844536128165095414022418833381078076781420598118031365723781773386700344566599854680996092273133675068158455156914735841776824653187442254759114515686961643454880890695724993496321814815736227312724958663501251440087673674731032296239048492924055157641139056295523127461579796138401894966077942543335724838843455740199696645376543319805536090283462483013497207388352847759665847345459128020165654090530089974969205675742554220989900630630453252259526613896431639585410786010383112623363972416243136148728371920475871860345281314558415398287207481525350052631065559711062212325781258500037864609001126760243943332524313129573664711511031438174901471832901927843118996962286942054347008002959625633611763502344125215326826642519190210306954209647240227007950595890939761103484558099103839756206213882262357842620295485213858437110225751016416378896929207396959987618942299728699589931284336544715527900810547464757874924028445160529131847879436197021180466805087628691440251419458977969948861720962698855058216284995656476676839007554145961175662230041668630441053472850407201873997925971150937634805960134035355033335620748044675682634014695427670336041881004977279320608433254599054179544384425772962025200832218131988592719321758844082406841198548749985975985401739600367882883145525792974879573702658669729311302912059904086645815374871787644743423208228291336156264603724918925720303021870992952787564016231995408294744419995136024679229974203615860063680914984935114462529141071529796488834856587656153191720315241491280799735124346387913577490236603649431043781561926391911900336524167111347659716289473187222252442704546402883401733146933610197556019224705412054107258667473849418672157846440506109792773384665754229422483385859533262183308926876644287850909052694954782020988334800579180436865496618384571511423706255577904806529412789464093859293979033196063150626454646818832504413313729608953816260918330010262999903324391701954678150196748597328960099395318409029922411347240341649401583732092877765925370600876882988311691650753525562816573353294965108197893717757325254227107241501779267777101799557453036010426391956805999050306642624769776120877663595271065918859437738549353690324648697231411273691729959925544573451174559891499389526239101083473586625466958370463084587342220102083542475105969915078911731101662513883592111113459027217662711590496498245659882745431875688533627030262295668963967244257347890343505590245699541268592859316371925344486521686374332855000826476855035991730613317339511092207800441964051430403224414148626336162443419252664253491442440582869739560962265923870042810130024572041142749061454980786213988847849149789802628488072906631925022696721643768047318244280476518715083519004340666420565768233766169718907458128658817066212084632357142779168032844063916241916534165710826155575251066334192214401051213207341042268847868496418345873932473666261435084857210603874969953119181269137357955038884755282355278574657884868029170029386147301593062157538525770692265257390104334808165463498308213275073876506839316880809718855413373728156746055037838513284525073857688208347083880301812019458106755839710837689889747515654411035100216753786487843015599164538003395780305255054095135602311324607651878877784390187597206357878296538562895243199098443172015239691440287042463663727555501926114198783976335628677551523680431619351329426051100847024519065514284707317182420367420497643861537651492280321767288161796633910996265371818104264105298796298700874848465293121871657122322800555321624262197542334145250650838076560930261665330597400936920619197911299016995514349208100756074208106147684686447071398822766689157071103486291933547967854335301976289604113684546156171331542009525341771181697495588579441981295251380130815673486492169514361128502945839197295042650683808418194897831558180752768634086240111665931002397579808305923326574407746266800522530976403889288003751004441001956980485721594311743761821718166981266755132145114093229052853092102604104449757113405271443346294787821618500419353544377154789811382669960511316214320771401429020247803195677353078615943230425602126095314291390384094178115509261038740558535621418069965824220889297231993499937662185482718627228128889163021879345075186086626144372019040951738509803828712692296076706451660537202469513227690162660995558874774952886004529157887712380174277827395745814428584579233575773100498567025474304513167772658188486594962542391417415431103183047540609871721383067891414122831650654437702023289254722516799168668096002709683684685978624080582528178770250876957624201511645138305337728733888788656564777659075669646092832769387755898994871391640964816309638815580092291652263868842763704763797112228341641256714191693730390662749521174827189520936076087544059473075550403967837190898474460953799454749594469506233317524185524495115684426694905241398106616119106299066660074181818045725692620957448354830121369173383814811557719612312327553406078759126542939100476350180119604078519882436008213115672403451002741162840677886439339985563912249238914588000022307982192927552900922171602630680335731467486386781966776181741185927147926132390709739847494668071644534743089573103318386787283731571552175640148731086246290161382314290413855966147308822220347820686443962304187867740613981523790461647622412411675565176882410558229052894195744943985852341479729781534561261491580741002751926262571860577007230774858212900234500793846684765931796912843343261311230752506957978513353473973508249427860588156219219339485760020544398626185611446849342506042187957694683659826095714056150754965052108742374972436904366273737511050273094649245117218704219233869059824386681086919335132161377356178886245403810536490975497285260844373029516763470589307910821746187544641528483585966218933828369309453128738125662950678588564479167604866548288426313234540598251000903216030280882032988475095803761612948707537412281841041637946715981525988288863242903073785231636721653663885717848334600596503359737089561212663554040088406373926939647406584951547024028515107268750548716688082732803376470022397607875892936812133550461662037608658842897662011381332533389396550322064597419722146571613651936838060654342079708039733705639252412690574372833031065964361352606657594496500341067817629718654458926368650168557458594664118916122928897446495491347518389364901534860053824461090508807378014285051159822290344125364460298866777841466055567653333979372378631408901923866463716671139512210368563131071644870380330862663451287500346928286267632945219857002447623434366439577961048751841680709753736431248581091040816188542225160230577677457621249419763954677318737492571377448862133647746945232145000174730048129338350121281781215597521603607612682437077624622484992759029358227842822600474358746308867259566143526458132110740709474659142814591244488685309276342813115159676023521001203290336265558631190850459274280085367615178411912184029033369156365955041429190361390205734368613474264500329850710136608439111784889798459262208445199594291828649508825059305058404643986919039984763957007155898444781805280489452834336711095525203494862182094169382945914612855599227608550362749539575746781674411540720141125910775033717099163712330222766821253997999921247073048699327504730049845615395701977965444459542933451901093349360755494326445035112805931134179200497141674567702803437466222761052051446107413237673697274088562270735102613024246674595636083449514797992017385399659595880806776419900114176604425096093446870010341039785561404722287828791783800658741664876369869738514098883821456206429384631482698215877023726173438673149458322637548836600558335877841182099498463093133423499881188132425608984147112556999893094773070870068604118512325338969573804410546800557787939050455277675987709084555767896387188393323631425978818293389270679203253464775380708479253291252873509166763577092160681420805577294689404440859686330702264914937518242770414815055124893506640363612120225229097172592287768083638153644865046448231108358024061147069973981339054662883720981883863095134421292245217147951667878184474601128921343605512753706557027474576644453566611613802823467212255003895833034256716867986452673673999028832979992453144572081644104448014518322959462371613410095947644478676137557992211602359710514092763855053250396723500064064059840844666947705501865379625350506842639846359156774771842200348181006354894338812779230122850069916825753066428000969705523556418807582446672538678905689674076534051815549624140983324346964167482025444901408719588121037612246989051442704406533194784037938367792019114015567461361813814233790949060528399972913563484187721567785462880689060924564601994204434622538349686998718242273484442831321083283027996465827018237912228288632861882996339203201872164038710421899213801756051604175628062577370419720116750933689425260397576160854342178764191874012524697744818486821002049784525881110238746007519810893919114416089813387619170641395644712208443515624914867033619848506407578885621664249732155988767121807126573172297194003058787124410832135456445063933055117705621931352976207511630126666103386917369631508405421583132259981537491641373025786511902855605391964733622563177763262423114341800627095446725813051690659783125496100559582615546627528207082299155658471007408018872543093018574723345686046188201490876657751751013873032713826107087132745699491270124864502389203678997489924926659054577223806642511211970200193621736553540073165466416539380672652033146652993723970698357816324859243433605360344681157479761712064849169395292340071308889661601363788919562238561353632279370025511058339856095163735330675773537441757709530540549322934558595268980716384594791779137578868533903009637929798802159090658137695771076591789618136447043580206503246106965311898247051087048951706932477541759132744018106825166376417776715743044357065096657971970678323301415131131436097657217795503468070408628911229569183494630119588327345598679828536103354726501707397614735069082415686805081921644301936330172500254976621840862489510846207407272209486369320603020339687968548153209949357948675577551254603001433647863695938690593915199383459385240603895403755756284957055703755567751749769701765280908521653297678586421881806901794193519518052642872673756969710145560581606041363750753116035982064780093613492977600773110833548252572160303634122014499919182883809247815512521575746001803061659176318920940791059703766349749227475406893655299965294746575931530121270883681827539137635135245091715011801198446159524500021422573951345976146414390552424858483696554971104337754624996107462123935187755775691422967942379499507164591260758707100991215573082734708205252541825715832763177292077652818794907295112319069701354938773673081120076117610755276278461605563002104080824675984798102425462818157534773641856593092051977590413838194565027924627828789334451619697721179362704757081550347393295218491772507152592247029433886758371203634086560914135741367657215042800116551444927907510347721555590199847636835645972732262121528483619345592045067470175530535144995071714070080158589497862283143413187410576617132436388468445318261102930384437667133598827699851344017719873843602135063086183978393623362860573658781026813312528723203359970266951733354973113528406877646321522759943035604694033460272210545240045001049679583932327490211151808034246589660522905660396781859363628742337138137385060107879201821248187170128991540397575719431681296919350108278027073232166826887780328331405884905247634114223318214676677957986518925590538784393627522173748692593481326677870275184357040410535234719821650201478303761122366857227286540458454690764935525697915386849487317687715796718226709641143329600509792888545624638774689193288894075828257024505374593071889899682300673203368371263294659091711514700312046794494178736014626425654783648777689052777691762921453882809387216723795424149207319370591805227797443176852796568239018371279386826141877719571860512446630490864587008765678902751047948862527458144864952812721142182490343523624511339409760746019226505913690607185940650471469811247761724695392370858294000242572657785636224122122862684732486846560346566155174078939554620605870309443454861321262107833506785815041546100167722708602522034879720721123871520006714164667575229027466046048579026485157175083795353859682865611982084961425841020105383111371498094702525929808793200493295482446639638257729478312305446767961897260344024867355854390218589621111653840149830533512692610732419369270166479088801424995098698739863101897788762744790151217789021429716340638872584755612910089298315232320657505510564455108445122010924096860458633654420303513777825280614049212586122301561030599531594021778900672542523878356630306451808896822945095484267635163070154888618279744216157438856504103862246163861166024375446021410825510659436402483830337895278668475264183182182102184770298734896333685505391717863812951999429516421387528104748408106069650565840347961199804883338711983311525433913875246469599640017474839639333916681568672802172109983156822473603216723010747041621134258290253638575996620406325277079737191339396800604278902584383688833157228228436958586251973395949860122200864659413827508726370443174301709655721597670479448034942931842508680290998741330345043024484513885165439011726734148617450250951788104437161839549350684452594529454209569869484005214096635486123323744629840118859709520155938929673726469301282655457737852512510642392544379100644076394802829828390487342929323377842945008457135373006116027601970140029403297737383967083360181461981191759894736694933399605099952982215722895789733964505458353396851643169713110147817787201987328941168969835960434050434495541361586840529773590304084857686077036277863886006019916467465521370929919360064631552705823634021292067506850988111626733142719230412009193801508712172535965857511086946751984997660898317548992415131436616583049570588269057189224871017289969796319155559759184894487913793783249690978675237516949716883083310663707059184916370348630339498854813448340773888440720817167255994313521600615469601139728074580123787166474620985900796693451238188653325229179084221881354692182252653710886948120320924890187717806484814480636065800204473736053334126784573411437913013121630209892205081544607510469727940568306311439508602728487257784297926439419957957064322282893526225601037977811440676642992495972214737411688722539750186964688011489450338143132405935249435484873087206412579783161945567995727842277302759072571971970081483281408597012889133276387603677764313623347791301023839293426712867827199614770973555952220335882860850910047125523025508557780018643539567399482579072428270797307047382790630354616569597250363441205065373534448472871390166264376346831371280164251818554328369092526844574307478103132775204659424731634407225361763684623351056104405140808799377828662662853303611787091009372027142667503048726649793496784157428483743826071833772881581782590089242177488250709435093458695148690444161644531191995899881042039058985615634564368143871560690594235052157367458123380129142972299805515629778481552392494326866417551344973412009319107604246769971075196964719714393425048566924381693509761381950657132887012878029846359865688372393187853972178192099321099601724258381664449064490780737652621153216444543512893758024403029340444412886258265000435724649042672176599775750971652366932773731826170940653188997784410884663281901419195007502041345937778251717328046162810950843206908418413355452555447545007766399610286750786208801026140429781405808607327281537978930114278465303374228935864407347695014048744386120289885426820777234900176505857033897035795017923616878066360904206273221116331057053147865068916481005009894377128536317175847432181150651696244365142565157392047891211375171653444637893964996271514143552010716782246083975577342933113381696550502509414744326698761535894048611468768849856041114418011331996139578200559678149249283126153167028020038449072423088908552403087481852579814757771657103614466710446279011499019721277921877524559688364241205471959899621685078133179820361325837653933929852127481216328739022144527106457571312629966592038501085268040505103912393288303399442650465435881052467624210828365323808053119734960102677234780423192591602471675778023726431284435723193805635112395378835672389505681469465004619743535132894003284781368349475624094857107947769214119417027922582973176128347500699186256152482922354762945949706658040325834416517929782452469469236086577692614474664240087502117206448129882129150486141052485575007086991132689175638193232033495733213863305485677303635174333716608511536245081052780638522027328950977255576998454366178956552874227434938021913455666200700115028673279731924338669021267238454581369006469037644602914043198704029674375100897189953529319122362234005517917804571699469040265723080795541423718284025942273592531638465752914102008237235270603863439500120081983324137531807742033295309963532534214756681242192832413039362070072846472759750344422768546329062751651054681819577957319440410398513185560244302532492622345441412814068295358184014625899615619559312496676244228930008625037795019457744648906971666449828408688280842648341714363696105578499786028544197891917365580740812888662072998184718532709803542053351631597259252403522850960513122306464876766494584042639056482155102744049800158622375624103912694700771763482970968256451720275815084161135472706069835636763918285629462540904852147784936728771599688254146635255872694169690986847710798260282459702678205882327625541572145130039206990129246118657348604082150733339001860826707728072619629805786796436914987527473286046411547344131379777011821387111138685413499826653115263725738134365643065864783931394462777814286047562379248474288715126167418360333547878319648035197090246241110396511662093649344046572613130160977916253370221406927305564206027781416330484869220518129845543060917314990491294445161832233663066458749752536004945681203677866179259287706346870660832606769192762636308262999620036424641788096309828050581081380078969359076644423263348958593548353759259126741843999665902294415277136591284250902285462885715771092613937102748922980973286742868142504095856820933052729191203816213030453347647415415410685749283504561952065552674671575259970913489149179941475781338153140039930228985683942943116829243397952699303641716616292643041968226826280307265986566750496720433417236723921543401657437503078145659056443646601799138729155401436371743034182552732284831065627157487764859512752036775541810628197662599204176816180466040345630814125191389221779629094570231700168877068090938610559226797132334301010625348827180789011367612032269723102991030673099646505784774134215918027863269495967774997163585473145636338244957506248668286054820738460230265614482402724353095465704877928653146891385854633810291118279205633478367514599799345589805889904876373007305861926622651401760091956898113274806617457775249595880356696432046298508265807369791433139466729680435213442071150858387085315858378409400990823535445681028462877201151153415412452089201340446487701946931278408356463285481712897162175070245364732876045011906980778351742846951862567050476734033931656564179242633131061456710194828926920380771033842262476124501284279451134626194425096607328027044471596580505497250435539817343575738772291438219746419848636325668559409286980209379394286045635636106364961543724505169713330402502824270264463031146519239761194604968355676781269961127753118736039409478304826562238990328549776572609513402120255020154680162645249051914656883156730918657931745931697879510970506923776732929016201004629832672936818058402032544506821539889794875495026218877835173981743509022234311464228867256713310033389382459301011587723211337205254257651896220619810838226317708209586943747946754943365213539386281733821479050769057509115936277356967044879912805752377056916661867096647305316111099899142671201668994066074027250678241779665055954364829459096150372158006706477565951309947329760236549934903156679045692225892639442862916728669622807286895330369956304391593567830518816660370756602647126017564494071954908698401968405979603384087831809086036740555038276613296679226932724335455778550559544296174612054090042051138346201575927423918732646370864575823139199358242258519717841587699865838953510654959221831920869181788251771988042836845543960205016525258683305494238059785397567731550551061909746578799561339715836033776039017236863442703202905116644090454533196117425500537314732413059917628094884037804024834943533909539664825975703602226130963759360848009519012052374835992259482848716139428579958894893711048824456376822692612065176770793952289984878691781639469126528246634201202480798929169150831446596376294780224984051949341629136074026591722229713540217241635250512230474955477043246249091355270301203809808232166226736601472144427594081756159118428144734701778343002111901821578208898387916084033684507048576374040336247985776726851410054780662289037807375214486848537517806036622389273615899650223039405796814561856803877861032017422752786303091238456386272057387855660227210665643485509781070091944180421033211522229322624683213582550224693910507106510325517001975959951459278148376281601164214683770774890435763929221274809481136159525310942294244202337066512701305278038277936447200025619625108192400697117474036426196718451209171367733812429108533269042623113186109542875129650646137133170591783737232615543617805316659401171196228092048678946721860640607703897990090687285463916079219481704799598372303567291570487734843925150649118487537436213901896558979763517497388722030444146280787662982667831677108234666519848582300390475196219970038905776401526654440215633085305376585823923659585006162461717369306471422732794163603638092761666496802183641810963909529265729752105018576142058654336537833641947345982887292913717064339670040141853373777609563221157712312281035994943407499274890551348584808524812971608699438458410284274833144427300804694565144827655863171796474890874685288108154360752461001902538906853780073816415831113359164880516741678946479565356716893245807269005040524258850980411458077477873774176771170901753112595177901840134565295752702572118534005252835877576862975753380700017057678779399681615365173511299122258724329327005100294340039001616260565514688775192477440205597788287298698366600156488320475964533434275221905014401370571265487611415902582983606281212573870984052101683568396604332298676437398679761772547795472899170736427396516822314953222946464550409756759150000304069748911641964787493023444955050300539703437323118848789497516595364811053265725563765861225985625371327710801230167848413396033304435057523221804180657126222367526333630033772128591465111157135208986763864562401246438864148896011428489372795657429642392996322233617281562670874415919466610897011437979412433258320673529194659519002675996840045467628801810071590159070651320786425246444722351788764094100866005319590566738407535186867328091417370829808618328230939865169515401005457862646630409378308626191487540000226956282524392775248881123894540820834655435909634008878805599089185500145231793346877436358513899523650524844399798276122945868691244094157265130151770431256027637093331372309348839285879274575551766725770181035787918204844615425483994956264213451589876977737208154847783787250096437636892760187756414411221531891429088815782925674362861029493278649658717544671075779881372535351429049839721221322999014997428994757749978025998677223614288147644131108704325375319232609555924757323303347156135224363643457572904498458930564565411987251006740934315947828591368837767012212828060178741156966819255370418796421696169086233744744600169614560478952630361183757362813141707642539082514931075021374629508606956132038513640490373188942491150307527130836882319548101218089676523820017714031380963638442085916998835228218617218128803697401291368867646770095705032368445167219579981181818760476511840945825888163321354878863495025631210111272998170452273990195419606713955494017494521335630480424316866356916518140143257610547482271513053677124021924210670301835552534850190274016086948427532901923116749171446766627490588481204764365129700582680676554316470581679765351039255773409556685593884183507817772700239603067094241172222471763890522277893012015726906780607934989730295790396848798133531363802813802005290373031366078729203583579344488632712664733106297476391918945189285121552759922469372647817605948502478890082069219414187906636947849829253638049764570647952289222642920126652514362833376868465512511057214170539888676957931615228063469880490099178069779137449675955849226709753873790580100767312904513163917012569612594511843590131336220814274640961141054298274810801943822739211590238185207243522481176177610406814288110483716920256715797157293190285467967793141336132733955249928144208851956468412072191941559762721520932596533263263110542106564436444503158738849571261781725448807069111455979872808625680068407048575640843920712121992221510939881466991356806639476824811758407983397216762294814401174754654622386540099349583493881527323593250811471707997416109976291364074479205129236463857737176759618709664723986299159220288998053759790825949643383354836776280511068121058652708141789223666206717029024020565822026753865649954373169158337166783054675561331838218410027044238980215112237259408071604369963887862366229642738004403015833114084236976440563085852066862438341055043204833228446589797114663496926998173948867877886917333640108910803838527191160971308050354007914842695734858694778705941030904549635435821065732954369327271646661336196866609377246828199297352389811741851484363013977794699281869832126044572577731888714769196085150670998154783583792698070626672816321006163897432194466916470307698992118670628432669540409021211802478024821827468208142260126752027489916592497613103151167822429947943438623907645206404732524459617781032796765263401175910363763327263327558145158085000700076751633380496185231227839653722762795472404386619508859270926861650006553157815102425030962011673490094691956986737448550450490415150171689297180695850967448050685288842661750779099153902472889705955187719596448452110541180190094498056440033848681897017450862352119085435960151258245061805639010226011474125125202981213565201833386999656430764683896434006940375235080894905513260692179151976855078085240933090773286576386560883295678966143603116849633397237201004484503344883440137477495160577406164481615489903044545485489952267525693028083037341910820526131127493877755557144368690362366508041116972105493724753881010181580134634760841614275272176861836797489635708265043141082291992477185075496578624548902112880547913182624879567748620063285929546960198456763582536575131822484287271373467813616330623547052813662107904686781070067625146694602137469170134299396883931638661596914386842675169608483860487570525149082761670526029831820077214346979304907488432324045383618432939328394173885100981438730190719403869723769468992506634041167750429236140311022498008911580582672737227923381861099515772509725082681758227637489715909901043861051356048566530622627530582263127934590245494636687561653529859459672666687394981660655427689579314805975748403244025847811459900601980240240818012303165356904883119362707777110630816845914891094240687330457848879226417305572287659788287896990164326295812670050288970059417480500556936911017354334923000582704631567078920216843765597425148477148348640871906406000467151851336144747277716005800798383645161571190549130785881863340994738258055464581962200488778268972417345286944228083847090687910860141512944891429172634701111480693176272716728986327920422530374903028416635827847090788806823062281925044209080416960540835221248273880078092784058003688924334286668263970707943688130600358102226213507328775380687160673838835979126678532161392238660562184892844060861596199934853989763110822717383051328909711225583511521601178893874563251975291533380941314621323921092447616374418621887045543221403144520088168185485939558502015128588313668200759213212206941708217544417079238916055419373118778524380479206210058955598236548525962255312167875764527466547159409470886915575419865025060593655047390205634177345818265527958405962060422985006284890062821523355485387027159400430796576079056468219917614072202602793929276744157781304786908639787377784452829720732628589309001922303505354452187050416551464960668875458470777400417543771360684326587928170456674545216927983007932055694769448915541376456788362782878629595491502280017533639106609769286657397211815073097538163532429540245658826234109419302963884642876865366322863574749744512798521997187304905479813171753851483692226430218217537828912090971738864537471810542063102446205392647793504854236460920927149534557960248143992076484457304611700309518114384239768684233126940157733366797830764152124168454569604674704154629544398753587338094069226242548538988520863566470005283567391410280275061929814881268753141284338212745963698346726620199673821255761251836077709579660761626870298675777440874745956732140148528548349690112541473969731147730065872715652464595209004830677479269295217228003882262839123114300140060083735579785818900205428538608287317316022281863324403365046791902853785364991066306677011667414902028677976128484605718008698819408676042644253754069070133711034622618560801651104629260447129608330453905773242294316536177530372351745476896899693263820196179867108458941097195235088469710395252461917792313400066364543071518910394161338294543284587941658517429189790632215306575155610715171172353969158140680758386672974683863024034458581297267658275635154651743483253035487269470218797398150962759025578180756883628778814711182166905110789677234266236694178222219850301660582577241121022420464893914786994006783091424189759054112645865703163215727455039747607735954869622953342296723149918716699026743887630829681132331778760997121670703805556981572596546165017443332070167067091107342366484622857430141790125439159898409044489410202402365317439506770912515681601268918335709565040533655557828838115067837650277235821533915502871462080624832490844852339984946487615006551562007902580315364140009641505175903017387608498283184555009686814601992092477919551336206737305715627113376780728000352646276379422618452966552809634221022079582500103854702561640046567800088862176175560081958316405786599949840194196367437835352435190214695627415535840798677586859878487720790391569714304166630511625403853867785275622289407212347794788998564488384864881431559037506182424210582436478067218181613313773101634723024238920547847832558551874843585147386607046733448447043349744717970815011182109593952801350501261697332934700245433346593351071521167796455484782643267002742886718809411164682431946888519075726546810306996896413010585085951374528765905233452658868605071811802337410663498248179781135064829862658269884262737175253435302500223004570087551846633100988286765901918063359569611070912995997559599263167357614048873783510438422815660775081199310018064021323641199061094365121315599023598239640604038218105218248318000230526825319311418050694787636587076436802975249239402302471843074400422804675058849513427400408599135184145307490331996278567297449194778829897147077162232487506369604755721973800725506536104351395957934035548396100820046732408554443685424969201989912825738326951324797356235587838182492860802131563807856237999717450019048774355852420313780176180302579695488733094699904149570827982730625263365709174577459437961004393371619423209784193477685055732882289969553880348784381986620535182328571886685762100346231875464811139292052894048998093960893651177415377264423967203718367116345214857912814474361041504550804402647747505568143090998352051888573532619759218939296683593716451206132038161375882987267630812345825199878181114449352121280011501344104258453503271929844984222686073892756370468717186097078479327500153843943263509229797736843993252812905860920642118583122083892943352471979793519406910848473515987684253785134589608653495734731612259671934372284552198424173887301807983479808872452579833344538561302874655898128247188016642971816046806222021201771414939973801410361045767116238012838516840302728077869549167361870148163370233005639169707720234886841779208159895414268370550349788062431379284082633432344295627300980246232208417263479306045781235491418857293456346884779143222378637109155700100307801271705032619455006155541728061678828118149172540828519787763859666626257912109602060840833982354407709725481355204149052075655567786389469257629369581038464193832380940063829611397560742183884087212178566266235940417106040708111719713541416489623157685850149940995174190617049190655330797856044934740680983237526689975399996391589892583378305426154422787779244003499275667901947923672482391368154554817790605953552378848393802035772471293965941471224307377662025770305655096841314866039336643220993986567314067457662384129518668194845035556195444152243758820269659874730870578904612682849815682429592804048714667009592911584381073000994882671026478558049305183518526465834442824469496944642983930389537161541209234029583001758509372648684353350827062468992798192516215203064320654760233003063469032508876029885443376840514192239873642535490329873371534911583892013466496490143960713203980777243450680998186011107434410463342289099691423108090682715049824281964489984675437621200737085904451292872831925261397509353701737481192875851265932135816708179065409603890622911514170543990809105469139109763145853629680286340929494056171244698461450034352530971430719673421936896942479158558231479685060913904514853462134152581639252538697079412759859102314074178552329143724162025083210773822520028647082901263377385476132490703665623933482590499349165982410052274808753305065217570126342701127477174273984980432704719320357504056399582119607950057684698044642289645397528756235240214028087526851702885358470672814038832046838395512076853470010445126466339161961696728973067828873507179116823739454426544748585707643777042929191599936700659746909121099233683528638792449471440234181843313980966726892832447637810404427708357320302453091693214939081515661802646576197533146869216944930716257391551430252627142805437864388529927168545911073300996819958750001075413163040994499469889912004094993557975810856195856099669001021228282094075271796615775793895145623726465098468423898531089269327569716810322799800744847993570254282528434167314454139957240630307271702200114430689066292068321593437433346343268745794989705895748930892174100705150413686605670261979186098830214695379441625323695778371244603565732057153102589859680442262668890352486642866280274630779331644638862645104662765076612113553849356296426334401459355890351954912615377094360560608451356519136661771998361879891610545902937326750215699933594865526477640063628009569678498876165362705525400489861171213112377905102360337318685521913146402179446404395641519133816419978524423066273667759587020980326595882912013978780916644615151069972164890389379738947581712410933439811243046695991808648251484250337778695734141186295132557042263537312969324551467370114878414863933044948652735119970920554422541558787487030435438266994275408329960739929726053670724250350025328480510600545551553878424705089212402641258134532558615846054595787081838598601502068386393748346241089840528212712764680669074121162566040720438571188233110535493774321413324526197089221748439680272076697852225516824369708097138427635977119465634593803972402201394585613256845182707069757669995135933603444911257280078209477913592355343720317490700389715229615824510951312821273699501339470565634912842156518134048289277436530008743776999840225487789660702435798079643987475109783363207648478196636078241516405845727126374100629259112473406272964035267571501685034090575799977884999745205919464739432179743376014435846579979507443570579165054320633768789661236416596903036797747382308174012414860188072152404248923513088187296939717000895241132392017988798512833636873190070048984226534243071906320173145972109086985944210844673825274022838224951086261601382142740518989802962505950852918474809077193270328239686613794277469419465771532219502201393413712202850134579848743444270617029873823022047406541705207299317847059404795657136926687992918022835055366281387477481776761659126296027539295118790425494711291955175017843726067738608343218461326990162231454833151163172124537146652760355486298625623339082869144350431310038028013713351351534435237552115771754444207678936869925001195151284929756416600638447605334795307456075606729949658897559151938745287488315595643823997288633343375624095290735125140838468299143441894428434399609324174719141815026937207076994617502634787642418518964015086863799788712074826204629511562526689129061624214603887032996870866027434761294928629347193155982673993937412077626810869835887216812338287881504539698857060440032125684890403461893431370412412308935300991066890426770592414841791094983084394367305956047905121118667749450532360967383976725681423693152477302006397943752451840335338983089870618296005486944555746564373483552940270698926903711216110602289414975958135645939097423143912461379065199619541096974223513457441753592420030258768129471323967303429276224646642303469699931643097300035123145371866149335886575196502419204860186945397899465196653443025437272226816031272394175007862877339964173316593283374563467927083664290016427679476821445319815839325300484089289083020144444870650347412237038784637873163291451021222343014634680157779036915520207960236529512575935584708721082565523613086300597910473633637070121016766606373514663979300439078098989601077592709143391487048528518266724649965572958181956145429059520137527754031999095784203831907000061983297794642238978395255741136948598655430026620889537054071584369466846276955976295539784151721906516979938566722896048332888592440727592947357343465591674256688908976604596359922460235201886729106802888840849865894994304049131182319140437706137545866687416640024938981984295434134856103854489184661398257652800374195171152877274717186875137860447443282695875986938238164715148125834400401162940628097240438335483407524149351995561104656466839287958024452086657536599077209629555613559872050694386695271177047117299719922860228850178848012128909077189086053127133121326838946913574078947720351544722675949660387250638976433182980277425488023112008656289851796560593728082876973558762527078334523433265789890888273559178568010112877733096560532372329058665815899081349292649665827338574051744378170142834303507690027103024710881808061431242283160137417958901631062446157126823167863446061536828683386388915542021703942056441701063215936612377238758766500584619026517868336770760294666846194003810349765953899930329747321115052100855723835994270355678412216724207754815316337597207104091267014058726285105567213716444699885119931268205072981915831394471866689579572137391528727091405251325685266268723010678450863252529526028070857617505435553137923665215833344539860776689114369771042721173191797918648100712098509449535754650463407322515178647465093131854919422846605909706701105350360500290847496016484045551346448575679526026478110402055848878287959016792622792002746633056155127677530932767473392453644290896724478062348454289219263317507902090144548678954821322807421496390331951806026022722665317939498311311906425997075236579057252621208449587730021600882759115212529396994648657804456385287914569129372701680512528193659697759032170092491146717812911798424979715963132594916075647124865040841458564918242085961910460254932956700020231862123763335763417898923817625100869385472921921679894928952228987426457888780365980808440036658515355684307491899140787654053832481722262033530042143562528328599405849095665961731601948456639960432899910128734417097407327840594191041045182129995601757902166670014875011173149009828152042906968556076918181011827318742275648932315821611007584222104460846594779205585712505915939538822150982988227080672677678893076498264151881508211275180529137111917608802975639349147540265760707058740518210835901580694688483897574904496823197803651285940728470845762367236664673887674376861218878913966119939815629768990324709193967977434202210598406127252763421375104438574830350055105875111552270751039337042766112589128128481449474576664774341485850456620177094999999779354573890226247333707277771882117431359347464978426346680888872961310878571544234157744626744216664507215011310387271465630290725180631394384234258724415388593768885757642128376650698354280028993630129691404098044434791775151346462361772014910560341112606110411670568861068942149811771116708439961892322987704431428495379910137300431256015304418514409207085576119019565127757630378331813819302808500773980045466260726195214327862921272416019061660196469237657273463704462923734131333158729412800971544389163244721148052082636993534273749788246813411109924976200143185249494649526223437763836326437371785287913035503315599183949836952463992143074848056116604324369922212443345699674898089721881240530909797498621343963018045055672118096181319525807858143519502266399616403018106761529450693277281324183254195953362777604617813088756444995571780086170973540496667655167989990242306351787632844605845908865567043526352753978627872637639303901552109231925646418015212100658696397164647098362721357591688860530251003508749178071545909570948820604640986723646970131348996234968639518827011827850671592641503421255504279947467834727886135694679626178454477786095624100906391766563112302294739151967115885250686431886615160248573963880561636727156943197473122345746208639006440685300779657678882656160344643554305910219249564216516462842310153004690383577145637520812961060454489850547130918806047282416120586666213612922751037870485203618544473711029465004067248264036632213615843244345351822222068540690215900348306366977595535794851760874395082361099470072389559213946645273628936959299272940117454434894177850815246660310520149614062955789114946992469110417979925520222448069829056356269069503101048455274924200753425428256154286250986407240074375141328003673754376895734733657934327746996973969693453180772608203128760569792378855777078400902222889647394533325303926686093968147591560335766915407973956024714931933055611768660815525331580065920637699907817357357178532501171064498404589280422318911215281770032302900311485145532325895813959152176755292118475595675154184230493407570789260187745034543112005119901903257502532868509440183993437342395326431625116917177634924512228178103240836398943312858391306963921096780175268270023271131013280378694083029023456552092077396835859119278999433962526362929370750302435629074911602728638131489837936557739794721223621686109313346004114601507559564137829837859877277858005829331850081192884329547032105527236154218779015177122197789541390042821894644690240013173660134309374205507427764821172663011447343950514907638039900444999257627817256118036747288236266689699009958139684699609990189140598562458735880129324447960656228780873410327807162128978088542811071791804721294634979393441945876233334798062685810811249873087826807118096639326701368842628100521961664270284547321550906582124786273435740227865257440431891024872873442760761500505676501207621942220586407915684038438068581909661535352086581018331315091827066299055337456742533575009357634833015322769876947326390577398710737771869105299244668352325824700552517609322507807982574452999962832719275556977612623012238830078971523660824157123719090422161092824275811967758579525289790340206335215163572188826950671759753668775599740514771300131350542649233549557922754158261323240191587519406309229962759671275226373323925926603853000830887469345490864299423200922968582516871920860277939128846176380372892387790908668271918597529131334580428767524345708325971604821599694759955961601569018181480225082194882714237670002897437023535009265785587325034820379235375974740264892124547733981008768798935836342344660546014983022442507508597062089571514525214036291735547363113344511651901627643528415038542689644090806745351126542435697307564322425421130861862277097385341563521184227547063882643103989098313685655232773747164094421602422221521137609707900775287545066475001989185333214091153210341959325343386519264277505736545192240746066259895995503043745169718180628539681104289115388908362146286317701511841297200717105751065373635387180851085857544189714297268592043993437343895155930070604532030327649197591096157149203598361361977194068551520916840116172321430928789522422846196493023832194982471130788184146538334355935141943857278494593267280219100194871964576311898450308921686515601402122961148514030324789748315942369166430672820587690490916770230671376044438480577121843031815049728246531297677982864576248401611357379555420137157392007949876720174910420725968161260448753277273389784733977798633270196011543266460247873566893903135861566314833269758276431291199835756424984105280228393462033613878530914692917210329653636713664362541066096312664710458680384330109366967459764377611275414053855114096049027862330183176663017487694325806445391167921231625754632345878919590673500701398765282557468236360225614769918114271811677263262255044212981818986741387322004001683218446478176386774484039658624081295197558458766833084734226221038792222706321242363371030730034570870358587754893097508472110815325188744660861488000628193506765763238598903172309592397859384039399538681699026791853996235832806482313333007909405359653777754424259991804299583109613754743156496174123316379465796239020629656125576335282414594132634390124064170980756488406245247413495099436998983232620988179844979603586446351089944422829859978178783422354976950353668228207832252585917429587411517134968606596385695763886285776359328152203359543318978532736684023487535360624719261371394890897771815241020211097749909445664687291900623614441221638904690001703010717559858785308428215236554935315217503966244835164643170369248481694703266660927343311521943391024093489854483613567088670729829839811355154633032296859907497757978534225527280934583893464487130403449394802401645795767443774483733177521863432209977049110362402580073394956100593911240792371692372331747538773672815701313903317185421511910361693389367180093771312196893723397711000396114068130841884908662136215307167470379759975051808262234112553285493466779439751824705452763735687228955042963470851913516059642078084562165958061495384260047292322746358369106716739099378397393997913379746853754174072567431659972377510109832166719514503347000374309254555330080360298078035894193360268059277533478539464517871856667654786566040844297765523391475496161589371472752328733757973809521035808234529197117858420890891585666289641648134336699421202394710502297588608360159390513400017983565512283764854686741141388052929046439689790412838717543025400036865109167251545249016603591781914042600230717052062902448149486336740205982713443176724145328288790454173998055984350463247355768000848717637015239259699082864064294160751252745577446288614303604006267863130729126910263345414645803808712528510810038447028597322409865150596194048174819947481162633325076985085472858960135237763305980054692103980127391586021828423688508797766624036021649986876776962582352277804982325370496826246766570575392042727263361257854205508784682034470975885977323455821943531922835102019142419417092367254733307932585111999257493168337286810569984715743881605786408325179202605072922042166192899351599956917214324055552079411448090446681870372761879882689219446474489276498228821050971606595832552181131265658303445518144426648409442796543422130299838924291082311934537945523071314971394441323326393145288577412786578546640441566303231545269115306416003510553129743352864543305074543138134076011531625623991996580030098575754332070279626066807448949065636399832737938171229547394478990227077309035606047763238910212855680937960877436627682699532344301795857503590955226555610580611339209088665949899387888778086755957221567364959502703338554723356719566554139128222547544796889078785992461361841780655842899008556109222607750734621056605483335003254046320907315148275210411974477780688928806428584075849982897726981374254965906363095111654807938776466411128250125616799511369493725188628220846559649017499159077744607430243609264914623967840245929320689310216079015621838424376450064802168137427729734825903384886874842692895305122532909977376058312881858539710040593767202110736897904128599043701873706438138822695602642155322652772923289106460969520674501495960480134294474917073042525050340664840943839620406855106781339226435448673209813011429639621193685005297740126763581332870958654604598040858843339147947125665084611169191797533155530164184230731181665149210344406695278124935197651770661596712282730129153687558795896151938152742193065437434165310199596098197411051936177251410596966661434188686827971441927810591691216181659113829759818765737531452194999616074208551843666476980832444110862997676891366997032336549538408800673524730128045357923700854829205619242606530535611249478156140453472485393999717634401182819313582755117514035245407766905697868693310960770906207603137411729183295123772896333568893610690264580553871835064159074696238002480894340613633555555476119740895133234437116554383408609314890476545421558254459184144595893988013130232324567257349419457392580491871967400004439963806786508604752950158123112524782695987214005702192054696220988227902435131137450926634447858491744067630362219883432784676059957639716193907142693363462870039432405600332485323983102364552837799945419744573964019111273733123746095264418755024178567961676752686747153232587924378104538671541043452025416038180758342610727622644400796838957086138037057310605960515116744078851166256790571092551198718023957889263683103164302472615322265657556618877151516652745040414818437329136872385569761939199198805235115498940524058969910780169156057457559747801745479770024576422978330072087512771465164885507496293036634278910947870916338578262025739764171109469884717594623862488713840671767419543399948030689535412198262434476558115103270182584959500504406476813913689927320432375184410614866302333549945583291743384254908840910399998893012179091364290734104283525498840696513471608688052852442796916505602576262156766963747373701812322577859429651552651820313615326600461151385576911002363765487526604543043052073917605356632031424991525958548231607512564660774773281902917625769195764365272675584042678353672714788225877321250317380455880503065236657958857606446990770848712946630231148612071404818672313281518065908931418647355719827865015502916865760053316364229184503448177554136678968168213563789619414176516637023101363934126851694472063790839024430487066644001814015604341940037640965708806530899108545498522637747100387425242414454375652248339967076847047216407311318027943814270980320162437342357356750521050686540851126075426602639096797658002321184187847826095387726839822786289566421437605570669232880579625933928258801602648991587334520340972735207089251468253436761551171866653048098036901010782172153782041876564874099520834529810201361185080331376218436965216495038288365606123140942877824890080188743201821896614347952405026669787914115998661915148685951138354606115349210954484936220349695378575101349219221671634616002508287156832266912657991917165127239899283214032164831914029794836308523745500300407002590099897825162749033441030460732121147768965014351879834876523195133430132425011843378629554666297020769931450267103875695214142287811668266600171565447648783757824520735614939854112675137459312379959472434241645627601727144293767693496806015881378350605193143598621591289482898686057429123807436235474498638142951830043888198133986811790514187221479706366943846830963843332465802204171541773045188218743266856342328318993364029253093466704509300805410690037781855882398183645846562965239089749484054764714828854756341950687361074849914716497504081107583558134846523592620513651466560539760462809100001345150542626977241323147348963149747788009169166287531592468546532434139004801925101861256252380751919934010804236881449267565811202506343210923828949545215975595774817176495096116949812798277625681712971640794098337224567230704186805678711217059494927910560981588100610964297963779745246348392957596158231581981068806608566323543028482533384699203992593834120597704775598959653317964461418438775974009862923390380293699700799215654207392927439747763359117069741551395860771456687660084345383781386409659476969995051282426163986672437241194341440423969023703956757667630547555995291571479150177506879818958987923016755212513246703515805215915578548600666597451834222212226698817847425669624896964876251117236991876473627772190707856363414794015793990770091426482803215563849303945216476726733410128077596723087526769156742896021288549863300008145418535931550984059308997824235712403823776413786564250180683702828303746065823723456493531942984622396072449526669481624023225818778395600847441513176831075193689675072104807822569646615264396421923435584262420793924277662435293901211843922726191693425733684296629318468571644161595562173360272395662208178473345948334945445529655966490920308009807944685950771692390715214543464997103635753130333806933957896456124305900564215950326262158540856311138657432054901180822913724819093478151890752804826531590001587014183635731138034934779459448734549393985414608709096099832706410560087104506051489402255389188868805205845620265767132725645151590937789853001115901492337032188319101811697093544188599741569353470730720741294311960551754521227970314583770208622716008443701828879700422604910896905211256081186517582502914891979961363261043980001813950941130648978462641510473658611592955490472693181308608546502195092162758646951129819810607767545819250344195478437051207503326655871601820284328591197356809476174921401028189920184041702362426956686861343737597864776904780974861838329313888142488698922869891000209405808333845786396305208219181316801967824875563400210402002776046426954545722646266824422063909347534573545825908959249157181843564626479049478266072796860324856670694301592167562803090928911355631831192575807498124955775864043818637237612205591296674704174343408076920151725587136426345087892902011400670967123195394705456610139990908318456237755775896232966385029737769692006213645840594848128217040242284247762806565864218805463816735183676329753844137745269402173748811867355947180360287985694996155277788795344580454295228153320873318104159557986633618886743905433744594441402445264916808997686792732281614882358283017423904067620128264905112637530359478261826234862191303010752439648754192389660670576892529046749173396153265509992407262786425744998649074275767265460988084117444413488709594429541354919253454102067747717626998421837536844182098896528768343940254157377607736719346279077013370794959298167292025944905169451161602445787704355531688998412613750957374825522006204878913875020235341661424476248009561193292058450040429910194132633507954161337447918773329699619399601288501403427865018473213762989520599971644647635028250116437586895988981825982178629125403029989512120156873409125530039607806084937427307259526328193530923996553930401791751888417599205294733017276538423287410706559032453869597912625331314199714399412045673369291983197476402412252990600065070721433447701005648502778749371879047680430045242779080600405952239429908783653421633063293077789335463664817023089382677438108612934793836223026156793493799480945851519875096350955401791985289331442407498649053757324933607830922379516391898548917280440029912977651018984011191162362477083664887837930893514413134797604495098889606147813948288625549717464555857295931732781610322861418115981192693482246211578060425973495420113476711056775861428718073020945603782385880119485018572920260642085865779435561829007731367077805396467360926298857091731186069105917035123849062231053271670333985910912382060770742742828462339345716029827560609903554470313289895912816025579412447551284285694347280547351757343291159929966517652143087752274595702056418154762273632163952926231269959051266573718370157931477271364741844454416164410099174373499117086061624302659692266854943862168545912507098058893358541042657112667358861306393823017810756338446159868193345586428244501496835399385911657948546969771379654745807770304405414432650641985999242589108352070284505805626850094629600672474470554542892095420346733601196740096939129711941943936878247418769512773545358191532171657241384674428250009450403501031374739977761963155431118000171574047389267762682788892233081995773234682723250444416530076313391659975120115231928483819467556759004692379065934072996706071215575104888183534214910305069210013416441245538250713500315335567119578193079510547406123727863041735041798363901389911198071277697700583654451677730939261804672204925970298286777742369375084296529814254857545264158403126529810060978186729054488407552182969639132614999304464225047243399838081811017870346866865439415201896200811249874141488282399049429819440066477126641855331180766208002281787475297121739878942310726991082306793240502014530229954875429524928096099640565698008181903352085300911870753468280138637162019420148538107695139348603895027599987847556946106825241115563353225055939818924910779163745494976188849432316228120618784056098096779108409020502145166073308623622247246185432038157675580678192137508776314098515045108350818988316928798180087934760312187347731361262285084582130503430470093223827486588679599834920833910664870630678919736894728025757260446306796869172318619597237561673574301112196739296635961434182096209311983747468915100498259385380885762427139081246006217814065058327027419140713427862558245568882751973152494807718317173641624826396885387732396945324043441987022218246907896077626220735788678858995846197699191903178357417334629306787445449042167740442745691389983599549307829991987605975986966865547871423794899755906987697880052988986641636597575820481889486818738240762721647914983642015150178089999647085756201531878211712672511311086833905207405538454252615707134205410588480062228467756291504850337397868674510712768250034145979595916333099073632350964205806011243553778939568189390576382704067009681352497773406030473853334222674371794228926940770314217845254696941666998561645373424094351203254885905282930583997913776879630951174138896080614408102463861276556370513414495617832890306922932414599904968378276324358592006112714764267117192076736604385674807545295509870222524077954466240388356614546825510831996667132939993678607016212390487572087667403669305641950796769960012887357772381866917854049750514486559835320415629842257392569139358742896010663450260683275260177883743373408599753840950472377785973145630124097414430818537101832308473752027574996775282816433064677308616040748713764810792016317012463516777328034647846279946468144951060846418027922279203306087228351727013237349141375438553038807890295164289485654043154926573549943811299231108262644490414423930037806619990548975942721302555069864587128605812124949950805521464293924091628896070090690924672210718267644361428146139021124008367531755024884463942752537995979943500312782108430805726355564799308739119190760895318041007703988018032517594946931301509285833308373404320301692260490368835114156327929622213076601136593879838380415594356895512516823827666635311608697067776301577757752293777257026873851497112037218091451833755658768401852137492751012992195373053422202690440101159456780476767009718589435585689714240988306210213931171021018135340812078185759118281317556810358559159165697212689262460313835055487810976339506471718227936751923188256289612785652962760656880140322451574742667519869204409605682591444857626066748779718107112698260155672381656452835640175697295827912006524306166408577973727742227096484644267898531817871144096289259067113645933727969057403995404024400555814827114145235755056951245879399961942677052009380178454442646274190638639583311295465592369553696140283491208061424914346341261597841437305018460689429039580628595279572597243957654064576191979622201633302374909664609422510376737032656822867163497109595538929191635551614075465930883795574614347555830177910021313183445236901275170638712402170229030318021663756562035119098078877884405900670373954647021982331418656328288114046424279072011257766469727409814408297134279852786493848391088302834306009200540097053278594012441336618879364815517732669208349293376004957684109777492409603049942501428598422076316194725990490246076121596854980289859991516452552570845798967781976840508934766134207774217722057689794283757803151885708749186484601928068925143128048252471944362163244997589060747393819382923665569851114462500040235988822503995313151636680274933973932071495431786050035140597731958069979318191447393637539792848440287570669920500550302391454078035282672842392575939683343159988013107653814207238453212048091874912561607898809057586594406110984689570318497127800613235841789564265446497613472166452266377428793167031583304427457695518206871949722654334013262446738426088591600796970803153076216656242641300170149574768819502790116418679753150591261743857334405933960483465249634484091889792496119773900091003770221429796027878161956893698491679598034951331665660393132286532229481929904949272455487694131458976533111620566231275606599571425781339478007229534090574237803143438697418512295588862264209260634422562204305681651400355853534272942625226976740951530124372735609526612084215832844667598939730362016666597175287344127562141700040023348395285776312631668025300541305947746949556834599310185050028578748155342557250828249208919943047138507774260301898358531406702262506534803559728390188840533308780521268063485621449731942991188690621041804539617420975343753035007075984448428526092530136297483205346749987644673312005194353690384579734955925176683615012392250864843144586279207767613371573336858943701116268521470781903703485405136264157602247761944950545384508018583781827170190242475560783374665931876458783605126492916051226831195782666428875311367013119903296393463946011887762651365712274406216107046667835539447062950610884616183671414327662072348466209410941119073125914389705091662089330493460235390989452036794700640620796050365002550652233670674437501184650180612450610678342876753713170805018820470064799468827606032584695076737177803156872108942417109327147770858058626087779797678043453194770021972745284288879596632899890339684973402164163884678302967765660035025575995965934765309415199527163040340850423986961521360455139851517485323731316528496459856027365999527849714902656284384287767370455607762924049508560908054918181808242222276743198517604941773981021684815674775538279010704348019856454520256763918959557707667700778216817136832402933831617892953292122774617320432530884264208313736652214620470116935665964528706245275376005766889793347592585728938225678634472308842048720352852687062898352707827841167397097819621765918869870370468483451798004809902891608270587983314714386999239170086189093980123093569473195508590104164358336599985838916242785098381577421649627699912539651337090074276816733361070894961907784069156723541540696639076863147186375794223754069443501789899459817578668090157202959657423232179031648079601300996739531724882389281917843592433684034854629869497756249331122855024206779639883007620175425010807589816814100558836488112305667291875235634827093851804172151267746608738840611554697270376836236557568193007170755336115249354238560092754031124383603198101501396646268294053981805282694180680401196961728886380655943533153534410000738152840259448846387113370645688100161804583215617739600373276901717018281260195177660790893771602712353375055179131553828519844295014489214373785750695958552658167385474181120881988367525381712976385547684505421192113035582867951626848633293835768247311648732350995148699387201817482893698137306088990494683110386608811933518410801644395145368230122981486549047904314605894088728957785304453889854305011831643386612845098853548802983925768905506560966970045611577920173689932968715231531510137753252945417934518394203563341232260698275077268722980689014779226867727184282893183620310796129135028702897935078224372197535927990317266592527394825945347547894316654796992245939180604543670560364775258386843053444736670650923416212881248268166830761367154844800554026955164627483397236689809540502795464074500265243839044507263965677609419045051237727923423933123105252067435212057823918784822489892310671301698562390355129986550793360403219383723504386257000772392411148667565001682981186185147431294345045679541819539620287256757040729459291200911050988646964205344976604818468146970331713354101875970156827248108661210561069454507248583530958756376167489491215252899713879541248811419227567681818790731540610685564042331291601129868439167422051438926711034928007165514075573655400331420045538339405287779239117251250496430137321439069161141515535663940567669181439354105370316341850878063706426182799186402188343310940083017488363314993236955983383932941403549803397025021645340034223639296961613934544290874230147574788682350603109793905815078928479776582772799970605689843109544212138516957335762934721132784400499939518982974742725453784128317400520965053381208912258132440568471279769752784228805262586521901988700299867545720347044419270018944926857697954443117181523344339395050055363544298357948128196197463150166153642984251918882633501767971066815626360219941014625981164049150076115243687101559487263447177921069276167773183760161440403028718109268564751631741640519076241571771692000439260841955601110310256011958678303398357102941106762211273227737069147785757645113104338032211585769822766663488087817185339706500813791543445995643885757887097320074583857260385068313663935485859701782506084292849423394941930890470980892174326957415430539621490566024387929194988420871652380153918555405741151021375100311489008102658948475502259147491380327278233023314022795886595802039590125055537097560328530006845167424254689767086771882860431859811892457359094200997152408596621940532504543178073792568495813775456266788965301279363736224134812813569650402058791839310399806325546723045878426459029408748249037379152860079234873247794671062324971533572220771166060034632347072655174085498240955705739162395956329237948582090629928987391533668226872712858923213273676947187080311261330702707421498897676164259931243643856621407891095185333671840017188148798986333012106720425590684582005288459733437490238235366111761225230759597051630635040957203371319165715285999115329088308947813475880631466647503887276990811743244647760055685023386600978954737463542928711548185711779249503425938594855186724153835210806602741529697975460259969645132474520608271052055870145102872859442738595772960883853033444852853590221290003763048753176748832034563210071688495603360472964185460860965863852423269767891438534143493216620622803635723583017847490805195841112238942777230353475787855336091367074766306855819651862094591903218052467322489814950468469402643621819221337544595439661074574429242709329239958440606627406266971900528507614331888913988122510199695494594275556491076017413335962501628242549924489126768153536901731241018188359272118541064881960441215676743898677361843087196771023963030757710753327055295316716520974794325685069468201533807256479917257630730503880507377936653161824670468096528600003806462700283234401449313756921985198140503378961888706170756615558878371018503896118833940248813450031157180794572303681913342512687433032688971699852980310925682523649820267153656954950908497792795959891499375301716284951470085382612599132144596006280395024099394020639249435585632987907659590718823221922082906435714927740409781736111205845161610104162011491735391542331560860936998474965787473409037746827965775217281053108208166794943175114121636976826029906103400630650307802666726124221455862737329348239196580751953634383280555505541757685512658631020718389948342974967511741096688187127297292313639916147151971402554887606923020055626355065557891821115703560350057489354616115540753651033089134543594282010639744079815398617422616198259430382442273427250617422880208653078807465102982420968503763018056048146670209709173220757311699824774655537303681962581413261980892196962942111823597614590785946870592138424653119059181326681456089314669493418454169224369589291331340132090746428938678030817185471976915331979833255868240923843566981640621651267594051192109159944965202724883191299169942042430418727523922973143661647129974448059885742270613118546758861492165298341485857928738699475281777407141654534137791364751698709575682895139965519843171656274138103143403974077493943934791604632484954298487592293882865472706204721026413925199862255214392951973945934679164478617841061347914074553006797511975720417890816520005087212510463284038027963963466433751863010797024873451278922680151368942629509715035099269790505281586978479030199649458696991758055084479526960057923274078091097902616248583110409783045182630084069880150803775958043684346722692457800836763582990657176181551847168596243529743949171074949082251105796080067188765900643939355518400642042920462600803925734493802910357833773737046648661987558264171019238163368888457630825559889861652063146971040415755273669157595469006784696750805256600342937799889867566506212552120344079635167777242961268383515807966522848385913443267023826113126651261775509176030559490054616628881358960012173300182088749777611454320558018616887415946535704850351749982119430950837042019446899473341473347302625664871605947860538199092679263683249728628054898180442963512030936273980656204455015316208257430773958665944368104559247804683136874508785580158900133296231758925016401921615235575668739086755918814748821880061252666285948084829142251836849281117910104130259383515288008161945051914923305652512540200148253704438989942738161200825482002200211152169842969178989745783890021256881209264972420612883900930649033541571890503545040037541716087737651093360568319786253426612962033519582627530186790861956399779642166031571349781355504777020264588057458317720874590652565696144443996742811492905342466370876262363051866632099013381292162395182651824393404292731110789065427537303112692864477161901067481504094583614688725327481585373378792340798773731472231395387613161881857469682153478987820564274011001651943413480418010243231430895510820265284543823393298674160786800691843487656999802508982054356681519001856472010318186496572660956123297071386061225232631543714541795930110661436620440198636435344384140746975339669112278031894764648359871106017392182922939806198248465456556485956462388751965056177498898955982594210616943147551499064183705248936485472747557406019373092091818126173939147727422437528717380362998218091106175992649970149595462296584901067508465509965352502828277641613146537097505404073967427988565748789852588606831850764869437289352280186222163663249056742325385031719451473956890550783421763427254950949653915486731486799362491509880251202322655208887879002236676255269948461648678590318983419155631777690014241935677008362097388484884352729918276594153007638942641544284225639276010989621360541029107098298245987086230775679666483658660751655877527274368184528830604239741681454794398290477206114920353811754507979572253049193631377163600623787494153400387770743992482085359333784381676865563897901442521271901794753867006437157008806341505704365077289190755967529960148805896997728777480779528960911423865325998779452074970896581930547442971612890821278760527251762821701199927450516720113943581927258262545639036387138777468195506457055548323849665323727275255273078685791624909434860673527012532397670949845823653284845882065990716507059907261311801153363413611382601881950024225981621446877860240776153552932492634757792389414981601282716184196970172770665216720955743520136902532472719260151064719774628789340541017828630104395457638558781790030683855110117629386827172895624428291373638128963387524407514282358033373279333494101740073564688489219565889649215536421207404969798801235182629389698057853737220683540455053828471581048913964015072433024993487704043759993832691827681558522602450066598488222825856622388848860941044051526935365288705461736093821231532224212418234104127195713450012719405848091000413014200497341030640075657757984712778850721766247428852032172985711329380584777110867034832856149196207610710550364125416600949676885935235866759101740106343020010341868184250516025731736616942671649412819740986030503320169439053950391641241552945912348990975965367314644655582126699054266386861096588614013133470826624624172805999757666604515748515351352150907459996309391915580171267938633285028052544372275622341134866889370238167492876384332398339900093358505040431710942438504487364297834366030306511474331974376908691870192939199631534695737409476042057742928778087697016613160200998479340999827246757047684896864446217471460556807565232113650263265009899827296181511469159876660311168045280284930371227436292662595533180345850557054470811750903214549192898763792423722512911320004682021262376098623174320772488562844989886553164444029137649805377344887157417492368391073021276158912877380088265723817596078539188250220341311389034479333622065209017844438859221928373373992177664203484463954003714682707177051641985992439039251699632151169149421956630380902368425088616829553204356306202006061355457653794062699539861931292050709790609783838042478610135264293226834297043399688613079628958135596573595848839454604986900069792937738966083420135921648493138329941970679541628626257751582965993815048716187254884356265855336360602142499819622827395172643146015196577177831191663543787251969674007605257073593359984209999811030845765539769504153866210528323634379447970211320369686606334098263249745630637776477679935382685940698950472680933809023705678515949471881234875511576189666557247729603746759477894347295379552148979810645314175305674173372405232632074112208781761144006209289057596799152208988005983828153454028414268456656973615472163968362491362034221588931883817024253630925774867474803353917950472976835568721995252114052834022415598333960225513872091110872561999943828738475891258057930625232424245144942821861643183450365703652080886126262345840976642677153704164845795417638973627027777485060478526575918972933510176955325592916176425540624724477902952014259897076969072901566154893710418110755233833986030771381954761402041207351002944644459138128142996067151701189738168166165683221377527933198102083011835564049294827896630652769682456518006671151979532730600061228780577683721994816835856736988565086909378565471995804004065896656547953344804017469853802883715024766502387741203838146191259574477952596067681850317010502948243262018597951422873613680953371526310456825782139316049726127565528406904339562175792818876821209841628187525019513092178355773216418087249178294363673240094961736273674688382778868598640911233538083233709620315307084599880331400333040405265945841671284709891757528344384188387518517739418605082146603939679175429340728943678193740687190805210387817327362726575473444083260197430094778936734100466417044013316711525617345862768801187256349081038215173029317880230934587029315966846764580122195671016372042757761700296312260930609432781715757151448743522992121903276155877851054699670745790041364648968011161118150984025998229958367808519581745057102252437797264798030523154399149343321253829429272664408574454128967034721772246287375845570057195449953572455192730477271270527299490741167211741806945116173558633103397495765617892271363039651930458373388620454688329362818663556906642683894479709036657012129364942254018467175012709917721808690007087376633023823353340867140273150064829836165263069440566245441576417379732704294236383659890785613923853527273870772294065171075323763939694315385350458035602932649525528962133136042586994743331411803310181378974690148830171491131456787195950352521373878309001535078764861391887598569065672111282699512520976394385741924486539884379199709497000323574561133410251192449986185521523890080855227993504490544992909721047901386594874759878964356332280798011524107141390342372896632414961131431332142040640558304007157368907048957739049580129073701534553810343603719522296295601409012818313738668972175835278999441786166146623328062604824236394419030535274019682768931278314287986550095395023179757180058775701364078545693481137827507128811269970997010256860322521546313081372152286388671527126570347696384925517974497528760316300651364664788190037750007960403047583177183662902303363693951149374212481440502405402153959304111658315447614228873850626213750659128556250037444193854422075099097063892490749231109154938602683476509085522531781559076821197248377917906863893970627173442417452542224789789923815401753087646787203806514773105164442965437700192514278089030993503961643496629555492449402177048051373799411729718671859352092452440663800748041560778839438609943684034900844281317548506248889848090727850528769519348820886043943014569224984174652524993325231649813727078270609912432338579724977698685851351936593301770501659117900337019541076891581466641765182704494116217860528093089934233871534552813239244230028104686543376341291710298930330577521957086585764999701391878260985107325424629033997357571173526773652031700158502248273314572623568665399499889549271627480056779852715944999716677678619837275151489990333358241048998062265333266540786224589056905951460307525451158318877905263058626473674595770549843818171541935499836674688069430850312233251619939693615458907400117907663496892005797476244118824755403090797638023379718351202514675787533524947168308909920779298765795386214897182943604043103582339919010353457067894922242982776587860360151307005671832697075302090612630361586671247859519828238073252849450026753684007008662531137119148442932668790354959917852913377901211845596890684058879864950362826086999865056546227839167191059602456563309672200222726971290541539970563722264001916522787696324439199571161069580900746694796386990365976166931430236461208221030213316643516467884013622837775459047534801725109866098924947701456890929910038774285210581877113380388440855555966016866528905962341898493520477448856575864016441869304944676422303204052089109589299038435464869856705647018389896738749162376521317872088182425211692891236161064192128281270318754173994889215923721126857866910132809609861909618820165011672389335555708553565132519768224876071993223735393185448737029538629057267374956359169987789211836421256244571921393613919578979652211525732982483617052288616747748295105951973670185683727357027927929624250741279895569846209011409561572037429676623387299458543949613797236267042023340636854556879367368963789679116557809326707203094054479671345348999457968367388075702220939666361165835022095497822800223592925813114512715805134697145758017895177116218886963707189585384792599759821092081892167704199269950591206615725340004865490117382889391775154171255937421855614584489137048040893325730623648725146482976632225489236854159180205138938675760868168280355130758936898621646909346369499319160828118163199623410488262433074420680214476462981971336788550047399424155676779812161282467622245131318477952885412032364955677849045290930004963477859388452347106722826727794214477360487073710072101588585401293055309339079108395105109213159998960146650328534547324541312187056681581077268028377001791756333655576366897461314949597000478235164862204526090399815727669235293420193137270389269153374001125038819219812634106638467848978584831768697097825437518481614744618705107910432823022969693963941941029461346184063911002890972258405646744872711258232040320484040225540865131492649303777242802028955073908798051660310750934961249275237508561648235691847718015473372783198681663801483757111619740831177559604449999335776611471884130148129555219324466421843350151429176142122762453829984025089089981511042186228398360773631261554872273568180744812626593598496713585461625700259262671739130046337421376238312190286536556935990765599865634860150281384966734926166637835512492620035677601813697624926576692818955115999646012147669034955531240475431661779734272795250509065457307205106651888842663164952679327568604624307372661406491540228364684822670566866479181488372547271655428451812125658484910600120329834222336402974338294798859322115463888671488187639216336836488245097755757161536460765239562477810454809398414869334340854809728788947599450543519051055839522332161707912434208118309227597140594163052398838654467823619640323185029230017289793360410104548540953847130587547168424106984931345547644111683251953490281183637321596153569529376216417562574789015430874037600492679942917101744048126669300898999671265446653069797983219053964521533078071730296012947143251200916845165290859555271086376255349176555509015391787139514435541514441622923140628637044259118446646872029847852033070243609189811205914487067904605842070663795228717052862620976664705184204612369496977719105896344624530315778425194752067957342740434353439222459414284190084944616843862867336849442366759016306766089561046079496317180726233939684859081541674022924237310614788206217022933795912132816361693613001048411206288814798117201758022499868590488895677957653102224012877813584632488865566659134741536220923958205535093533286771030371661959642690740833567069235116765801151509598054105201795231001608545809369592302216051256991306599777273254686326891190147866706833520622983626454437085134450284792960515194475329221880433448029200122971299515328785506436132976769434596550421482829916490482877009844758411843780226766151395408162785062971220356624650306100997835399198680274360972700467913664097640800379996039921859488065779823794229521541178669642190258404147057243078193383986269437566355970597228022990252166443442783116335154114664982886355258393868726226448829836137293255285643851597365110775489465697303249172146811190547354272124081047868951410736976780641809142587226912045695045578239255840331513183952863576340842935353857503106669073745660709954800898590462352738894693235404006631488892018110809915528680579513477758706816321856048268998045043961192786898053467265737668334883486390313127644523549255470238578411058210878464905648395371754445897631174908554999546808363872889776137397451139424954096588333820555148016002411746173130326561980336251741223936734376343038631093406882608611688079570799500214338279092936382855110557019013554096499475306717841130320663149441364936964612833307706580092795905518223338432977987754164755318764070446001374183135932799366145994234655599394141534020205636003236182979537327062390294814956045204286357072922703205439348609900803545430898342838677679340970300069498714850441461480097309668605403814783581501409564126000285418248974455586659126131050143215024398476610978910255269540963949770797227461336833930659939457240371264721709352264682459042171368692565419064177614651805896345596032594509441275883016871821041305365652490955284257051183695355251154164048097485523473461332941738709813574375597665024791985395391728785292401121892756866029555979601704242523080728325259401673399922714091301369990807555556436896484496407274901076679926798468305021588345504007251876349433383752357467295292380170557751905200823749937088095421208148932953154101261327605067427162165442017407349139478942496023291134167798007637238804766656201538327676693967300080220853777177733930129569190620861216784889195824161259020968477884352332481840185015403939057679738759261680239509473621724301722128616344213067661146474037976152170209172718542261940513251870978642860497031735343006936767519597984222644170226451620124339189094849583709411207960965113860705691882937371343139518102473884479093899359833530638633638231317473022192988308634534989753856779411351133984368264783210863691035672254434961452537879209219377260526832070697903727829783835794932970757572604329003266529618637031242848322396549728114504296346043760397314749588581049241135945902594211031580703731577253349981099781690955383199470546651653968823790720122219097002416536762475690375746488580491908655841398219391718191833669518435570368295908942416001154311915277157905848129946403582932676107708012416611093498027643550118285383871694749103338115135073705834156986726573048421024808677569755706949464577749944036446990061359459474735143919159938342699141212234140004547670808784582470183877232251675367926196977385275056693510950722463219007039792538303017257136767292188955359391047626906771762684040559091343463739491702239346073523768821623931834497714391491383022583916386446510171439946957333827536097951925623586523242700996272201573325621966758085803732791466434233520084807098568622761230292042246076885542911721211219900643058490780966876887544176052106300901314042955586263033439032497713691901958904536128207626433583709050715427215072704406895971127757937598648563147414431109396753069145025037417743674011158621817650974145041751249495971400738360928174636748311490775716938290335878081013011451637819003863082988225238529884064956344950903726158712728689155933255901197588089540671884275349003031664413953486002776582681985985803169885768985346159025411167863182896488753357121190705553060214437088415313922183908834520741125869549441862875902973002341557708354977667618857380983730134972527725993359105743542236044473876906442374914996094619175068056692433888700973688721941222291240028243533701810217537467582638019900285502596650959836943828928213835484348468837528974473359138120939698044072935635131006962681303303576351575074452105799333706453344384193370344819226679834747755128633209717932092558797807546991574437092095861202873793365950271330785296318888134331755312182077831468993350934622448847118373112923801482210511864762149420672026350480266784550100445593001849123442102072169867075389312005384762395786385002291145891859515191695563535838970471382414294440993179652257558928961733314513015972968539101469377457970883255516467561507713227611546665931580856528122906142848889628491966685238267885166992551327986169560465695292389870259224640891965080078815562052925309996434266915714061016473184515879003497895111701201108911277025341334197895175486809225485456794365106614292989981972403781140644949158631679014975331992282964516459645953648058307335786299047636743712514897573852239277052686784764281258260272821220940093158487141543859579578423803816694464444558705985924595329899964887843555631452441516332337638929350719766531970878586152436858279251312500770424587751475846490524617977446974578078516421149927066749881392605457010432247889761349869005174833929844008775839670407487069597989435201543436969629926781027413709689116545490700903225509601877099009336989420577043883721972252651451991139994694884092295542696027665534724553934773545597026733284800476417544602697363461759109518985118495432974119438728827578439757864480488949753122803233974932460881101411185618252518880900044869402852427072431592904682779419294844840760499904205517506797069842884234832713920678203595498055941629343070442157990403773985938397353044974477566437834187690075230722493381835622183178356857901544695103899729946230474753558953707259663852574338584780300393252387301604032936325037638794687743841813782648425508900453163613742999176615175743792700296180328604523326727172172820054146921092717289623549195090960225268901267544067600322856260919924360454700803607986637213350925617523948450048465365446488000565765947563630098326119370848685541017247115264523236306132792303901085159856566308298256637560330031131969185189763698057375631048145741269277956721258631674022025170204328960543590380286357799626293402837547007365921637638808705985872562708644760500011895232735536318678879493156921766696646236083273817198634763885587780684499398826466488976229400565973263024277679808426673795975984067348726165705259435666590235034033826533464795579455496101594348741872395222338770698682923634275595881058456794203360618914179101162242788698399884352319338032259975128865773502887833893803434551951943277951165050605056014912026071066616054544235660230467776070715542356872053031033681196403499938317112463295940159847974524800834635646405438349768784762436294212227361305335416242717382730926603305742882031284571518350860836254016413300229522432567188702477223557100014208308453060231779194984907229460810146449059661587182649537945481389150263494266712638224245425175921494133436545533308415878511042803600771066937035361542897405451747372293910624278856022312809076633477947700801370408801688198881237758074269695998389844968933109599515291951498046366737149761723235137484155937007871465718422906278788630538271270113320177693317161767914217791757915792093255806687073690883026285825646782213885045207244784835511923094241208852085620136615390823365177006504690225045421622978562837728756302965639689130346796614229647706829007899288873360421937337647992362484903270211699793586686178281295011391176351509195007162696583263951408843365436209467065649374198656336859408303778223090567360433385158137750386099205193558706911548888018243829798893184700898659139547101203015880687070403543780708768075850473590884182205784645902000881792789380787083028892083349542314579874082466088319363835454261749591465950896669065384404496322822689383840405010094685249031911438664701364156137634991867603478691492892486630145847616583285310045467405951543007194008372678196797449501596211866766929955873263541183833893358412745356415636128383928665948415876712899175610105787857108195079020613941309580628803572877160415297367695611045012273951177422367885170510619496889306672019776210243566358086383295974808674184550946564668191114634166464126552706988261039716344783553136627305240298235501273883119876467842903364095344996174318366995867732690457883205581138645216018864528369812412016299733023512852253037484466120846283132945831518411936044279538432558639822619375303650894207301027866418884886586456682805261647658041612673807487529720570835325600074220721320962888926999041127393677296033309368360906421616066703266273516542045337369175504757867171122057498376044130098379454599241479353139955796158157199258556979828086125481851311696184901420700696392119526606715474490936915180925087764477661271847435825021392923309099085722668697705334389103972591232733297709951155631042412605383419896672532629268988736079002192656721850400717917586503105258606918569352543289498574100806032209099093063567846247175460543284489810280717503722313101148054986138098566086483008801080980973232971068102246318544545474373712449527291609837407834964907601943409695111647836524962229251283254279992144422815274845832330536689008682846195544056978524894716689347648258368236264823731336124832432743059071763226937362518751586014747472910674151451759603518733470980947287492281896551599358315228788171882764980967057914650789607413688383806539462393037399403242568481648882850677914112843434363068538220383243507947675184158342393361177893439639880320565680921674963457834703036952145835781790971799841154702141384001141161549382800527060772267893829500033897359812532430436568150694976145524606047372772846630390099176383241056952585233914122570435293121485119801592521666564036752683050481148187457213563053007494736331645184364029636058660618338949283971854504819669782084098455566948377637585156920226553282765545997615393191866291208492880748302345686417218607839823384259255280698679567323427750832275843572261904679823686017551639168339075992518808013213567373654412536084259012271441652775728437401104183522716340689917754552538277727495453397799148214263529457981989450943750987826790198245368248271934969730443781668371389455839081713017370334750601467166979187758348105890921834986323239020275687121558239506320343446724289665782905740273219700607496277655655482492587367443711256573627294930191840528706757494850437971732338283382577459874347061173304786961258469101795829207859271629136007717582347474142878443419699287591346633544378433995295431804097634425879079559441175755213782650119660984099352641826066712210204287082734193337841114056347411617280577800916106400713431179849167681149332163467682834708864458276305596581842105684784485866507787126559459629546769093471856476018740460725430790140864028272768004736112024598587354290236069275576124976227253950517502124522839032713431974525279630705307906491909511981066027369348125867244651906563846606237715357631109325523822813120882506756896809495058194299527821577285280168916970091091363068395574909767855374849291355434906023240871088715467168562802504528734240899901439040029448741903099484008474779493829452706664463480158085072495181119220695608090797981901841674410194556367077448133811172073897086248425863838639778682544683293224227775598648828927342919232483528142090338486656440413332086491659207668280337334663228576027681601688222039511383412545879105075319412477710011955823178923153554684200462684606407280202637162244393525069255604453550258497708780298957044542337355229012992363146289473084456563697303408496737429639571373691302416773977023827217390409042625817408622436967167994648633231505387968350996397885570893737635697036094050927490820614959712270911331962395019038566854635329065656349198800710394622654513043965997556358357981328653722260608748196635092953600382127207001589651296323827974645718834675915253429293775300287549387286079792868098148273236493491644886828249179114580887106034023494203270966196471262182840322407842444694160929505430989280560485932952418738716774582791150361022970255539617188334860580994541063733728079960092208535603789060229985649483330326671662576000305126862353021706767566210370943569540020622992055557588561013333592814939732599875696338886165334957324658409635192874250860172864743727264277294298533376732981271198233239121285838751670312142530935502364986330537306164074225634714170652472187680558721399826721856660633122719447332666847210726356743709561597966941537043996023957443969851316101519312900150792424878146077735698477217397598007591431248778803502631614753769325710882434848209594828652019044880227269421444124435446896172935540019806018385090070028879487212172983213276955941624206567077029401202462665993443901627977734488817820769348137475656637163733003161212053779088142932415900668274051836906456504565209531106169735354696924960265020807038192983060941612054101532989256530860425267340271218651719413321710366446639666345771262167351249687565221517150656756959424262616861572385427801462054016202631699188339652061718410713524748222487693876128916945420430643617422746609211682640333488850855094029664346720033614162495267463305295381435395967500483860087904444164941928714395289330562055065995627778537223244450611095634545853097932871406289297418966538035428627823909450612000155295629995249762160249267179485324623968558712007077678827102668467799289364798738019589967473369646732639666401811352553730416393370139466389421571394479628575099129486786982903722953042449208885231309368730759119225785922732244329589348249397162025172574480655952631480739645478748368258773272757428642444719069540328055669593963524243164990985386417511330061710868786828937555045960695461180810640907205929171309292866401830031446042815413024281891029320459496444853142096470859106513621404077790084564083688886826545747093121050226099923798741146787530598684070195084308306222779916324897337697655156693888194756695159105675551390782086180376371875593294764858996154635216457255519535223448357493777733704805627767697999369550971221209745535373053111405379382727505831011764152559130488551864898759818975382093652548354435604006471206585176235767957313043407220585701644908310912891982977477132548707997539122213028952161023464133675734605495094349026172137281646192060133189114426373745757498367689819716720803510762393522215980516013416134813927232854282235387276747836557574652037403283872858187107637056706270960015333680024974978543369370603922159345590028713734436448173253493095474875788360306449446642253365800956489830846320505117134250133901809992827962322984791860580217532923739009641964857875405384979354278582557366847965226064607495926271575205139786797141781089066057690245365739430092348639066487499658712325442908969291644894707327303352960223040174815870023914215740585194309508779713877461939673345305830558565465735933941956968648253446743612369060500501713848640188222162290072534979389389135434198829373415612582361332751051143982176013447838659983946580306497169976098149488821653307224128106859536592229154803357808309542873816837839234161428409047932220856838469416523023227626133138819039686396326995351185617059126214460671705286161207288128916587148314392381781274132312226486843417127434942505732896435109515278144828629198619447829457702362035547230849878353240088718058087567589191307817791800645840601472199056390081423700903654970240480053375585457882341261404950029405735694502143987034817580119419426762979420426654819902195761755193502439515946778987451962253679429057217064777916628184964862656177635209762396348498025496861597066840753349166462844936917995888305065480732399191572149365578597499652675518118587675644193496873136832816668070181834763142666506770920944904289032125733587220608236663123487221481345143977705397794200238694409724378393184791721816330761771068828059402176261962569273962894465547953247449958578079028150726601322846682862609628496083957988135666998048856500636728393844748956679889144635060583967077405362488088650695720896029360936112232473462470485948061033512942250377328775738503394026237379957996665447563633920093186362714348115452069032050447621148050405802608295667785094959391474821043187701812351744326707437764698489177591752732033892940478403943291906446266789978764032595376664311817806683246990912151715577310385475351130607812369894118295664321582048562503886942647906906863981091952521200394190552306462700064435668874148233539174251958749463399449199203059711975752528050355765326001926666632367210116238209177024730415301327862825311304210334257018221438670218793558925132856539729759682195287771253166885171014920405255375813715456209589473299982675047911664618441943725721407720733003931767077495115901861823510743758646652299485128772018103531932280263356788244651762011995448407050762024822173712194686360389433239914615918203020790363289167189991617649004045334771253122546514507465535115865989486250254890701152195251232586940909004266823837592205318958262570662484329262460736663583217773035122492814040351312651555827353743118054156333831845673852789459229143630448264691476903968401825531985195718319184632772339022791372520875208595429116147155525230850235669026168511641708402809126652397671042090371038052487169606995693488852407360489800259630624872680610798169462788589006096969338491133096608124468987489407246685287002076495277922473796035074332431142774020844810735114697267784283718362458009235651328200926927791523688222677093552499973518225520858234707852554878597017437450854961752680850503111861309661211947139722048922668870285362708128554188720519199055830201901975004745350650648815159539222395299708991876484661668966477659079461813528820644356460429627875175047229670711855434640887038274252389430025911025140236606383931963885830684912194846115941800389298486467516617799515007719497259034330917096458453736809420588815685212078429470107688285790646388748813707161341987025305221817545805996774292438362486122966638799273867696699760922422756258675554534955372621313859300758994220942306578640883586621666064322794672766102589989342353367289508582741695939499430487959170507993229504129827890308303332990504005984255104175663945997249473314495948996398616176431368487513858116926445828667016825235471240959985648346676004936448351992484759916537927296457834023860542765412187825906399196064128156856883568281843585145415788183079518148833359955687316118355134375607469092536942602207247010741542258954239895040963740352175908552553155941667536809856823944799720814191813119378243357230992822159424892428076771496740450195831761539588232701731289971132326086599719449402772868225121764251448836863935557591829719006493088727197900241947341028129892741669901429370136136899532144251575388376815897428211436997367883482390246222083643595267023685747556736929577985886038031814071045780766443607816812396200007412920938494427858639633216390473756832669261420118711421045419665908111094703296451539063704012221967758994099791617351989003078862829590142054069855984826540181623071949910140738601351968339335169479010291299106529511867229008605046443929156639785886426453250296292867936449214546865085544503447014746779009046243347862835156475268310998144968606974961761812797654972048416209085619478813790882221090427613770038231148087274044608914420379133196882504959680350361418074328605194404686116535186628847031660434750248595199113746429919910818972307695299922149173442132125755556218365256130408126610121946697161412704081353660632553953256272690697961508059270102652665986120397363399126573704809691724215216145387050645189109679664620969520078604128758452447332002494408801471193212668593429218644807902836222679080521231206494937782250362156098025947817380780617841130395539832041833900674713817551671136228784211362949430891315662195926387428255093886090289601765088259700386476477685747148094269677592598886462947216958562848425867471948220313217131782786425695753298239890413762467596263880573292078981522632495158877350595785272772531918760214326481448903365196011935033027336243805664117986453203868765854110246555133125060185537752260792541707796258686265276071111687355867476457478912606018199694023476226641993027185125515529233701293640137223900167665039762639152388136589759099155493742008655172277559702490688100036006899283658766769274353531529790066202247603978767448517640089247014559101867513403283856381968619670082438200194848254375506170841630491729836655548032534949265185110175318122464905139279041300766526333241486721374791079493295396337540767824588633323962758403677503658240090625322799232975361801424238673996127697011934784475957508265686166113409143295275357747775145003367467681255139568301486485219330638374268134380898894245889865978953945205494332072756614688196198208221140265774109625404811815022195556400433077617929847991924618144892494370351491693688694109931910842411644881532891731129885267114863532940632054056907843122301196626024933441689060646761440011188310674501038115790685862375656854099749658114298207026421402326200861073356180216154391063997834958368423759602054631320746775837735672101118985393372446809132462535818457208115887857217438988435084869240192032184210176537052046147905834983279464396324962994748345059512057761954020530056466492984964834835281698580695342754770386974014631996329717138578435670111476390915275832625451487144588364669584575217659103045119890526885610073745633893211934867772138192212079812361664545346784300846494032679567556517553250990453515173069926213587140724296956171919174266982105948701536514384468517738378060726761873582648643619454107372241387081463127914990628121113556044694354314514431365973196577782907427459043261454370027105970495492050011750443604710432731606652715163724588816690198133032547816226391157015359406553328274319919622484087957752990971206680485251751820387307506337757885270672370336472541995725073053669449193004708868641062374918635409872766374346888524756712569626179004072795832746830736053717147765212833322327459405717782577122898636299828847796038339522713681426942462037009648224770608236082400309150481941134277242181506757097546237779912390072225428988033328767545924580066066649391633198160515272500736465604819029539006432723121522544070542399012365515418260604335969795485791423803831298426829711094836209121727585692686724779774427672377767281247553359465320826779568347958106222603451660329001842215386873836006311840682630917321540010962492421949615620838319781186184510816121671996293736885746325962071346071115368266476987187526356081069930532885161283605681736754476554808657454006917859933996792556287465424932734426713068953129819835285276528030463118574178851517947446305479610347992816377992177689385892582343961183663178918047470473223844062599428293621277449380599171980312665010775701012308729569616026258462069652261881592908209470430026993128505299377830085471071019212799462975596563541625399403997468552250181819706973766314981356626519185831901858888447778797445221741559731026910625463296481970856969272780759021419432016069306232937886408614618220223861936282339268706705853235835428333299478883752509917770221742505105040014956205832762963191698137625118860406612939033647531387018273087099751960764335538884029782923416192347494012430717218789085203939974413183401706426372104703606139465658459670034769463199097861161139564884563128377575273943574021908382322006911762123227464817807942123916144943723044277819393413068964111543257944730660309068797531396194741451676225765485158218026612019618753317625838375285545418639939075850992828738752994702818947402398731153474861824122994026309139862235293368499936762670843499528562067285111006695293430606640847885556891860472305266869726968637214521829787077515085515065331973847520529288983787897218509823567075139889685642041715114161091048950999141534527193400157641074358202850849349218328426260404176112455232245545845788223214315063488313888480807666962295895232988249080921903203428945255548824220505949592181570925061864975702952458337501480921748095306561013810554624571884931405455387322655697561699971948636170770729667947563783901683834214766651308129744865009087333739936194133171831832695907237512144727916054058407868568160079974800684097027758993788038620159129632188741563285238266608796553891772997779337567332030810306693004829952971391212086417914088648095478667102026483077738784220878937595250452721688946299158337176603768467041903371340714731604648832880042354925720880877832699751282911026798810787221073896416465031290554091577865313615583585400023886208677114123116650345453315715232548499021912389206916566904760135591606887792844808281580470972191445487492252652843532787804949603204454411721837990541320798952004195629894286587886405633209873117129172177484474951869689282441508851800832560159599735618755283361492266747316956500440854181368032344223835251865273685299788897860379234858326346992024193872178535979066444517840059664757533722244920884190208717097797342173708156777237050604490631146804656537792922305486301430721005468652468315699921745242445688531922911250958386876519373031285263339238654237127754900558668784086555969153553928509561765664327018938495399064565283440367034846855341151108121362953157204873734754032699873250988169911722198986381325960562083272081467838989309180636388531151666569925312065586501279631040485722962708809098262502803582947534477892174815157153546345835703880957170362868035061038679997429139991007017667740790013185435838953988693699078656106250449783311690029774508938467334226883389836962871590759938691874707357411462834839466512934715435727118115399027473496965556876418491859330019061607600475564740461445059060328844371502121851715461082172281981396521569896374499993964590092753134691256467376299863063687322031002707037630709431285258874907848290382053685610134323073936863251112171592796663083354490155588758972275872766820929449955195244200722191268597376709705872919845469154858799892420814908987906043716789546950023835462063195377025666089704262579390996235339539734156114187166360477057912978382838400311559333151928907472936068487716194611303293007737795281021274082726002645735502638344930125803089673121739985260696375203732068959484932776493918613785636284809014867585151717601346696723871057796708380227035665687528739801778442748551018657507416685983756341187540098587986505042985953003190300029760762108954894686562457390386102795653430192951997241365819209649195414606326138624131029208683136527611311177169956784052445009501503846629795670295892965703444321003465282352969401936391426922792532881891350363374339441598566524249792992788946268877463158490705003417607941514603627116213329722210167532085775215155963172696267212159450414903079250115369858110485082371673706814356622096862549580990959212359076121853004249442498236592371917058262458173581972694989671501328483065624128530943192445592141281986211074448741098215255349431498542191168749154264307648437320882973820182398962321593888639914814371775966189981553451873137656862474952516617279146082075793747349785115080242038495020486020772705070541505921742051150094016672791748878123694063965490988912458235169099799189364415167420913651841385308382212489002883031485138613675746611402478207876513706881596752777766543797854472956440950523945202126367354428707603464142407134331813830913212573683213644414921267775810659726898164092798866920158953076946886145798514935727495757239264129253295785363215242320404779696317611543275302402135269298097353674513815107872830936974176131036784802103791696234531906758472633821766986618713001069316680357828472467190957864129154654355336379759212130764415801274160931977494775326333087856297620092046271919208857297178833828723885017341648824307000683869955683740585230817858214715066809519523336271060156557893350893438024228642518903655083539204942246621822427139503816541981785731197476127549774696862626551590597826979578360026735060697246499050563916863641528842475525829722925190395706739839905554614959474351791369855524161324413418728344186857741961072720265268855110648366660467518090887920008137293236861571841934982153157202851722990674010964342241140941599433076688201122746212618816134221032703338893003975365847821326860584960004882344345292331794743844374403160571721853842538370961546007750844227010353739341879490101388755301990164309662993092885599018801401750804382543968621549147469162166329079925717012458287982891013713120452986854551369122314290850756379443339502349525134989652320997173837184963157866608692745620577078639012542297322846416529097420095960925155088128986413921003798100372859689502386087825209662935364022506214596043997454455717479602594615102348525327195004464579968580898138642614919858525223908320936349878559947178951602396958528170330417800836689545508560148289051454042368001612783990829905586974067858131978661591584047850244584632316479483565945574778738138872264221320132438539515956554935524927893831026971995718323417404418844510853348485809680574431343108057028786917875262288530356220681616829083332989824137122556206516643835784027850989134492887548900550150112190986365227892033629181115942121682883361368456431550022284773177124575771631966140155640757704667951416358246136123041198622339657001340407065888969927730605260042466105473880790413426473081707632215378468936078304336023942123045828951272655699505662444636152305158717724231807820495755622765632198583386432139701743989108720061496754329856413694357691966831316206990988465213082774361257163618078465440265604000077236234541237044429775806728027861248270134281419236538191510581343888741428127405897000797638284060618972601200783925470289359269304723442908326678639166521990528412172541004948789716918964031557910323002967510289091844917768535161584363489271309333943193489883600460509011344377851529022066381286687985205792410106030091543693718660022559946625237763602588061363871929127028275326641581512100104776151584889391495807166498987591665145470768447962089229404251590433600294872228514388912606460156972580290697597451252340908540842817425440020605061097298861558851838375991603810613719874512236129265060331452578023883190434689175640661536394498795078720654870895342437016673776973659766033437852214037847677931421380683439310781227955398684136295452881014640294430461143001367349679562830987610043490048564659010419484809534056939642850588526965814471715450731227252475190291188292067151691355307899810941689260041486222371095146813006383299269511971451640961119323373568735615275815293146671984404772446977554539742746376599619822488743292657205746381847648601558489235474687555786266561934478961784685273027508368905532393873353608749519615621815946056354035102630296727621863405395968768112241268241750563007968744271469627310482094005258450912059090365328879048134149496484676185630475214392969653337406048256851050907740834866462755364389702497905640028130742410894815459764100159667814423008969496277017386474922182734412521362258740452314042734624063020170127925822799799313166249703101012684910367098600653472393804554609269814544725468278701635276274664612938552418350786835995345778057430692937714039877332742840778804450326494974980848629725851420657009356458060301494337502955709670649862074539337229180541422967848081786557134962561544407027601006595368299361645673928734365638111712360628408980091846790068620031568437606292049433913946436956817827162151520241275801628040740440661007361034253386019956494347711766917449894137756010821557413826461018632360562154483353952556448058590360945285781742555084964887031512427504258274309666967666603110012978380486044840155217186210161376778642112201259016648201713545944040236554514412784127009651259628504520441416132179782358635761985532248324619428732881275581824030706162690772468057620931528473302467389433590349212607462185452980827787916729150555047897370735843159768570593898084985804368983555616026983381281978165925185910024374142298832926532286147146144533087936957082056812348730141958315529263067292194749619412795306076703860825035949523312645023560480728195502751576677991530381766405467057297695954209964678207867219074938722011243638236532584663783903183072170822518047092113879903659341543050876842696287841954717175235974311454805831441774798715943142452269906776649703296274964667700263654988970858136388412543170989095071291379542579279401500662364021858563985858598638198856178126890800279066540332726740915883852196967591797367681564586963148192089247621634571466578574354953327057744083597729017339173126660543963802389813399947181244002260251608475516646333553136417764179655187916203179162590719793308988009144506475318236703562145133763940816101589756925045676189930153042902879944063078140308555333994446787827186074974152861886481831627293893637517977786367301805176179580486752458059926699461802818345890330048418561738997199714774594159691375364213963045118360808020089433627082233147952692467946272763425538792918020844542549488389359706185851958522055021521919299602903051697186427268614446402429549680371754403184667393394560801815868789068917750443354855052858058453476365463281450504983209389637249370509115996479817581406401552543385817084399242115590724254135705066371514423314628408836736041724365035699844954273077365135515013072754232598806868289800175831966451653179051405098586098873776184022238226324884424183762976686613391500897959527511924120992904768689857945132480484678013197528886694536103703426700062740656730240692234916240479262103536296112638931757452107537644486072499295923112818776481330749664347377824851488883581835828227597623856158950704649736190490566036833952213598705355654897817675752307692200788896402308425458238506625850714078407245757822834728599739138959213463353406445346722549388511346069663574765191879943115917271988379597535261664165076303063744181350921779188902488814419538034066436719004359149647368915380665776592715187585303472895464389792329832949969552241695197166608514331041688149683954334672136120576223455907290037189912303061636430827576363888506934293120270620061790390262317101015334186053038508696811183440193265663252661850086578430117560874576480462070989082456031964026748149516294894253139014918457770097776428474541369241758849652885788919239770600254373009736065293746452550252505057475985249158038536435802192873726916067900261244794796427819250529850889828723244187277031425996715318488666123705751298370634939049359984761171298474331579483909368291688888692412153308275345619029557096575895446009224795506425676308212656068557356402420957014697273199287101260875252410701278588836525409867849385638114803428408796120969182460110650408712351037283395909324924876532742021024184520804190267540217764260664327866724451113241987443553958872724354816710085111553657550358040271274685830901079826162086751278856777701997615401865895301815056808697004153236794623919637024058135383519959254887181359693242721705434725010889013470383963543668959170610439784715671088870894337709563252284935953824763888765729111894711166962334628143806279508829886617462895745038750123726309563435856702950072486986174147698503413389898166921584250749975936436839421477178099778941696604130470252221278311492675409839085025039025942184234964301472714525721133842853882121056972339422377109514352724113890398079668839378808027880376972311388225076253635198883539228558777767324937326793523560430359600130949141315709382927544037572684190101223817602075091292109619858731505695766785587755772802843511759691772300093605300446051469246966000101203855514747494892123701974007084706092595678263575510838301960812199689787485188831768075599089349255120946909217993210915359685941058763205221584483456565528072821372727657052797305648944837867920157655383810190635050975022817236716702746012196628656754566138234438267049341407696509247348652473415772521121798370535649800211908316112540644426785347788436166641523526596846579114263696533298524285483528900611176424576850061209716474637931888369694877529704301620474974934098679108097080071921337892106684019433710452150412005230526160022204043820953793377277719537334870465367433480805423553247569378911155950233867524475899932623918161598667256291840473025758944602163826495242974995414498560989667912448729295120538626464976371317644727676847789550469659893440498839578902554379503374058388309707962826201994420558518992802464678570838455436954785734028427644640934865393073990378336804790153421616213728054111228177392391672702689614520828108979336412317686274930874199288162563665045239289542186107255302010304877932072501835056140580774728793837681731476994528200622643303998738846727175338107935781814540516479283573213504227352873321580947747200330488229657049167391622248096174172949482777992520779795799384277217887494040092979187728360443930128863880966799946281250061363112864487021508026500324911137726690001366183195418670087506494980642984669579386007309551787594233809903241387158049722648435525725470198212171160209861592872727133086251658540038441991178204385144327766744720631951388300913158870026984261018167320294824821519716100900020810433698014949247852088062636559768720564314693327831981719155944669008102151414148985271456860870886694072522347354681784280721854576699099348155224182118918227179808485789057673254328548418043875172532316909633350410699665533396316463099183450074153018129474126881711814749738652613277353034483844633406197551992447881818885413621837374133128784432678193222874459873119948879604061739212883643492863727668070712251584914569875437006979471015646168119048295780824192290204221130666205120098614939682739671109192909028064101204063066481023309781918281426411531866192688266170242533564256941845358602081485512805705950114156048994912593359821727828319920121793974254030083476389457531333361288125734595302340185437550902242748300915054544678115675837522290585318721836706732939759874858570601424648045147083221276526298461559139065420407614547465572297686885875666096384579490931204764092004170149518061003122058693961399215339069215445334140368594168036706373839984750729828091294616395377148899088623905156673076421756501365123658315106356077552792076741263174383688681210432250133523257376337261128328269219834705977349973997892371042342688402456122030674770394458887580141608961541036923311486091723566652344218168030862569146954662889673932872333454295407490201593633941435699765019703279971411330903415005018995088597588219746302827271069607369494171124613692690212312396612976774525273072647778232430591096828545734449022627043814816688413900383254427370857019823931409277746802705597669174850622508977524225819888653615674051075657473077621012038313091297680918300735898014547586911222183877353071138265167043519577768047257322593636401071929090897187024773536670961040739943434568723383979837443859904983663033152133416467386787671450242352780056337754216009286561083212729728368729095732030482456234926861212806030755134718954338001195790467583039958827404311937843744134577866529575647620091080564223956647774459355783942061723287940566612163870385336642485879377122821696327532472140866954826197976438822034166954055954365954191675383522537499744960556488828445404687842826249282034641831149532947800917124681310690996319227645516495385399586392135833147531611275778323354032763523636070605279992973557835411063822581242343862989055523938620438700478487418625480526828861911075191331053413422547713402708967572437507500688939883673991147554344069233057304533568189147795810619763324957312974280246222223537529598089407253922907398570037981377774914320704961400893026246377002392743523065027459125286451864385857882903766429538696512764886057244557904376372110026685207420402339538724044653581617957421947629791673890366534831063862078645966401953636848905961512141548567882179021777816000318215035751237862621104797122586969455374825340662901028882662234429954923781060984567926625917179072569081343979206868779783951161558198693687364087819322731764032851260853628427148707489002549030613662078105382253250791739954001551439012078809185103877276943739741576779372765205012744660817539105279229287280015513364577831416630027230537057444413626070167393484752196217851592022274238765811798672835371191806510961308641324363781311674330537257634848029847780252545218232580219087044758332851181512088252100071133186853359784561668031815363023327728080419656767412893295912553441315599811877153640300320642394069669085400588028294090874472385049923051494198753739210764841038405617342440733309385947907380500636241885805247196261938459371251863869511890544062415986664222317169180973021446863247119541427254760089350636796579243343936078657516166408180917789371879933571741004650454160943531852486749599351384594979776638048237838154378221555250919530080415668322783728384981014165914314353303804553955562873493263996885538199632590632691755604707096015845282187706194020868034261931272645671644680185231378911924782125196545187892762867024565889505479133446215932422515293028666677203769980756428869389530439010264838257715269109882951914282787938938467571798041820731030882627516801325481804349785556110521608321158640038458557398435482645981696974481179904842692595301177927591573212624934718578919341049011442583144439618811944681015848774959428456222828170418737711570023285548093022255727177546546982113591021011716344038943419008260360942154133865687496746820404773682719866379613595452951733181057757669956649547546780826986090787882967649272769229287663757945682263906298763232650437885592276787774864577613107361959777957824386363259303003920016272475582220132584141518753096175968254783220332177133458626706097610734621460054981605077489004827967261215605187765211616147514448559561450339493531261364422619851403120721434543040139703178338867231001690771597440173811012402009788277512971439985121990859355519069544098131409576045830916120210400620844095880159942916012994089399471008457281638432955372309410667623521913869142825223846158430001123662160117949457514225155057519798135330232381125670951929198875788061607539802740795885437000650902650913766506974915132288303282237012058927799818052555298385525574904622922587189885604649097547286821550299097410033459627473188083539691236712960888186262100588204806191354234234366409718455877117563863462922113147523290526343788624583024654739315705802842804554355319377380465058549369396155008671574607411907699553362682618710986245388121395458821297984736406100500660221456715394719766033739582369760750120519760051907825311321539479944149926563091651967558886870910487232516332108543835701141620473108504769076156056832536293707039981377307225422892970311741404628690942410501174305709873569233310856114935033937909573409745854087445784515870768269027286191134986594965079392160904370025307418278681289983418304694537343491138955550095048985562078671256499574302053752701302684623677872018994427905480933077195870309088645437050603008025771949479331173903864896445945634286578776311090538474895359432244503245141180804397556312865221482207463334904950722167083097329041280449934065745554104431434291110457302974449476490254419972566758971730653770228833682033556454555026242198100065354408705877965630554253185105497562613153466095830388864674127958736343207021987648911251574133704094776812909886635630952306670283729486408694319928166350686872645128761806860502488970465452853814504747329265326103246860753108668823521346706915994492230459665209297497950018771435369902321310959109859394669792103084475645810332203844828789016429431859342076650557313822697755698034699832283083273668908627946519727169970768430092958698647752158937540140825344593791736601100544393988749574361627809847254228349778198588383681118900007775863068546589041230382185200721577574421051714634087159445383895604350084774788697699321506997046665105815187681370372835194744384166611697413055188036076428689304236708289857560464652895138669808451708682302100447138536944841158304555378053916896231833961061308780762810126652930047062120918200813391010131013897406876129201236012190268240491365134810264583721950470594863982467096252183693475060779644156240453253169992104381582146570114538470148767030463170612218146251013239604058606683095231579710598116357150191723177432510941640216907912302117028541551662941822836869707510953659923187834428401425703094304327226229871120639854436774497492204233786132353599913254733553977651615509065002425155050203196241284281562841871187137602302977372928095075148977465984623893252916813909860686282461926680135320315643380688880574488940313572124061112653226729531434843584665606799663385036030607180880817800978639786559511082713073025177289251882157226045854684597945442947792285356763435670335985844337134387553969059996545870897936228957291905848754300724777347866155055304790805738193817433801776425022105839590636088593256059904208333948584409242689926519878088543154831678822001357895513684733084751463822018766484584176040724570672167831520241813236855667927815275255449954908274600178740231010536621218195178809695353664383361867110574693160538652921500924333580667827109319709528656524632507496746746811734957181180769914016941435706089384208772040850331915572434450835852642554294013798851443391941049449333439456918869787350412699072494486374890135508359972232889527770044189144414652027063531184023900386031664268554996004723483765567045249347587161037544819454152272149238522586325888648914072022531532265820056882595756081003381001233806663520587175450310553199399083035364506926682000663850917090358216142896613008247171067786927923627360421099204359353272151336704361844715699627221544917218671904867923089995669221235364955810618026032477487735405677092919944138668975568965611973182866752289126432534429606706660963018610081375362941846460930870615618889014873110902947389408643977569313546820172812018066314820434680195982947158866138605616543161109478650429558353268949928621275000289267836795562596868976543158411914290989486670250248978264434743502777057362776175006546730250777820707731308215786489133923826247335645800713813798411087533204173914795219723756207639852917211109428322182644273249310600782290974586127568361386835901362912155341150195754737562651837719570709544860141840879373281814051159712872078862288389056320018808637582554847825730416161501703882842260983632393912524929294091852499695529792316682153128831474779660043477819631667684606638450088117709567037469865190750050073246202784627460163168260717250356480105269599985621262576647967030849179739895732166097480600802296559041544638692954132685314532569157501831306765220684353679791239973696767626889381047542090460798927944163260330940061204183075187312823895504133940848681549860232070787206285571623158195370218168143870897134650167177436928901742445271752709685855108291440034995633251215282877899078143092880708910824630737224069852464086501333507005065815453020609201361529733429559290241646649624729011640164243195709113252746021736657023644934798899486165912174539717800558152936787702080685298040289729475189788552294484154778026306598690387736174935223341878741427143148462557945725807528957606183498642087105627718152792348341348765364690743748346873871061287415800631139271199590767181230643013042454697655879013601587054257580577789214319077381763391106694517497479742620900057402045561166987465467032968600548046765348716200857289225902606948824292194969031970165569867690320857843844778871261137133573697083806713859706981910836032077868337667085909522678460539217754453965383733233144084352683240066369651462151424744201086615047639222606894772913174301108844060093382693394354853246918500210814457656982271015454191162582722922625594844957960648957268260716904381020285659836898367460155824591814789247703189844894457839814793193293865669045829450689280792573166260662937174539087432452278766772205985329499477824542703544099046454900108773184879786315639928167311854466779585796656318535215204511248105593578473468615486687238491384337893339218711469693062018991202411144577609070301775643302879918802402367865356454693579174877515495409672462608435808438376807696079038308581336885797593977771137553441825291612765961922278076246262981170896417028270859006643943482056461250433214399384097698395967925135817624830341402850518351977254870186244905243169425576948280424681407917991677453941567655925950041005030889972743608568038818281253657759860714711895889820907774389009118427787497107223033298660783342771079870826297657479086060131506278322138173517550783742109357802914185841489835368850375371201417748676841536193407803270225141338210686711078923000492031006285648316934000826543509976031224544978095215816323788551917929246459873018795293424671472976043400637195059872490907975614649071257044322621036287994195799442934292651505170237096503066210594756033125314073004150967302796881637925761707172798452324658830393819472679215830159870825698509858812286638734019989212031483428937191304521426202178095724772404741697438516691228066349933028061529713164645252562725726928986762967722043058957699042569362046926068002240467686197950114102351917006198533220812527435153180463326384885137483339855107963872637812247979801226356768945624143741005090621595554204749887997952460137198324096282592648225686298816098157670303583316225611413567923521729008695736742283930155958089493003950990684884722079057067253252695341787258289068728853382897629270884524940267725487050878512102282469252077958786562832627556790268711621505059647530529971007276720123844682374991609411113130756828267420581790894295462099018033155602283571826215433449594093524189275124766413465364544463195220256414962153730943693209125234205251883625926200268875412757208800811839321292056763385778761650927787131882751627707283204968670918053659790087521705303768613738331082908662200519402997556055185990092668392782204187197210412851011314335962645570229233025494960159461512848801693552086820052169612803075581620889569907684793963671132667764315356495483957118407816936430025637956834756090133343480595344308164121506636961583970997549309583759757007749340266143607567035804166509898391704338573850581461886168935216896724044606069630989780874572383419322486164941286735667915674731760707615944477696758341485273052061467363794061634525018503294992719194788119174520989320210568593168697981120286989354139900706696008894143607743095693414640280469052879179627543241869055414885821817643868941458521504816781076983944555313621129682141677230967462528870137878458275306711501162858948681454050294361575347580163096189788437889446341556166345585482370024014442571836867242961024854401447115415637910341993273670577668324916826599611398841208883439160319626557893410062369817132968760444326018465100673592066609018011570420432576929696616223523850220920336687843027066620535550772031513183971285684107161728648109631885564359136814102643492329370205937575690899018480301852149695021389285675514413166619257262342864490236969042754440934340608444497542041025200941199322106847172415012922090522789593677178620929453775718924547806891050097268382781507814476658377908313056896976836005685625238539489805146545996795637026912800786475086587141496223118806766370353905765696669614184831530729751700716125214322678380079043878937596647344948824216184112104488856810159489996198212420665699158603851790844300929665012345548980810468825221510845576823312707507164952860488928569852685401627067676972405067410539145055160126524431661773554652961744906806248804464035670604885537160132593012643211862324101966564251804457322874362350172728582038604103950352033513076412223840706906021187081570035684833771103386345788601554978935958261676563796193315788354632196450768453000725962481102592439854976133173707369268202521106944818692866013592838360083954628238828337041607695026974592957894918403958006525872630641502147067556091023000635964530833361960595982629949772776930839544679253918422189608998292538037826522598661189379499123229517415304223419631214164242472272592606653863046107243966651718731872903330387251342061537882022956805027984550852392813436203571664291838048241366506425236250607417168869649210958923808308286556730055786641367358103171520498002713723864088820199864078640901271202144067394265256863264683156452294844896555960573209734397022777946698754223496046320761196555675306068233068611953015763150530862079534347819200429705445661450022746270191588841758514170615862438374288583221991307045544536859653038394924523883388054462595089585092959127849120533101321513352071188992871775642296389497534393410040650728444831858087953304417916198704765156437980596328135452079624170247809766012736145296544053282680548331589237804980678173660923445282274949081547233082076477866089238150350158425441215023637280507646329764072730451840844822384443811091686838972744523147969903324651858851403143368406840238859853854165343923632029757086464212365283869645625752087727136122165753086354311559701536015135003369116427025188333193587805693126747495759350115000680533342164502051312224028611619497200862621323562372191964251921840285983926601351921904852857685984206972819970341170106663222093425144791867834478058523334454742657885997386275168119723745762217799361936882613206926598756874488035771704215945575190277712416568630485758182307940293297466436041617049871605303225226334446146192930508041162293662997601433038488743166525891082063145018682124980473427696926832362999995834879649566433268499876297151856482049706660133190421063363212522615524766766955602084206561900107991155849735687985973580880256188446177617878495690381977798130278445498481593479717246052374104972384501767420806820665650432560050833072860461444933906211492561883579581915463246586823210431631733310009999162618437191879481879127138737847015166240418676467870739588830840736894645922572577892521940514097536311335457761011843808722356047433216137373451197414057586230520737190862069989102416436649249291970166836163731907552635634340022842633465803244192056498170289777669191723079626963718895612519869002160441225231591730751614812898044103215355852579200358557359497810346947748352736662119558805371819271687665471622706531425079246175460940030737260914907058815601391092443776202755976354094458053523849371076073179351936157116067475695513719153324090092498115236582064982399194497847136743947354987726662728362934174021984938023980703423960682880512059437235251341013099683973945471624225952348810871319468347905805428072822267413034444419171528552637695133008476514565295165397394671545261179226038678120894650242055348068070772512225770189301276821807211655228318233674916226115106023647054295836163481349565541029095393556194103070087081586346663043061721512709448796375177391212994840581749554838407629098781331330109702332683608551453468437422164355337879139708012341244013039886658028452876420300411108766577141952651043387206903023020082044450781049302401522865479362484310011956738581540619979841934446995220526427946247546497912898304278017181356967781491404854196125555566283243578442669478045251418346285823081530106340434053607456571818640761991619963502381673903523737870901366644987334518138626088294737764817019215506969073467159074007914304211881837812417042517744407956760300062842978969126749436037435451297006122785401029574036331902785323258495784419102755857631927093267648080012022214591095114074875660026517511108112852353924517972111959669686126330625694552876221708909176804780460130282371707411920914735104784904302941782418517469574698502190792886355734218573792415316805029010125673940026861877158985778572275882940641361940275831894797037080738185674066005459858657750301347547749456954779359263067242400612985026475463754051214127373190795452491131850188504929696872301018775630083375160443368114249487291815335406119545239040142274355723860199614683614613602439452693495921616626948845110554278328868342318973770571868503856304271190442771726152762275227494626775434041601265977365421373969664173873340142292623921626683093106888657138863843188631749839783854429716476199406429047097913857195436936279028490364691857640351365500552189238581133806049217022483511295370115187819032304805978744960315001850078017448971071563995823227735768725343270142515468669502336458059072328172328566789027048722072354525614833815534794913952153485836374715420325567505900935090738380367414347268538028880478302418612215188414937601965613448994708943961957080745098874522445938325657041534720686631896004791929377955720228410673004741685038222647085907790382747621932793229368554089475538499884950360857058102385172138353828104740568890375297198218099439746878282477139435197502226686820370921757601405917486551462940130828545675705384629904035136097399733758354260208213612805566974117151422988433588865202227737545758576667540275527414417472167645233597184279607479548939024373923376944762396640663877637621809132882545364247890247375112612498807454613783957815344630550819850822253001493846647902683246634118070278097918511954902328426304288284454630958621618088950622641982786467109342598306861318892766348130324522254906753789395603296190855720028473351201941159912115764066225758447787671585682331459987255373380425777025915542344421418885895838060194259482889719529036053861486847543580965500419621842555922159694894821633679508348183015788263836902274066515177523477139339031997091384468543331359013825292295453574225647003010822893948151117752403297910046998097603178688318390570873820875509380817321751554236294687359714017771186861821555821273366190861916257846384232710738280087265013210001475338341073707565725418420421348122199973862584033556738565743261864130318040677159572992565164816830996630522775160753719601407533517450780927097844286641165292285083742625724022744608271680759729562254360323935370131565503059734277178547968660262467694320626641504793183457632282499240461342688211988298198537689266838146933205786407780018727728040501887003310718419096513881727725159624958171857077441529109036500754636721498621546938094118259504402121868294634081747193285939569238648469100191911534097464327950482378009638068392953476288793713700721906265861886363294184963870860891020363087283410917959699887192533244095835253372607372379416966821025826827175212141702644462593096025212348782671071344406821976653953712526919809823460845650778317568102053092273716597550289602629711432777570254626660683045519117575528148768985230397413897928878026938578103389880659055790945090887431024895436470858939474179263259170297755395473550733169182495536526455015443230931887343693734675103438218820040629403626255985131860208038956092972596812967515354520515269101291942667285479542645384705568348602124901597517533005293456510613960806291107360996239367490011708154684693301234787674056406119773982766708667363166225947753635623167893832456879214701024862395659587686582047929672631829399407592087629619658006189085635447026421179548425770364914849446758055221791521564195930390581360903875120687147796880114556405118295014089312319360420067975787182211185612096298469555376416174292077125300334123263161710251951486147537723851432028323784390904525489716758082962131683377196393651018406281705695821833863558473406726942445565410759306799227641141351014610954741815788800353837260570185475452435966412302683087810138030702637186292025338815063086378610257150816501826417402019220152753434079216733188938905356579247452369015145058537898237872589084132812092270442231052957768126435209073278644571165670885038691456222028142652698993311077741343473039877866641544386533212466119444594737573041421630871678079008060178847455742504774963676095146548310893098355019161232232893215783792848836906563926977260290012351398822542341555256404187623207474011346431644784470183305330628860751978781749593948953693826818244753926613777616539518431964953067138164139429233895225485035184814342953760258630693913047955150533852194659880778525806126250293997478401177751964608879220509939079855626576625506962857987454823018784700862840448469860101096777642721302738061304647100350653148981607315701636061097719590603940286412931829509249606923499219185370100187631869554811834383264278573068297414537701963882325806956827650828550182196566737477424771988375890559340204043743195788870373417034599086506676407775707831780325055677485089832923939691957776456559530287612062741642002549769220891607710004952363895433724397965752038889037518340768814155863939603258738754367291219953247906303503111285770823318229670663037084938775815104151944152765092816746825787608552759521960451501391342851267565647694340679573616181013236281996042826062950391526851504559032501177952809183943945599385820344089677845793355973785760101770246459179867130425749541486946574391628075715474268341481589783440607987824670682842923269871894184761299497863515413385044702731158866577541161377034711549649231559002855831283108100481440720843631549670329592247055427273546766202709608142266321802326523205187494806976500911852620645705283305630476665591203064664952052475519966820184391322613749974463092768375305696488012583377034697177509534650006613553142866390557103408702073349181371346247723555008514850010562180097244363452526613513370958562484875270092529978760304039653277774890569177924968441061922905787840516502464444142263695948524913877034992922123702307254852668725253933326528121571219096611295827742082410180754619423732246857884648794310738942986596550088474318722410747587626105632514354068640295294670342575951671166694036355861109257402144338816461551927498266874259091236971372427447873362837223196670440486582626778789407356085218683009308124246071333235670304122686051239360314819520243397489733781859091288069294392288222544199329533000041416228642197762541951986673186184827210407953774522494551546951058663404610369260717242425528063957466022287800902015381708874045917859527160776547927783665405793766398574261788225431345271717653011432089219561033662075640474737905440804671373119212145721451707484379044507631029530046605408587301779580429070074190828535706827387972697633443072119458525458677687989914777762184718386956863868883266771593872100249881268118859641247961937712631187505411380559405455051785306491758520139569718118762068127297831758376490172332883158490430920386981136679027724505473311843139313416388478864947883931112092425253054315760546882818875396431699485950502511653926450446623675176914557341360671319712044162995851155161897286390393987752051818178318804650351063798345669076644333855752235758941600863256387691843277532630768991222306787431641829302626142391009529701352183387582049109643899472913480548249324877521100567178296936873350897683864766393382978765135366748415217632643369169826342549661876410021072485071314016920914070424177022413265870978044776899304842096803137326329906598605409275290282749061224417605206438569355921860348545247517236555848329348764648362369483265840364526247371857934801067783263701397686830028998308369615710645937465221475988769829540725950207143553698718386176606304050240368188868649574634430763696517159107591243375615800703530123426910291663365615285355025624536991592135370211086616128497141297207016502654589752908318861926988333604023567764466807081190174175862020765507392537776950120045565394399895253307857331304727193294223773336390975679141652478562761486077011654502604512606768501649363237609694833836879005307147505148179508488127469631765656388674287778554976778405502480081485640431954797072902013622910077774742683137139105304336647620355333918030887244456251125938479797001099941704922416300674103032873180469244571417598744124184468821675160027475631589958521361450876725387500035241392018445315190677519368517495592854630763368107248752773403653042667422091989676521052484848447387639204501926903379660175388613392605136748297297999938263804011296927785697673231460877689000811093865360705026350597380737577253343812712502502192280017535971165476880025456052387594546516710237747814894297822000805344650665602034723158996454172224604661725726973656035165825962281146145713805923430043871036072339705805287154185672738695933835968133961054967336434040626585706556834526029995115859641268416737819769540696716958166825345818249843116457588869839742940039582012560309533274169872403279177767308967107024203216222206363696656920134102195748110270087798395410366358812093811065298950708402249600353424992432988673587297901921211579234740302635720677336260877969011706212605184361580614292431390083418113537538095217738268655170689477414783331733977103408723033829383216919912169952109718118088075026032874008971883937362594180168385097634211546399692415676871830665620636279199020869400611838869037325250287473606040253002315097853886575458197028072358245239255332060853954437185303463406867573126910807570303960985023476836688194037832359866060197094911932456616013738498442566405053201120239517259419787475039624163651719651956749815620573482102016145865542666231843101833829147681855775953352723322838111153165056989090667166571576972851665120750819865379987642645393224237601948645077197364342870502166011597716824163306847000514096644420645496347921110005225645834000240017178519579886707179499017888992590379820450189470121733084930401281178676800369227662054354224741398871996306525518234505378160968277870633127418147197582469636732987434732968974155605613568941893000945617537702480229948261127960287625398295486238774085263342125558950762603035451603883382707507932252607555294725537074167917451153798019892511289263792529021598964926979769084410842770349966407236619354478941191156780994606129358193051749458725949059298593850476871796281188233976613801549070775219294919157690354283094991900272910086679040984606312362713009390101520242026744710092332813021637335735487430300563174887237166113642342660148174099304420111575446581791432461800242653974815985427743904615533825103848870118513568959786298859631961908536875425859079143241723822114055797179391717511212749388323768011778400100141534932000343273831722347391781638205045433300346965061313254872561593091744469218595753821780050435091234380610871172183358954408659932085266140153834192005530678634854321070537532134119891001937223283970739875859191708419646461368733741240313326239727500461394047551174854516404729094191745097955236086796526010594748460049601861771111961023490315410246196872513301245499534829501104194960228470109617753991738920811795374609310643539423910283337274553398425828007921721737341984441410073001310900351502318978976284934971464240890800360961722138781114847103095730713031150923407569161035705548206636985759202537483006722054495091074951237776372435132600871525714494923063041071709707648012868840424363935891857753851596493181957941767652229601129596523753577592364686463592782073628704028757553174621922834677960309501661374082555390283159371056141485464443941410804410730849351044296371157077668263241185172628384547655946913286953803701031964113077973595979599871435971513083754060864094673343734630172454819406995283357025966022087936621361208152639678271921271038107030430536107089980973451873160009964392198074590755285104854651609453314108242117563610590916949732310617464181868930623473674883495086968385363858473746986013662183980273059779155006930502676019931969998904612465058479761613481812430577564205785076096871014493084954563569486239510077555938624354425112123633319636579824937707849854086706491821238915360794414672118574031564834912737483517584008889480765981206093531776175294716600210544386439506729155490976038097599285484326688326788581187834322620160931156990832185302417497426280082621375046135455998834079064996755847689214054463294986019415015676565973560375009691800065288292900019774583350252072338292283096776968059832329859437209327287654693638099832039122859562255128865387584868472946944999206286545779352573682198971925386493739020427748076550873985347211999909647750049583629679621823978123836745026046139689245007483017603187890604870463182149967977386039760500350745204116772833282528542581283703334365578104928163000416394091618652678157907800603232691692200130230574822618795760397026031794079875578463224348762848359047876238572022779485567060723659614996424051441636688142629167340144554441780990243244291127877248277445064959761942077654317853832670807029301114904854058846394461290404583033751936727928844507323171929217682817928114346346986593247529812157671102077309441954012021230443806466048879311495341320793930264101271530442227337829393031361886844709076534031261492381174788016518418459609582121602541116803958238567713505827048852217480258213845183029215623407713681701927364770151049139367970710410258939438324363932864952364902575776972026320863173380449711754249177807001526239025534776746276923830261165874656176664596865173001015524778661419126102722405692691237663918884528065780111345132233493161159175011735112439020784455456432451053565266002823084161455183645997951843689408117743482343058268497611339563809950693155070396200004454999034323429937060548448712972429872988777571966247098517960289819700166036248834882557643644062234675578914463056098968317385562520535969599042604184399327227795108343887431240468467478857559587579602384494688703265711527358077833018028437399782106834903441116585623646293716646699238480936762212814420549788335971432819569370172366523629905789597001049400101350462162439979605560431717484936055232463257683132192058523117882508244703023899324277931985379138457007712845902411878735611962005855007417568819369181093735487652211373444832927592583613177350819122895596617523866546589121728573725927690824987993022904289485012999354364916495441923440719580598014091283741655477851238612675345916080123047998096352682642828749414551170577778848629725032222073970430774158472271189832860935881947124882148111443384111995810800397407723322949819421028959319261762822481829955774996238377268799641392666705779405643787714477412376215170825900385123282840934206161075274675030051425351595839929375431782799754230294446674897644394160669004689859356257042185149637723748093452816541531919852029576985689372683410069283898095150381098695897961605542464445407901829603596800264978040319702341097578113578734849555669928952402976794638305454913062227475573574831205356980096904494736762780946585060383459404058191130884258560394779492421473424373106402706718292105053699324218039832445839791988605307386360963340309106496323000513425690700359507043214371337677276391330394660127681367604901346281677018081888425989920763872753314997032666393727498179778661016852513008108787368029949072909875233169549201555616919292776463371408503691294203338735896069292856151687540331298642987376302998914907122931975443229575009128441832872029972524226048170939301610132315327594639743371986319017932097691191648084293320618031253914509075791171109067745059429630448110783869315466445906186719692562753255938591316432413368404708447293613414729434816178068583277588513546781871697006852357668987647488042592801576701076290470706792612373726801963816532545244215197895014449252177604689825574956842747516356622687829334039997928913082221086405652561770716433444965171913639752512989029354257485972427174327455620465397622201556784220919450041317554573393427413326949902449348563696371296796650593260777602034191558630939868302824747609682236266704214827599720912640461608043341520609734977722057391993576579847899112050415396136271891760025542806684764513450483671512425150981208540420066567306750421010116611450561646281573847591759801629300396966390144519495106672880664528697102682235565101883710547163275930025493665153053548014974997121844717730948518821477015805715364892012714609082847564374640049560590057409927538062435066378428846448341034833890791699833608678779283096712056538177919307386097123692629205199733115892684430941399212426865222299867854036201572158222590288752876498842606586498095111327400759345574952649340764432008544354126602112742550761029555262487802173389753453842475878033743576493567507031141074572377904323413054381023243874692267837795604835592262108703031149859236154453790030065529615999083160953631138733214857400806063404903331325771541600628109138970557173292793965310397205572553018755236026284300655462701218264225051485003744935029313557996389209309600672428566590537041537192804243429439400288859537763545578909599545072248177831934901853478975337177251750813714082881795979738709594550699475406043854123967637532758476586418134075170461247222378395972780910100245648027250168684343092892559157974747499667479042532902249533753927851345917377366167690226144904619959254922483200081699821990811090724705467517554177266358183529385984117110584962132090334838079584969688747653511295442998441329166576083647013574052095589978208521682710789830669389107041030999555725589825332513580789157629014879380051448332676766471818868893230236856699005473677233377328244929041981351475569509680805248337381200102077133611049659463297927179547661239228594454477037354101676267037147055287775789530974557256444954507860372596046483845605158024066622465373386764352550215150111274918775543684685679131411185419294863383366498459721397043906876868512977198100608549937204390691489085521836265184317740813896802826272305927006612498462953778269578370904271995173758475504176777342128886173357213872359577654995661726334875602142860773664746625960415201123269826449818591875073701812308534870343464346806150807649099771719197101501330519376422844258503461804356577199978677297061243526226084929069762959444875590753629749262140255447214412977591177272581795152898851477347775850379573209692203304442750687959641426599010244852212745017696593278169038017394793279888862712724461661908594616949462385621938669429905103629002990233336818443199010789964498483827173925608110682825935797435273695247435441375477625517582423567649635374195142192725532922713562023412585119716579340878890764025337675020130112085889013301488640104360035006880535429727411002436302811670599274714452868516717216759388461475893069693294727643448263136678788480145381890212606316065150428123735527720327207311599403671802822465773232964786971847790669589381377851371030261651712300099165082040651468335399835402744330717402074995316396333050308521557595533174590383962834093591958944638013942581827637804722877696693700481737053726715245685731670421828885640510105517082742182672929744733525819145836892538864745182701981844162238494641121103889918096271823523871788311279816254919094876392321676077735915305162274847358572362521284130823654817931662865683702534923309307649522606733703491649346849167353812062390637052716134656944718624426758635424821616258353750198174674861057351815028239012180310710093566414311970781997446982676657248610704326553054390623683678063923319974293356381619217415955595955084900089246947681498378691513275381914734271413047147002918156975230887978734807424004350412101999081745441922668531532474624846446877514906106942101338465213120830847165240887082967987709145609217912031661200259299590230037748326222832070686158408478129933374193224586353844752759152241351484086512207261094947935986293943186496982484300391454258730070981710117979729635922274810056371125257674317846925056790281436093564114517769002950565541085120690446092143723498073547100494408473699482085051890732220001519942356091432913520327434066776430516848430341061029763414773244068180684775729894213658359011850002395912809931844301312980687347797833622743189196216455846822828634621012865501488277090384034963827352676733910215794581863393925603990438122895802653316887366840100926147383788324189194162666246360100335929103057526739555024280638524800489168653295250479136893626745413393701122619259876301079029482355577904746635022621885964660921373643587440453287610635612268493757073741577354286465588225337659058221702150236568769941330118951786023153006509782133374419678130442336498913445886382401846268821432250519291431044371214589223459449868661927435115229503607888344227378564015602233011301360100123062538272269201630058470808308543808422828393317991960821821011298960486344610850270978481333645839250953447538717949369590308202801181564260715342470424383081295765491450819268818366410221593030283385588254002425113768336993797411347150775016663835348755472799909333891818222163843871259233673959172071992933308398500970125716510554904977059371529607251147465116275018458646579287489562913870242258781069503934494804246384729203688242489555373221179062056839197995638553435261737047256173671895750692931409519192245523954322366951560011355647849011561712689927340057453322430010597415466899323416947047510599381672089963980409411969509713795070877677338175901578160569083851370393790425245208475139350185022355317693243333168309778625537658520254432800123959315849927459285985725099860821018558253932344523710437615443041271310413279980160444706610294471583883685449143049395382324672323748664435619124173180040011736228145850756249256117799126922604247584059043111663174760887514428438864026225339173368971607899068650088644827963309927163473895986210032252831786375315887207529815904934332777193874959222842272201662575536057272266294480442775709118231094051858643702885552857115745962982273571188886430375163581827778354194174391327405495658793526683873948647650138701250435638178597916754398000832652472216161661883665213700118803962078994707860350001368946740941759340534464913540576936995110062321483054537590780271462159341567193318010838783649087793867966207770652715241589177245517161155399578688891754575951909306972087811448086255372987357686940570698324193937391435238852659540557153294209855347898477067845543455282240794529606274670050571304070689139410908245639637216702565615427102615328311796009655713346039929196084188701182994614398787145198629005094637338790581227623719254775933088897415568709174586146635383382530880200840990713769619787109966894156891875793355936003052145804208912728372256665186325732851874370309693263114410179843010894744279769216721864217071010909815140063140733861330312224532669331676198125525713544599972706602286974598107334365772463638955338994554495452503482043165291298298166643011896265409790843649535134864887362702964869274830767547469040164923121006688152357783804986987808654406663030739530771056236922914384460147754846043743099324196706384948605087392209057253990505102663066690044790520602036831353405712597543769702742901109700377221387371306191046600810903871318450753467860531815129164572607143363274235987544378374108246817965084421157755097109012421050311678199712868621839157599652646105574229393340316023018226667841352735649090597037781084969244934481683157859511956997623735865313716793079098486081799976341291988951982305247638990089277264056227699084482244884478862353260950905579711636611200678316001626388082456305528278285127631664449873311594154049418327321558122422843050136240823885879440104041404321694291986436051503780575579930440071975139103627506110586162982175750616652105467426428079590730561115998279323323964344127661447643497922844387159391950506569798252561743726485753795992178591372150056159909408037980058013921509191641951127657389050600941179123528335740823103588044346938170384827898139924949745969450411374982180377090744356735653851626494791529480434211975265991890789571304385594285684202905858865917672358173986487791141615986005310950163438824695935851916767546404007907048942155010687121278510952962516007252445880604639223061042453663167475702603241452277642848466789649514536606798491088930127801318204734276794191071919948938461441011667682933679756974673325719555277113152693271917581074829251192663259288776994097914666920099882305078513172022722437471688186549597162324951127978391589130018118056136582270569805749661193063569300774252049860460536195245546614462515166426837223551706373984324394330139261121250646211889282405196399023403020334764208839796128631433769240800323147130973106734459006364003438825543291923645818276237100123205944522774783723703304952424087354985626127839884055703882604149214486976395953489206469158282216467285036917100964651449069889151995579210160858289046734653610825438912302266004306827147848143798293750312075738463081184119148049471600760445466856583400701222877662630160107569429381976865455611237640075575946289219308312649340036269767755466700327378420502753872829044473175734300154357649923881855538013338131658666827670126385159242922004080632451548005338579843498896864504142753329080716449899005570819053877656107625427881456124854143479474154559798273629065106445410559765134865414928631123796567767331525979831061047151893117849551449036473169175913517054772493921121573712999631264074119838306706165930640589127893252172630879673818627448118349594811180576134160701489978840675231278723636492737500540441338271591732341762365030205805662207890225539477760862565216329773931887308421396204194141093397077118737695595667652481301250144045780091902060870479747197323360399761852257615863629869907734266508936597780685630319740881416802083801850050205689696595914774688912086483913773083839207535337393880072746535636257085019961414132423697586308501381925096074638793421857047597411307075339581508327618147967890673954556269683598558479991332408788682217599818524628918753603799456772720440961495056935796734709084062976642846035410859339640599821302470771561214673266926182468704818406317054751591464660508525551685455996885455603033850231094069828276466497277591820828980275128235042427893810348451174283827900574328600812484577077859615162360852569570325780577318383612630296198623052028729474452132075584910184967993348656967700836694690115455994393334753410189722127658799170607924155060796790982290857451656500842259400423408412056806828453718067513938425754881031026186739466344080541016465478080905816836707053894289948246043812558124813785766203050723317714241642714515197111060804583410328312970161630457147235098440737193259016791876716510872950294809585664260629270000295967226857746247934722847187247031457806251642719124558455926126192244676105433480841707661906805285753278003802086566962437399898064239708963514698927747077424762752371215742953085125440991611433102968526750699171887434579559211144182761857330562194228417708568062034372984678245616448366057974200400349303500817126662807637140166179597860365061712973848770184286604207458833078776002654128186030611799064875953477989981766623658147745870981982855246811092365869719924384810898375195213557294202192097224286342888593652555693955378574528947744193581484767828331293114406547736564299011652619289366810832059918510043243086388460259992482561984097750837580827779286448881582947337114000889244678389816937258185723556160145985935630421907249955180242542521163919938013780095269907360220193260956933343536160313858486339880543452783752143398335911435259092871898265386044110744785272816579993281280410400331955383000209936041875506127751489879071962442721357525045350380946385693948353293609381354048665761902836276096673344833178160165920045329711576208239639010231882109140666284739286276807532978919978003479412618761971224366262964466513030841761377731396307823893807331855749362092226360602645872727904029581396183052477021691902527953732581081818814491031964050358506270396437526422607866959962769943920969828319019463223150846131841494704423032758155682246673372103892760908902782872496408781757585521818549817430148101808969266559488190253975488196849105048254262401061005353615417119631954146832817485824843455066428119649945516820988923896548361672169733792705972754480111101309183450750421883281669784308628092210771296583447626642598473562214524059658261757738123714712099752136501635652067917344031375471832293324559220309171047013505062699526738858903050353494742963438776130059617069246804195093164749655594590176784188968033492130358981125469418814341697949006945610324563902529870703693629531408522394834563320534586692434795462221353666751136981294107208226523000928025710868718666186950322742367405030286604097105100892526779883512306738163145137422778339975392232600686163176934125719604598773604936224315240268463390537509043606183062254150054011912187843994073209207233228373969334704412670773332988179985045130208634547831577569445529856982659910736016602566980013583237504916673591550028052676037525526848826374231295785785661119086240735638039528106737828097532514673429010734031558198150093028195158963924345566343024900797030250458141856789409453321190750994238335335534956251904341250743438268842068968793683985320094591119219608845332104902416413199721657415841993295600635488353100745153721266961083630033274140355085032841476909537869340687047767424802096857507548196080404367009975145858734942522942304438010740587001265793086924494948617290879179493743799407216419578512402026795799795366391477195987669684567805171065359274667422723879608662885077662547755344230073499956057588753382197772773924789206134595001749319146917927910866117116089999160428164071424351550053751145211607883571744922231547063116935558021242391967170313967366760120254079444257324898386151384752572464834290826301573602451572048625904169626070485207511776265422727591136022298642155388225386859849090637924783105654604826079837255660370645727206100714297964593344187474187225225498086946538819065751020702328421783118702447234791571211192640050330978625249388369467972501992319650864902331746423151615920350586747369396586210072950676564886033922305296748400644778526120656623530145626733732900475255581765448971933104585984781516467133029978103769742873966978870589547516297235922720979951526641465834432725291124187635462723764333536099012770890772260336843376618270204013791563484224242625649724365559938233382928321400164376630509718891491772877817844407394491010148225970124056960920433133154344064024310375403202594364562943928116671673668695934584782451159344969625130516184504161624081243477530705985726731101741593487819870222899753493691757725153321446690664223032520262220447674255373411534466908710137894474397717759659092018012760054634708932989851597580719850800913877693051605051455221306400526444346986676644461262868020102769181461160847422015652422297394217770694061719482899654768418388833554338545769384962075733866698634819547636063447096518070465295066761695896184679794496606092457479790225507713683623801860180964047365659097816464222128957667521255490887898934673508674069797862334939511269907039327783010967998730866626316325186640559497281042346134073144246981864403059169467284682659780007670105231660060120322698369035076977813868009656361841640423910154737336305947652488839633256858028658699461776629506820880140081979879462681935029432599586759968794257617111325745943215715352691194663833231348576534278462877240023995504637252736458286442231850764542763818411564591209574038935009876773564550828193828279134154509833221385132355999224960672815378677090601380913559931088089203653548036000799651179149062406879376717955736953625775499320905555167988966360807461956888598059401290540321204680441148009445888244651616872824736121169448152082404026955299070225439102006164321659155289976927970759312590648528642839909584669538183238078109907575756917858382759996638437677973849903380183312489233136382678520751446681685276654860257420648951570082749582829364204327711621185680086210969470361168526555053624937457651562797655765254651607151686300013075221508172152117546738510412202448467816354794238290369777026630813265750327226502755662473119528696267345600033577482314766594747349959439723608083629208036280267221142546085807523432995261752657462760451623608893848348690271149702298391302267929239449985380751239148637394046759246502922740981793042836667557090557471807351762752185297462213967032877224613644011916461213389712568606126277443777741322363809830273570301216624699116744853325674588137404675686926495756333435699637800344663225386600015453869351701395188851007111003548361669578450476393196469672737191708661322375306462790367943741529356919240088533433934039475668074407362844085477616044355687052219798123305763671222474163096248160523254427990923686519819497965078710995069669074252296585054856062810476106619313158340687318891044264360861820815983321869820225427790147260219020127810890188951978934119463999425664677614451220231211273726237182125247301874433682381714203816960807479585570658676029048275721130778225652550643184732550804346947284685965059013462997530455002811855043380108954723311490737750537535081211007208708812909143552361473867669116683037669030810535050999377193678018400468151473207817385566970858428960961233385582870743812121025915916891821454937922740865379251828404444115767255896218956974511873773299239750503982542879691815881103320455826079547292660365860091182626872583054896025111421360195395268725933077117562937451566164149159364999249480013885140350996844082293078104642363213440486881629745276968858592063424154087503289751948987220100309456412925016564941779647780267842234226716761164933608089869238825118812607977369921370465779570161194046109188288284937135799049823955925776097184008125629268329461910447331329155777689031300573541976371380422948110536823516741555365625071055843292054395831999578433865101502982247667948917571186389219484497514188824907143799083967817288875877223395375439213689603842049551997181088448969967245188074498257896457182312525611108010123487049633466917462452905186036583607257764233741148379736617564176513716697548159885506156686415533955155535018665510705884813414511752900899047607831463578808111877481333781285010513100853685619997796852322086445028514276692612920710538541223483008994487017144377533014824637460696432990676177367526272108218379840930216632482644328810132052618362744882493878217459771821825041455632293190911604106859001871980185774462145974147676067477260581326717417552644612706135105416850363793809411261877497409095813097411250528341518484834998225907364520358250513965000897106865711830421239187740689834164606255284903360987772905606965118042747075544055918232369283473768707279754181434561437323008485950467129510572918943601118997457434552177339594751340388283928151514572867623712307851513676605325608451145705935638978062080975154449802946414196819256427025454114108652298159843888378668066187317191755946951898341177554110284318155841917206745759575983580366203968403987852713143718250434977482847308347705078149182059121978174134920542801051696830932380034169610844596984955520977536101041068024179297626314101755611735191593131196503404150192827475444887654205924801982265144904098864135667693644194106788589536265958679467579451394790934267867650655315154193759846764176529311853103010587837102132103034295674276757872336288430248742575170985913529929710047140498698244183445672026358025249053613508369536591344359118349879124010521725062419199770983231825287902302355644906728587621242349242227519536922850272188907078228856333575580898153717750691952781832514580179694871745185942683894418890415787321307562647905307608251033629237786187963167983846819325492968476925946333386098127007801032411347387223765949609914458308327116792793009428377216860612797649888495952128751512922664819090485739751794944313736304808249646336261547332115259612372916134736015314159219793957202494087542984727870610339745629694122257427972970700472205418220345662848452014216301876530760285437983920746606605462586126319154951457297044328298464139608705659441761341701580687884763173345730346589292706139531637918992125902736206528959112101497872129640401113555077368450844494722399998932090174183334778701273913123284735944734116493699735693148641560264260718192884071515689940598301424855645482598758405074680030527822612566034904467189958432111741104644422265736665993599569289255803578470735845971341138571049722224147492759958910421250116133239979218588978705650093051791992441025173511676616327419912939137905058917498714251569283929730367852043277416199001065099273735115732434125357428838529476782320023969697670432403442717759983124564584784476482141152865936840895732902841263528090295510144773924613425194942325627956954735331248172706410191724433938550243506509158742005479516054996454167679764080423883742623968267838383900450305351207983636382156032625818990260609975651498491135345365456626003020006497981017161429036905201919995187429339402976635206817418647344828508402884858116704087864713771250558009966439317504704748696118289376133591238254335256796374772733771379978936500155591467597462517330767725304623167127958583001939075984558025465304981759474056508713489412653306875909533662855079976567685031264566637266704180967055116381876894098979186175749687684752819648604785674462691109423709508764250802487286311159957825429234722663495505448458410342159399987430443226578275578078392048225156127949298429599054809053626152053213752211610911751038585216191258660146468654907830697320070282429980163255213507743430637223917818112017227345166605167171754974925029788582342761061306087728567617932506146567489699995929770018854380364872781939601048699250559222558651663150772078255096710511036362792315292184180289582083686954401263490126285015399627887981594627097679815472677596409582738806205444896968978445478036936963540292120408405052755164463693783226039687374687522692116737094473675670260868494240009150734773024970938022670550991049922637341137576885950862448429904660557871915652600882867653405893997648477847935080229529241572567943276014140736859992602810864596671311637445606478768943192099748185700127446469456747305709058724899818195642238581227258032445779877055809704780233690917808633266939824812517170007580980415189496096595650030662915467453871780765940209683592661739451040310990159304149657438907486384707164633659926922341550356529188389527007085072431110703146522533689204486650111900282271934562748383527499677787789449790369580784901063785204677519359275457506365741084549976576250888693425507535038128667991730062539928409976937930733026596058655097416839017843927349568312151826880327169954750163409295222646076837034839878371016553248245460620070216129628588752625514021808141173996005484354433207590556477779384390037241737201427048303103426039618667305434845846993773304847502021474292818161542499182412528861292191078524854732600529926553196306492710220134137953014583716564073832830713467623271918429275206092133806838858934084865741957890046828984452330689360961551301986868876353153620313447783133264157157498359268944112878903365969706536304542415337838835549132151738043627787761935901711688024744877068069943728072129228149224363129235889939301127203849991852694575846702001833530786684460063349099484455270302466226859265276162927173020706941843566518199838097737656488328780649922920740088595386586064376866306681244854870390558959933773719334048027030552632417650268984310162941262942298031853600337421304849912380792262587875447491874985563938022405457555974211437111645731103828993598673902916082953023333429282430400844229820585320660871378271955276439530140873124837383597529531760518731092314621980169533748717974689705462116614428228604700381970868326518356923906252028700464375838031920956092914641921439133989897420134486195109240288149269564050061359778099558040796083512294739423590529286751417244517912242702171668717806387160768207913671223736665089050480235146593384761825503125658115437121105135841702874502565834938277012679352065352581922699862657394448119754593360614380730578195732132529879653850233941878091061346551981647476307610109243655803018367987543927975669420913838927887222391318452054271759508129165924317923958304099546468854777475472995189492013379638250063972650835380250900754181006539922102545007031066258158513980294919563824318597962555227196716024612002500554015458992888515385591628296605930699935699612585535974003648277927825001471349389124852098832918108964618081041591727096785383827513067158747822114890684928262040060443874973793895435802922716351251931993995531740625787183941692925846685176069909059906336973708602500783397136219962898898445805738526837793434333707105705105059601769538684481920435419174647830691819411395419913331678688465891339981539086822361400203484692365754766758829647551395372094471601284121224398697058566942204595872834972283846081111465033586536126608220403229399343938578791183882019590947112785042706587451050583402379522085433725074749639296109032914658898427236030230523957896194095008321352465333078257807392293163693277605896325050923152370739734927115191991179146743385428106243267980637263295598161696676052857468784420414360524863134867880719863809346859999452298003549458424221854485350558769950806311527475804710553279695246180399897041665207088369073850854939985997620289038807039028710834818195573568078535564076565890930122960488400572730799932086190656091101897424595471689936641007180948242081975280177270530099653610727688718460210498438037896627607249222346118694688057841608587789423801210391896954811974890570832550608705857779023964756304378043022724964305567080701658205006182379570883285817477751161001839656885495196598493668944074678640810201996427379059577806605499094315388654882577576242709048726304540128529556805173723903107522564312297783433483648684687551779140571122386583963493783565922205120137309075214373930112907828866544033672461240247322032903098129416353608390671366091940042427707730084104269378892274612157242531869683478901836679641842530061386053062672755577380963024756426599785168404078136437720030980200962332971075790498560651172210623637844096635195246318263365845956961168358243906548743444867085044377497883254411894221667290836313765375506919092529405468163194324976824442233872427466033740639719441395910148316107894644819157630738184857005241774368970419271460596910768193867713068966920369966157065995106897598652955683303420558776740820542914459548234924625632784158344443570983938069012999728317697661111213896185357483828969236294267439903800683802352760012817609257143325852972497517446391546759068224743973324453101056001777540656204389601648440289415269270176428690806590228928925760949805989851091519533049638987056797364874029264947382849826516173871936076805002461863215737739379258562874040885931721862781496501276364492577992756750019994264286631386602416828482732611354097862956168638303618952804089579425599591975642134751614050522937300404514431901844509042248118792928558380572806000892627559757838997461878642331087248173560266572722170175209871023629976906352307791682300345604885710875659790247875926558227585446620209664206870022386588802489647522894890524021271698522601479599327247975292788605003407035389701978962622454159461012390828307969939205749263516820910733398145908565229268968454097958195518122072308939086004257130370082675876755432192242854292966735018465913163559667945525933676245842380268524323302934110129132357046174012278877422898240726435727788428805332423384695536590155492137863708110040314096087694665958021380391349534963595019498634764865095523569084802248855876957883849366733417449006339986788483814040340850307713693605974788530743402732453579372136712343804154377486317505847277909588781107769242832920930415670821579501077514527958305985807914952185369480908100785139372257675095669622060817523377303523714064135553251809338346090141758589182996165142478355042361215046058573999162611501257384298787001870721960146497600918504285214069438318573572862206399169635566355485905185053825725664787767753293506226888518957177013023773934940680739203395756884505243188438576687711957841962239807796714113090792053064866034075176301164374316068351443794423362745374728402185595804123390907514608120839929915770396790499086971449992993297019037772334127588949331767951300871346591139195547551393768746757405303115587094268221491706676783576708674337096553671245744675100722669639687430546478683393925281858849417758953904980705231983030768647886176954489487218804438033581666980538354705677696597429018458020471779285822646118293602321626754094676396342764679239983811479118531404388502520195914605800139871593849559836048766497579514081230813207107782756342353724179539962019514784030303795252690767117483940997101798251303670336730103012089923236225166304179771014875588163367243834213846295339150271207354344467686166157693637398864375922199298804770923829744690121711561891225373500466290088187206607207530751213608838210847305653143274645563294300736669421276762008130964588800398291470185091862745081852397211629663737001972817782835618008769459577405710782226624784916342942703181960959650816953396295281585561711904906754531944770009475897156779799464742560063889074378057462804205029873559605636215838520775087907106417235776513240477706051888432806754331355992119060916348113284586857982753967969374881024741029840617866896791425768561157739499897379100429311129067424880257032933860404967194072762619206241045694828966471763019929947480555824976695421675130990872433097635674625325067420544353557285177953335530390014655019175393363673816707561781579414580509538463476372384498750775055216598017678492542609397114382803431700020647078496135788033262482399041661991165413319679870338719551183519357830912523486062643914914728478369437747472917725963396912903086374988392380963931940055900453385805226794732375146595562702330532985517181337250438378445174962156718423453572608815557684286803236872837250910344673879855302245599487029079649293218247605453982399267329869279958771601343521970940942481797041164864591966788142365423469155833483414925555659930670533241255053504496953162946338340513275476884636749782742636073332905456270757913859987963906655181842466143050566809325126992675852696866265405012837119791838049409644581031738505966357836189935651063305614531240174714893550354664482990196553289125508011703554897171087595152196770983439190674366029180206770913796270151842696478834331152929744199338885678206410930455229225229831683378941793034725785496345898378020662506546796776115848689507773589681606515230796874191963912785880031280294100125609220924973872392987195062284177403202796039179507093761522182312907781045131593231737200096043328065687071634123082983056536083288807517963598654924201892829164629281030304935983739561846673025973800186232144292979897874816535606019367162753816494061716376618425835682095271164323525378050476171669609564272570752213568917395588308823835786588732776458780256981313868113634722743656605318927477433857321388818642894140262021273932632856706103614835562557308408186933633213041270414057445948520850894409165256439020324897909876253398307541128555588831732158160908582847272972310786005527808588548737700127617200941612004074526107654928698335600194770451443326160379848476178235239582808279282281667233095952941028477518604993558923780279484482497204403284380646954283656425187002015817046878027146873040660431037398169761373114840496730724427962549316223446749154832735073729138494895944126504227602911723896741373430975002231634644213771562119615742215510979079740214428666873092469116836068943133339338728885370430773359911971590755053732768758522267945630512920170697983745184974621216927931527443513086943386578359458256813496045800089548797732394820932037567102388455063094232936277508142971721646019737465322663666981024188000700181613863767688816179103781309336385234913657257092851604207002632448510279954073057601848031268614400081987613054697210775033830959548547247808297879000474928704622720883447303944132300494718763433266311361012413499068370881924678148351533447832974650286796572199353217961918347852626208132144892587572869038478218139234919007105513461622372794153375963933444275116931032206336453596368889207083286305224912187411002047320995089947564185763082095286825858628242088877411999467749327091422769864265487290033662529225295144690112811569653444554141161264559777316572835949250684580615984217330611466991607023802739118575254955962680635500945727619508730112630663053069057398117310754184919575250549963505815887358664188666642859247088314182227064588621829821186635095129018617125813518477729095447641490614279245757444513569794183707644412291847183132248251153661401524931100296748791785229209663282165538133589093133912381618914127252801169463270731893434065052856326462450433848126540963202333830631333062799872342577191958878363156336296851710179325177542457130550451930323870835083104398404148055818371807216585931324884284661964465719145493203564401950373978285962174920659335443172083072101022561101691711015074232676035085701973852607688092263811925024005404218722209149405609653728995910325672181295542549891570025504564143575032742249031375006552962187168799549401453014646766190860962716229036060877437657267581331204025528492421863909578420814746396439039580734780664249647063226973656030232736268182192017646311008912039014421466399193520083200730398724421788955269601124972817012059508876774992249898636446115272475338696812582999131037040050953052461268038955161430943086115278803773475252393320953066979731762671550052272073850795066454051236975324588120933444491975298198493573578758578315391019783160362344414972791798614284509760479931623515141913207628321066358033113932076475650584592775114094601154866168140358513054384306168201268941609319615382302636108686842507194658995029647938677783951814047842831237033430061003499320204633041631252806249383731899330653194462397551424674230319352134618226703213616200614654049473650139161232921992292181969716993992278105245665264165636474569218631978715955135063213953047068723968143850363859419535871658709815495617286427263070432782533017425090401558393581828758843224974672048075334239498434035749938202879948615711889364259005488751883580431357567555040542167806144944251308907028523290842480678626805669792331584636546679441808654868772982914155543450760780250635475240449191411105656286380736063591035184020059375454669741536742827671614721761907902560713968408843709087796899139933890467313136562605498673360477529166344480340470336296043339574639765270937216949222433470077140233079926996211716781300765730663370596945357731263155945657279279546793195555065107908808038397742561398599423706292828499896874456600234910181843935524766583930118581130154494930903962974195009817467291636084680911249705275199539337938549433394981565155759292494299500931878989353073196088314187770584145497252689283703757809213760430412225589424898450850417126174698264175999254362672065333420094445046616204732485223678153140781883965680002700625593624875078158078708150653516654729984979083564750471036857056374010982823083773910581304398001005038945237924769819598671586954053634220468969298895669537502995167435953833081944528924841906988191194284668205607580075454259221015971799389486908051159754615419938258319528520540756277505677771541079420869317005638848876443786355166086717853486727633511572127094000087419152392953541110427062746647991325059312409311199244029680834462867650642254595746019248660937582241769388714059168207123802944289745485300006382422734624737867686067030743756317768479956486589167401869373151136038917057349711557606821856510325668501095735487649129471679948297640086764307156048715365106311931149345707506235853639499599954093122389532206986551355009169800716185124997569039092012617706397930965026180925127373562056269062343686923622531698386106758824260644498848621418796652448122199685138423731293010403533528149911074381839830322975827701437968466766561857101929165492028850609000112755034837143816061243222300504878818838029057397258336278306398682336591126683244527936693082726066398433014042224987844222079484761586909058080862214644390540590645891942941228867939338639929501884996749880583463388285416297454192354690709778985762869290881659735444236680207625261762134162255121168581869308243044221962953898168003450140040667889129520678854345687819451572233498539897786963692329949139749797872115495048081009832488187927868728189118732294106971158162121686598316408397622649754812835165366286146232799036037470835336935491541053104333852030528553785467622203765278248904125481622371365227561741050928601471568979032480100265177202231779490086421704155022954524762811957537558780096590931766466226307372587123826829212571815442698969838800911861467765164367916903265759417094079616303379902573728275244895902559325654898527724495130176008662581693716898075041911555058572989704382610025658675630394490714570158905963833275254844428668639241666867402765537832986208535539991626186900820772938679888379100389493670050940041037137708622878281113023316459254619692619501287490568977362058516778996623426780322736181234293233282312112013674744669250776334091520412928428313895204561305636212131614557833895871173764695684609016712111257585188511681269635288930779983423446819609921441049130253262741795920707802620905083793674922414401607010496355041997828101970734230983382217757974359918639866103931229375914022880554594939070752054028695738980045235729423035485738450764646490878413237814495732111446465968171948638914726652068337675664115986069910890148283063818374518060812104380013040079021387930082004713506516824310332944211619344856158689863421095259128303780435384855126275462191022988789838976396294721226169401493386603440849811774840358485364205515245556029121514998337327082439027352009645404636753728254047708224281626646781716693881328759447659685504302711721355437801793299386991112796155141554602169800754215909691103106069901867504559867383475545906718987593468782325270334983903134909902331911865186091013904345045884051316067170549032072850359351806201067852230624194787100184921805549830680906819738180450936647117302137853409587209333891567747930798910168950140595539621732798037878641029152524107543409569219967991844036853413545038164889674103996392605638107028464338701528200517423099914867323332944591415704856449602206623142471006904471629185894391075580255763260442437945186409671804023241874672610152043324770628018249728828067736712927642804499899247013289499558123109095714577740590846407930319985047007034263847589024041539258259780618852507287409398566282200511884679545695633269455615315750554536116702232439929612563676757418514979008737247766476269779626984530474559913318553581077596732695715280349399738634279399465187364294511623719728397175185452937256363678373865631689160164592332874243903026469179917642120915063664411761428219832957347113237804206970291891842230855933101299707674296437264279971173901474591604098279942823590404750730417257261704171902709176051016373374193257663105297758901997334957273090937459485635276022392940471502244818557197232136715549571281643997963239334287902945520469295757134700744068285831646554709497538949797850309110793119320995538235422956531480909289870058847130878732121918856403171424431280320465439225571289846560625414773630797114431035347834980168995693663461808267008585778528090001261626910290886000449760413779147423892579232075125426397812870206427904779497207683168195474526746245497693241826875036511116359257107325886186987207331223833536865915086378944298092899167434474689238331754608686275279328099945069519277032082773059811600423500696104272103296390687294967536158230768083044370538449630044361254649072477761808587240722171151710365158430185848582311537953123081429790475830556237817714113941562840707222481686283366694325475240208802630139219759043865229078515236498517800603630486579808438603509547091570445050650629485042387384812614728822598101774558123541290938158613860700198519384061852782591244135346447842221189639997312139489032120286357065471086281430652329989837153294180218847602615029077361405250052549083514890347454409156194981139244038795371936155080569450369804386092362697792188261783706507867708600031872560828631131135458458225554114548024438731459064070286301837960129085028489925382501920412683210877022949977514602061917784199543611897741540621879163032523868492345756661855452625600430692934349697641181218563517468065111351390735474857261164794987945337414534074954099971584550676438916340978341407939995326252022225015920493820042829757526233883571744897646261715257811827252322340921049214010575251645962208054012672644896313432058709020612778921767412992229620526369227431383807611144205042111262730091215393414219090962284458897547984001133020779067525025521625287234945831197732077093469060374852469848810852379343940539361366605993209362688846530989987719646065897784168018912168283125029632873677684095688085519455587475577724655716214300032412801255344684046138580679871891949260573499685146449850907958151946489862537426057590455389520796394729292419332939120780389605754987266569867398618917774494154491401424117200946162935463773963734762302597367986381705638010083782287137907174944629205683721132475544050544283324078726011319211430588650219446266381105812855293145182748283260506531583153456872287525464366622366741749837474943748748100567605625745868239383317515099239648860480568955976786086823070573548019654579814268176395614920660895912232456656075268778607085009486705503984394070333982738108469971909773761476034221623221050679196834210359784644573138268738305308326095549250907977887585274665657155540322090050516225750907519309131239204737368212037942465747452582635053515236571235947555932449152984981847960818241621284019981718667188109902044607254384349659747854173163476812321378241484359967594104472853973064919492469292374140401232507793274609522624356699491130957364810667081028497680858160574414089259985115095532416106048830092658743707107445254653751660703662613068124956043393483791194930920699141388406422393013360588770066289035289086450792599283609012448520133975871192808326864750804986309629416627698377663408325699703281314285241179521646686330042802106239654870073140202626782619614841605758719923142413572817677363844550974808587776200839568485559964578481495433951765649756777875887387874614739506043057739193129659502136421627625453439302126407410963102750893455435846379471910063750539934178182579528743761353642521211179525229819213988366246833240114090229093734881482826452045269379588892053587524429725304442368211188524495328619683528949540864278379541696090920741722233786718478332426049331035595852196643319731605406006621133485859092627241732273739751537316893414552683033693097818222563122772613398458876867976815192407009712629651014287888819487245930693158807970072842584854458054915350761190381086310770958143614890531537801456777360977076003519462448843901002362852407493603668312199286600878800429287152130698770277413265351310225342980665733068655607987563422697279359362811667557566828217134688625807121338615100990622857959633848826372053386891179631598905282743920131399169462497012966166471267589753270114444380861525082912393045790362594753886628937751992880992003052580702576377974215553414541852132379334572689108815632218854486146499339979521653408303148877863787651352636909545846773238532171555109068556400715572159329537295156291529043036112811741023695738634171982801491744546078688045732766181395085713965238285316620144321873580995224553365991890315220988025228811703823750875023240538037936517331410388969002943280770795175661733484694580107122964559740835739198426785480336346759618835243174598420509793269612922119793752665177779344832847498073162681539678668970505795329536626100855973280332365895560782818508132720567518030010900464205803373496030496091686640356779195255152753267515747894585966324860510872559452378486368490855949199759265097791277636317289325236149656099833212340433115595578167743713853015881075726394446255070668639040080428652580391448439423693155367817582993066128675865356128912453240337366609871081133268049534005882011053982804571851363806377258468431049255136212179642465265639703376015803490332539556246527457541005701124391700999032453113794641312361687642031577596789326864266568648951261071960697778181626325100941197865521881671141039219339952793426439572904512915956156340935955909074697955729558773352882586415518025520772223793298200550087881968031990034857979369591945258305841153644207730280000210562785170196499762696904331653942381037285805708082273305823871754324514986913333948277446760595370617595386578062859602005024057816771613916639692058826105566677121827300965726905134737055619405320943177191663216851654400860702766632052535693181995945697115795792452649133274298595263639285973058279843162763565572213696168074088365019828873329320687709360186237757874043675202482891001418495873945135231234371636743688751960625049442638295568724032179503963495114487557054993847689635251030211798063530636470408652345854328510048202349648301083635649540271233685576128117043638971015319247843249030562117909095742714527582805743689950561200371228354519318039013623881097607925402583762316060237810262700724079617150960043604177303024477491624667850008155671554591666635358756591151520077738375487001239432719072830855977559875194015917685220639307403456820205611254169378788013346668089848616758776093277881699724833802982854309076772415192607278397580474871978210737841274291229097455509438856460319333642815657021909949979319313702809769805044718358474384952525057645741896018937991968547107591326579208213103398426617974139080205193845592125823376018148973532485563341965595590512438209402259821006141747432510281572559821863559704284467927005302631163366032658579459236057719244659261755816205826285505803128951817535268132584292151703610428633936411173640797573619457454478897325181942087351714037963646454360428668100987395179569354319767594446749760151739333344788401581110209641013656094440534132046267830531666707665765831837615115194304081164589715411536816426038343546484706456303904419538220102352850594149336460188245085220001839911651557377508480003259662832723241365746275590868476952711843699700820892218785389594897021619171593230457050121497622511440008301278996604775581286602945821405542874469609868622744937127406728109821943037570912327519579321562893172869094561719571690505871671004590441110160605977674398523295700498221020229508461392155845898250155706396232264784021437913291923437176759896277335591098211559841481239759277782534355669098236975905591300022733812070246573668494661008213818294636600686841992124418115243303739716350115061797170918356437238145129263636087648113226185507094585183525900235596942234253361400941288371127177132087951078653504837376588293130660997806956580592301486756666990050689496025521627732690864967759269598376831487341109577447879385332669549695066828917956956359946595001085675120834581970611501938186162878172235346198829712737687214684810100900512614377859661605612274260805492354837080244198270029402352663087814133166918570252709194503800034774769954838842390892488543264041798481409600296933748902022523042687826033723361016872680129100499267835954206430907367751919992608073791954608111025914728550087979131367580619248813865567090778331225998553353061774462103131334204736328288516913562422027683204430477165378227598417025287383320029522798554598333687508115025572287532622350260168339561767215682050231646303594418218840404687967129941741113511891493223848485155591668188468664546896448959347478481554143664727134111144068560543507099556843008853486791940631080897768820834231486803728893900484431275068267640809424176240236936037874640083854231688931410430431609854971544422179302055153478400045003794383283717002773721719270438877959292065180709954500510659077699279873831793080546234063565529087899026039289860509613879962668601230581647326086601116195712737120356613281708445071659948505626592751691491836152705001194701409711474157244399309142121610371824528758246402302802724057333854518021544526320778304075976604972153566988191777262544559302056615571375217663883705956872819931728115614412284532157300214103751308376086757454279210152225709002940774960550994670550654832399665337436091382771722657687463563900234310697425480454306675655653151315745345894890948127451497978971298329354036262048225811348083075276736367004847211434233902787409256124867567302298109627902818195963188230230293850929215559087051248019728486358472935387104392014477238798069825910336908395133717662466315817598361516778466076594119737353037163230283591793493947681157447737109027764440203874285931025308191364022381392107464812188701053961663255732664623000626139121566924907993051318956799892706982592616084977461218850871031943357203630807944491119957841212928533454672428585226971951074309173002227384975533265673106357352720934541671283759240137359587256122965735183287590269673727408651924310738566316829340136985036333994543408328419820631684636647816582019775819649288489000836028172576490448099616082821998572843818293045838935633885234520856142605695102741731501850087510780542527770341810382872257617690648507564333194565015686764415362014772506465977964969581471819830622184277319299311287988898809457868210570401608934895616987664039867398286169513282591011259551657656536828892156175253216667419415931429189238569283394665459525513315833407687375126275680775134512293780734058626350419155604955139270837485687779778850862585515583339297747218773731721065565061208851053564465782321200965466964245775062134989812074415919136636346431511742079607077556112007096077544973159197765026822241182171972074415883937793844458358255260105432500467945279776251028767176367315524822835736548143961824940059437336092808844645506894483994333101620483068131503445721003422117158761339178475626079316806958550639766381192342643372163051781046082138507936750715530749123563170008666895121037777548171468699936491833887561570378702500642866048754427307396963709240810037848882580873115668509743000543280335831532158286159066082409779670304152677701212709775315948551292147874252181258784066039939744151341985769380885996304384436749103714786943878576266805848196608496304029250663465171779362073772526221512034015201132208313892825040859291071698881704007041428013839372555546881740366093084139954208189515948792981880684474947220577833806664038010688896019635890196325392494140439752815654911990789275183213015208493771973710923366905922313347616440938111255883453644801359875204996588837615574972919781342986154052592199670791468457343111392602037767241609223369363077931826410537732837821459550492438879884784820681238545221917162309079476987487713087890279604609754289670231397085204655078256575819245662163561247178125204722759684369163410908319928196541890656325227131905796942750986943202231162265003050763848164583160221947195943856491677998143134505938824472880425881527241427691062782597904746173407407732744825622366489827906115018555555521431714797501659975801823005690597576677694846131988423631045864326679437166600386920911559473991075741286230580348218622938692547687727522147361411560832834161242756835193733267355033161634938129119004029383493635942988330946086149128794503109163220552135123350615365372295408167294173484474102195397626975499893640840859900761732593851567232049564234950788319905415357175925315940499392332976615861658733504808474858668681603182037910091449176185374292418560542100720264385603297845544557171140249448854623239270709644449540047171233789059678434944463129206000207359794505876135973049711095553734198303935741485566155519236144495586197758507000836937556701239629541677039821700051077146471492970779482150529375590536608337968069028628595827051247509982211064565246459678701727024405455565497727129429366650430234066021691622307179707114651686004422035632731803561705554507322696396469052664751006870466183424414307490231278473714086655438848448640328965381152447118826462983632663355868596643173984623192972002733001001155463303210886351186768867179413444500725705723574799474887787614350086304112008828277643720497932139279557455153297384380679268453993061777546564079623863976943514055599644930218073871315515386355038479235376527429835674116563963391115950770566134271331082385535507091041119612648603903699564642022574347316225576879251044075026502724358258917714844375710386463319659044045780943494058826132940348891105060337316467674334544989553735785738425099989328817834296159808696105206163991012038872419753246680478711076845811473212656191078002000478767756480763491928096717449270845591403981242970130372412833939405740146817451224192405789246584298124788195812794153603802430973479805913633612257633254773939870352896370757985979538526332773749894189206306914431060374330600311287126545384214254037618684557782145409818293604138404102575968399372867093642347953930280600960468639144025394566669354302417182748045065786174310359619532870631564555618083498875359687184273344255413257878407266907517272641812136785812200556014208688353444715544542540447202518889111211303299510355248622331536178093373833665374599554783362262128951256906319614233028414653278827176240306707098784497160342066994117558300975558297073115322394538518154519864212270965546011042314022508973457654058269132099041524406338805717062288804096886269699372627204319103873372891450596038748446696612442139677210741450583819206301412783563013071174989088006916009004218377012944928822880327694485034899653294084602892469456578227180224670532978188897360131592027701037181953776341924190072057846216347447828978390836588975022272351870036144081749990452812218721748258666382136631202964221890367101471963897786386690442555434235198980865623880738192246248306837579010740413664471622903023076386578328631617890290783871847052335071716923229034703650683730679595236214886429439847074033438861888952063830496997676377635742467783032851554416066835137779348418490264505730025247950788376027485452298515546920515497881147933099641968975657898455031522348367890305987020135964138050291886698339322032422392811750019681882715313533282525326883045229780451743626422866423662002719986921313044008778467397029832381707306623018709318182277133132325834196463775448546204864341332976737881405926255876243086952930572735330367100102881252001115528766529131274890231541650712684656047778369428000831146681028981682727686021123604899382930425687295533068546225823629555961009623476226300132466424532077958519417401373151352480992917887383852379311047788962578923811086190649876520145079674147093610119315832924767116743843539597618837436073230474213632612897913558429811608739955235031984412007702867997945379600852045332732775593704956039624338494204564354345129829109788212141872153099218054845410106240507615572990837525802790238546146414108992898059256914381136622227844039850344883389029329652115930992341555975624975343608458573835643544024697039130962535699409550809290421130189064430432870570596944355974588542117468686688187693047597880892421100873299892278198068487021470338202658346443463730232156817053014845383366439178253198851489439771772522457066760590075169683554034786904821098675590127003580739449568552186233356440812549791120995648675344225287917334443367771694368589196380671718102768481741947320180517392281742057983383091150202071759155518875785055867310258372312142067863585005186205290059623426089874758645062184892088349544762093780208870775993633458123866255527128933851266908870695004222654336784904505253828454813434184275028659885584418759221207057319187649409506051389821236582395485020308335226278660801423911420934571377869597654566553676626504530042892905068256095461942825987354276003880891431689051540853058789469635066924185581196388863621235986292801795376868422775859361211874777591126840801432070429671025126718162872876910306765860224211345999110596699343727046365460298954120528498138237045096496988177044260453074137980974405267084687422528504304100234860600318407433754803218572451476492765994678783968055480121299753421151009928879189332232271457661071115495055115152650031399719408239880956029342934963517524899263713288881075781952339268344855237095152405260083835584822062159691743736421444708542971679784288226986796001337307939465949762790018255920364386738968147609053693186698347807127411011589548282353620137278432014683591307619747356243759855808058597479477199221016648363778893541062043777144219087941370590101062663884553119670086867248868886332601868535912139836784072451512996125487297312971754630179697770005835288074603468883090373517051415305421261882919525372805418542175213597869024870455437296260536877896444014563817990184490837077172629776581427612798410394528664551540213058452163028312264549995644980483574374940273543638787647716628386544504834489000654275304323787231184558657658720990309081068489914087753989677741316996362801477088391706352913667958870585440491316090542614448471697022025525969283334879862991945783774412358602181035506097252548267833962762206414516850872272502900485240372515266755667676460654340553762288391855620636794101367025226032636790855321289609606860297018004720450770937561718944330724159857833266599963485210106247832153030417341401481825536797793607779106609548554907811390551608101178898719788218902634436139610110316635226420027141024565845704100850752027242624401569764945284863630427102242755214309137241329247982396817368976661800116436920652570260677410725947700177358445874802267638409470441416052298794088893032275675163905041184719675638936939005234898835753571572159784232951913988420933022192376280408189431330943658574614000211968269573552248461477355725117631346115379823721361415067757257948840660884840509705117786091242824172531847852610055802947259187722286140829496985590155932869144549628366707823610762432801990987969484984335302556766742523581567758734535263246776581820430330383828455281196851673347288987259030357579555370963387897503431362557016034870438054523729458961900251119686569459797172145178729654169912974976376399625462622269834801666718010837486937309395048747163198270373539935662853103707356285312107754110483803882756496331599846860010426433376273225376374717742839215355880172556187823341234634604544546958802456852445024239140689740554561152558087818643603633440784617039978093614294316961030390572143861214109857937549615760702152105277276576706689789742833887687441294773065597761613379904991162629711557951589957409656242463920169153263139385269177068954909925664080349349131190021888028241598698300783338708170873757025416852712678561074799509539161905753822716275437395017081791046686640463043689918776780631217258478099675673254532784790366155494264432548620483289419062088703443341429420308069666628302559664314660957085627643073601099974954294079945790184022027370045374839996912676813472229061695943888230729349593060236285470695238970337472027404614829203029243822666051587662213164957417723449777561009317446367565745730786439433069062330085224415075401913515849868159249859476115410345174084814512722292066174868665102825870643557110101009593856623990266794965740680477723517992868459847355472301013105850897725013205666765978841250774838914216457129867958476879524368543101124967329007863819687390685501323248265860924851346703464566418653831579979780786445792871892399828696355128887104021253790121881508681359786782234840779638438824874851579878380633258693439817015646854187283344336059224777524568339159908475440893865338533074607490990739162880825299550042227644298828644694888230174591301294667177488956789136467098974618611429529949002612746415725380456937416872088737934447829593639731067903148453881034071422277505777841656115671739447891552174280181774807595916685683070560144004503886146810310652814052035883258150928138453776256927052314485738723266818742798373736206904180160870780547253619991404780979676640042327047718930473013472473653281009646919602782675275065363998987639927452418940604467833953352655259171701605189956090513053484217915697299164766680999706067934158484579713992652696601283751889021497820733779969504706809558765172310271867807438119093208106065066115937810146020835073667383329954234726151996517860732043299192522731005653791499589733403410391022007454295493155736137228243733653655077566957783112844576984866662277519537379798382328090089679903076175528486345244802915744345857921444615317259572437255076654861399595657152402338258857056412999547219699246382522596059570631155885833116627314412925991223118986931937101535944177836712124188553145926905405976164619374616343778854360956504603422379141348147420266250104193960913584895416122789602691369071865799282104719246158726602421450851045893535112441400863027485850438814235353116537088205444280784826733581742673481420081766572575411293520952199833774070138825868388547181370899802220063117547134632844347590798900571993427236618665861621687308562417323282708085016244169766987270633754040950111270166012646310333538162780492356648237808182777657008522679270346766043199196251237511408659277025484511541515054097013535546390404542257908748723309933614244774182934382373655255921593871222989162743763525975347722953699999801597374948983205119912034421946142219375322604785929913183376143905611575864889118078590947355640407204948155486201830401443560934061274408180895081854515457592195829168167804518456719643937276580772562809751625394999545147373959983840715675871912540969778387961629882874844311767063462369268493681674096676591024819593673493748494303511869516092676175666245807131328796046800116360378821337779587514737483032670434712247246260767822054769582981894519318145783824452325184675559039960998250055237590079439953204953883582540461466820451598435830055964874437256462059219513067506265026458486328079159119935449991682757286528654779914182371906416773195535969746708407890224833958077333443952213037111258129202926716347322335994641083089694828856083729748887820009628692114653135222794031573138821398061445681948791459210793813920846600857598172571211332273324945933766618220806353512864473221877497242426497197318448650575784804956649857513096513728369481574061142896113574458905077246825340512357329100342211822181083508230735778952824020187766736898153067881253013202116522135795830379686908311811297796214068893191962879046714505507103785830967378167640438115374653319472372190197775968882727928364795947882125717466620146442854424011823843521769965809635776911169307586933255814877852518617019940049560703265340019711842739474147418201994006484680113951435969646765372329550351757491549684234867243129339764984561899409230027605935163957403882345153707270124976281784978691256876242204205686374206741659848815870740239298144771302846748336487588084276345956579862634765963012828962339422765551824131490091124242537714438410374697688411786888322996715948508038374772610604550250685444185766578227074765046820838188461208761742637544705154837850301142710373944946608023389228771368660452678915114479275546963758286703184388056891930183975414083524154419814364694949814367095008614845515085199061918760283647388486342653571100514735089399527628371648763086141653826301853257769908804113571732806012625351362608959022461425917534027581473483484680020096454499754869943625459152425607208547793715849169666957751093641652877653639947008708436998110278853870688061212203336099788688510684234174261774346138202408167605430449342181773164588127950069383873621546456701736209949836661680911979369499977569066062889355715687083991877879502203639212027325988708889565091801567033601331232990139671732823721177871374676087602353228688959061719202895654441042587183538698825909045706982564108305314524871352265878419533518616629491119958765166971182524953432793473307751902140898979617522095094162258438863329126571626794100089421366148235980267654115398147605825702288266177813084423173482400389287931486143048016309853352356392231034504467509954226251545684940028445875349546414320146001475192511581677510047719509396478008833804227677334139067144901789746766256061891908271982685591827318008235949989994425047998505846670914909435407991806950193701065850831869150981542593573146585328910939727717966263837499231476408909312554319441070355387051830647174215758852871487326187558215805390157581091870191199773200298326104534693173825893581471187684318670625481044997980435074739811066075569835753943472890854868028137007987057588873466507910749851787707423315304258366343414269136799206257638558333716116654706233400261963855016456353003296643165316679585437182896526652797840705090023374349236789627393249131836955133487020382421741722744328434007920132237268872897292698775172279202510933025535056500588030714440850194335732288350882938202936812536971556786008657545759435742792795714512289532894630803356336585146744839072926553227733432240160426762400946868373797885864852933600382620989983163614741442511264161855844063382993602285626316226693192617305287486176672051594562946228265421148703645994788627014162573494035068342897004964238521656779330715431128562103178854269175464877987059208441032335780360627531358700873647954993189958276510029169712869557842720370441550929483087841210926444763216049957920168232164559772711680966086640883034373792973813439745196710825051522436214944625751359020638173978897907011627080556998650943727375808339630854651281293211253026864608662493946555428776343354126646775043204439517685818391128317766924415244226550007132879163133860161303447927458871671538633757013469508578663231880257663127573461694635220143260953476600488589196477496042306334600606662370448328164641774239586034319030539874423821498185827281799724703110740977729247919689168505340570020138968623744922011146195387351599398630452341373348890859404936027881224660522664748912935882371741353273238194570002823277645430317776462725426288622289045264141271060816850903608198339243138501918661350999802678559780804682443124598300445006776105508780975119970618800847570333123528826466173581104694903385788707422394382998987957715465505484179030622978613795551800405060649431573623330132898445834448386033247372021855411342568198227744114943081741233239522911106955958719340869369049548187304637833204228690031012850446965441767691941548357327967763414406630666362748771393460185246770507680936516610026646856768609740521291586851775638082906591920370430588038505525238010003563072215263057963270651809628884419791265993165521879307361571052677425384339553136773151208091360919089101544990927917419566276504768037011167690850088474409570400877782741436556103325188587769296431313316231212631705208268219525307238103022735275736386802477337054707676718858349753629759023876452729372621191352806689127346591274569981412239255981051530470209084921039322108947306546159064833318569980027023436404873391967360228350340632679325516554293651587243279319884867197647305598595467720517966861851796809233370533010176664141379034011432947890258140759015366510316699275154185564278637190496919767998051813810855017865021043928916255091731270333692112941255111092487052734991843103975271685034570193275115875504321958009000140817190568774408759510826524942921143571376146831729742275382588861716727450737359015627594974037916326515439279360211997429343023135347981330391122642756928690408306611209319597861527861006725975011666270066627119414198355789898360239082526681008792396527292875865787166581712936222440590239532232505365279225394926388328016372847982540282512640885857303977213679673008929615563611825278341978766138743450436571178100535533865967091864789463279497062836447899254566698123534724262464971114201658158529633745330733085235284570246120225744427585363380800168335139361744078952103223219781239264711277158546538831169330066963338967518822249209469363622076294581906009404654007277712332388560030750347819966302551745935270399575678227068580611014023802696748444947162651163957572196843142842713128559327541387549380490271772510841509965180527924363110775391409457313626806416744466331155475381694346217281884603749893096805803203141553089827831470569577780685721969456035258969800597284856890225823566733083429109121596137568003227529005529571927830319604789501206728439852362232431851254063985941464037500336893405563432429681066573108449783611779623898300190964295538015923948420857305204070631139116504471355770229799228297902026801576437983537560148775390787531266407965158522084072362317844121430698473943051946087686471852067679043084469805812866814337215169602456763444913864259591479713236535473601364558819834684043854388289864079100188182958446052315052781606342385491299045207479987343988610219438995252939456047055510304937865411976657247958828644161451714469581524454328213926802395650120423735848017714854430493482091916980766126778984012900336449905106824591930967822243258169881635939161474878550832733734323801802832493844802726991211465412174652261815168531552254137594977259719588532697965179801826074698114269935637720900695640501529219996992473724616130172030615925798155082978414131401809900116998551587222012219348402696630314537787289482037444137443580546716489042854460154925057329052968669592151201540768874530505401269997273227791522081445930937689159897840937033714928588474246226727280471272961939295639828610438638129032391539295000638451953506899612935631275643246742078759475048189246529992375400024800909247028668638249524107657412255822789679666385005281142105608934564048077400788094422489868431415764507232010043902290311879766158064235541507216825511187155782161154820960231932773715244178255189632432541241258681038952580480600946854283815552879980639558199332001144202658228426758150820786441986208680938703786749239264125274798792171561683030638970120165765498625286438148300636551263659618142052489128126149924046835227283616869746033491379750765888922413603011090199423190335721063238989690248826639693854286349277518015077830253091348758032577880652703735241939881661081747249463176635515216596121345469538347119168639238310739463487699667809301323465516231818013820874723932666469807495317739426591227481112737523508838798286310687077321637446506389126077653684967978757022664520048482499604635101903170913479640745783828858511315747141787144219107137602167067364948279747181953741508376055842227224764488305410734148037885142775980537005660975764994845771833712144638527385822623877173030786428327672797429115124036117221553952912485549753313878303187456781582987628180510022979644400667879684901208375630715939782973869122058678558195742059155600559888283184000997958506651053607164550190951987627565208077210685456260837561560752522619823222615440176921560600574533384382142210186801148159072844960240949716038423526336473235584030110709484612963598297696228916085210045310134362119084616105098027443487448525367959112200462563222675353211937919181322960151849217555679547275025600080716112560354297010041400572435860810438349642419838708202155514019979949714789386169310633519874826900686867626973473961407636511345284920228303133398573504590888835147145217264315768639418166140611596351408944280678561586593660730574276400622418828350178433096155570898668610633320957970771181407017076191234479666084802854878336105181589412896577450485906335445213667584448955755094825434772598418380427972260055848529669126084716195378701467809457169937217872838711773486731254254336836002700781925346709112089331970261004700134011289038135865865471667288283980862010361189831076175659176370933020288907174247823257265541912540803850944294178730523589831809870203513889047416777997924995143581295346474955770746886127552621000318761841573126073969003637012859807709100191169273120910998563750509228257968469731150286363681891159252863076715483074757306636898468541779852369390171656386758580974850627307393367517145230188113469509265182664666075731489361641335275369505005754041946433557180969579657386818618823286883826081307955678128295224836011278459767536651536321956828438525356227891077751837842827938992598444972233044162480394962785025346078830259515110761425672285244341685432240206411636493350015802667048551723057487965215733437503859057186514770951437465294945783954864278804679271294379151622306818844397436760191045597578041271598193928289442846826320398994871364334028497482384373128973337126378106167355359626300588156511337947062074242850798388757288619724872038266810198956700563399044289476091290037401987241828056657763678931504989596534453273566143177659339852080861653204269529749148275563334896619544775199139712986515110808424765084988763387072226666110032505330087181884996298260051303813239159167469133875329661858365824509780762489939581704148043855331107558987259324203799842416224860990587212373664420201445583433553682961429475653794756791925262090874012300591053814289867777127363584538928181123297665630282163239023459724715769065586052211455409707500490574154245191080723067038391920820369540351150935551517582112902257658197547562131210819409402175632485123916969131239150097480488101209485291394741389189181802636835551570661921130616934186341727024582403993134871545279085582272032371422400499733628637055791276266386679557739319159807530612413992720038073121724914810482345640785007938087225069402309478859032680994963834076270290735013107153620938430491217534768014674564370026888073192084829749239480000914311796717442319083342997485804825784257894998817931991634433453504411953974683241015155309885701445132613235339066685154768951749838650004644798529679629760113455607095177016905676779000393474067714246068859468826327071079237689248617315752269966829812143406646028257909598374875842073389885453750607387263058296317047068375840218193777336804926484611416859810905893083376422153014285206000366956895115888992325840291655867729714327703525852991620958424924471520833235425900914859210463116019899520407470351741340076637441147749913890675446791815529213044973734546128205660346252341262460948387136527700351860163521234107714071146614425104723431072305527294682889346737675078407144585193062951181767332781968368307713668126709345148147044981122078588758073828213035838707162399298899882430163881673287360953845148921677119199150494201619679871752494182687016978031347976575445094415490058142175395310709263723006253726763951790155798069421679801881363117496537060099471293762011768262517893817428812787471172249491292300209267535036670777061022649896236760435917554292789307631269342295329845349589172662447064409733137463008804218965845670436438818926886558075879028250487770912224783643655248308497237223526071125921280190371309034991094107278363593933116234736148310130131634662169370657528932841999915337488732579356633661402121836728024508918432527785811517391274333261279654357897507513411258908016737375129958089703268495813747254929767405718872704626262620843610026051236324363777032456805024170429633429214241893045812933919232671929838622425449234339577791669322139618236642444859161338089394818116143622214554700161536261768688753983993406980265004867805446271947291618801607458766232637865221413670638667739734372734595379174405117104811590198573988741884601324847998107258888749950038616326596038322465401412454212579059098973698228870989623378229282625629645857157002198888226129721180104177123033875018071758809749565612480449789127093711770800410639015362890672065089093105670996947149542341835069094425150261845203275973331559836163727234623712131267763481992958839700958845728060330911414200387171420669199523974081470078582831213063766099659347355434207489294856299908417410865339320837955155364485479715215409153190729840365964863953241364992678441520309538263329186230881031842608720384675351347263088175682441414985356089163153676924384025432303807809331842731681725506354519567407384114721857825602799865814737129585617343488817358047001351769633458225234586838954680205977574330569826392367027234675730259392905218490507748489910737836725475742334948907097087323097582510310313272044223641614618902894042894851635583911333776551641629590972433702510401222610197464035900151508476827203464745591803146930470229909043065471768582456388420642109993355428455963867863873754502248199958633016961352851110610376008902852697152459187479415391225299233475346824451978502831557973501784856656818570184245294079649455032984096687946429724699877070538385886791919365584719570191743853789029116733796668333508465667266848490628465251564591809858624837142522835666640328763569768583884392209345299291773799085726293968108817787877233897699074896736973047065444875161812695323202336447245900364022234907204708413885383363369902411505530184410394291713410426019061645685238854019498330367190877119871125573624145781405236770500964068246092223626158078479477901624715325738936124072891971802933201692517358827848767786367003508355630864724406573006185251531039006996189770427834494349770504409249924864957087518974495676336235189805442211452996029519324608929451424580563285167956971019172121175907836682711152982486638257889034998197413399748164082878894999045170081706903357070531585608089710684786201234444514280060501169035286689997411130034689465357454098993749278486867550723104114937494366674683000373600412459917494724537933312227871985923032315387901666070011633902752990088251856811646286973512905826520776287409406115295348196201540879529777264046303483857574834646490039771834479671309261709170146812146721683449279383385191128106193186981234528331023683775286221152183122361274837212457932157520194328841878912181693655743058001964384835093282436804683698527665782780879029341184561423352942532507581829542659795230311414697681032410096052089902221982698577852992755137772657781978337964973406829888199484390210979649869368455432230864406079374542788603834199101842585773053674204986537106397949983946429900467838113208609635342714164233013594273209221399932043512131012692276311241451142714682140646104680460527401846212435138830388763877219514827584530131821233209314968690349532599675615469649268305170651117498542857978079439671591673812377442282828398490247113020656037919948889769722754625490708863270496369146422880992355332529939976538448842068249039285022160666250736919490681815189287219750137975685125777996428084352933958590395564710245337129191153117423385379821424511090131012513162135199280325130256439167028210373969463250370242101300616888534292150225711236990785308708252844843282155650758907614671490774346516649974661436056793997124062670012928443702761052410869586380232890773640294548478810243806173203319437048481980403138282120539352107563506636810649988853815220479937575686803801073480626777594420512374008750320700538386449894581910736873001491896780428000900919954430245858495588706826046181837709642731562908697493327489853434343436408947830566779020266516094331219983032047063614165855982415509959190007153131913889257732568626149320377570832663162017113894325356184415066400100845762568960004966563101907996264839384122767825730509730149568491461179509045335742160711423080951048556179690224973608194088133829481850308950206306878730325083332205132646064726773396203391798653667914477493628215488952780351236863816246447469832727733608372060814995496015296970598434914942778700581234357372147323922401794195952384217765106038465839773706049570763514250104080991097107322935601994964157047190014177763608930480296933676293003883051911338672864075079427952264199138649762470664588704795078485565550164507700189877075031551108450452995800377578526283449163816081614708765110065817842687634021225260791675940681714904892104321660658601409534203413573891444427266242755059193464956464619213437764451714858785972579278625066997532172998780265416270112025073490995177343459169566765818382585410599018851628487100816636389122341716003674199033934388452794058154822961399687621602842726645912916436353069359330427075713992071355215912678868242044661723983099682597116138670618473960845067400098128657963055773815149047431348024015511959350690785826402286638454684731160014434047146610191054035366846564143255901043483933858233576248342888547968160235931396283790107733732367822869946981976162880985720857295679955024979044802547895165427097969641272430004242964416860227589769969738996187714820303137720303383953525338824797806970773170241463550699813927143772437431891675146805872039621287762181675530987660662834400156358871720051214926148363422566012409441534923802569609059431302860061421498411939535088272394667302634441306845068424842555135474758905179883372372166414025316667824964310395662789233881290878090965549113126766516971173252670575492767553228392570827566834773527980968999652751400298955485744856403510667779014371671384651680074098258753227212854020074522822060015002084545953076183852518244116697301624515816798369505111735760374192423962973221199649108148689059549647430760380737434202259423543709467148133967539944202762970888823050081242061733358257776319639995553137331912655254987103072815714319081261516359884014211503070342665006796138567110080177362890765841766643331031978030758652191404295863764754435237790243279002171232226495723925413695801309186070781761870395111369609915531954941681659451029302774829786776942506575879324683032196422965494143932025152596342898456002310223964710088296484927487227269948961402132155967660169093877336299679282447602029743235182082008019429389776671592536754599203551058875161264007139920823744526166929967464917909269907053052187144769115154874909317812361292386735208790048689489226141598812120439814164402792890385861774332865501382999716137366808810954801156255219538867585438181997850206681065729823610607637371827864364697505823083977281235251367513642429001203558636463432273287293392847391738885505384762453724822187375406286042222311037508387820654614268785513329238879216991733898330970635917781140605648088949235947361924285141525470495704046270578727313473765163883657134003888269098232716576682278605267120162508121630390771512470222010570818664551143794049439262974741069176164585722443801712146022601693004999974439646624099872884962030879853938374622865364615722711955266592009669376205367259196245228165716924309720385587481778959143551392532785772233794350110692835340331719487355383899746570007934115459998779090276426865174073293363784562747598094646825654764076780104949699704521339388374776092519861239137917395440962705000632656520416872067081387828462729543956312910066261674250751723862049759693603774619161103040610001231386356484285607245370783057491499588247678823469927624306457181188344757765241506868632153555460275929713483610003022785136515646183569368741939432175886722959656689020381185693682261724652268038068124093937414312463173771581705817873680930237434929670132482010166947263859993417912769115185472170215048972416074160227148888131189435497366678857831958973094560248822816427994747845970420480805643136995153581385602652987886313844423515523389927714278043789397647912540033028069855301924027493910547568033697245729302621484173082485290366105226037953205330457622344597130817233050482008343273498478689238511221851451447049197760186568055024329057858769494510548855229483387489840050564062053758482017953773640691167435334662225561012813498143031010357469911873824352250024772735687214562798209410321540374821673929197423539966154201451451493067249266934874283678165822508425406043205812659677664305871122510484893701494131527724811460895033121858622955971839081510582781432694567634985294609530712521186503078230836030442287783080746519400544848481335139596190266117871981798513214296828244915866905770206054435430326022515686811601087396426735381720344963914837638428674780951258540608447976219973192436644033632298124003206578227402462944805808460014005222044546712014724569105709795979366972707638685626348440547639715468757830770537315908540425699544494790672232418360877061499110846965356752948854880333157005010241563557199374395026547673480277611932761575492247384706655863288406552157839795943811327498210947581821427858265403582575789188686836098818038062424112411488512541908160681016887475936287471124522237877425640663164926569752141098372176022788193086310737497143120027938387755709791063657298012480655602618526908451683562219932047730150984384440888612480123951690121546714578855216266205211025559656256495069588968939201135395141115959760339139888612728868366163159828770086775198851022809049269716114173842350414057103317205176916228692281148399979402524274643699273403022351806757920807943824470775946887019505162137707460233487227096960317713293799640528629239550353727306549468029065260630844802924910481338011364837863917539754244414715981337725809433284216603352719524263196133500629732710721486883750199826848398073035339636828257550550696697787296584555406390837699485767034494319648391608689843936961652368956668458493412571747614532473613041667471239414550781908129591136017648587610466641026355636891955482726517114242933152234879893096877501518839036848970648859155159357371491062126769872037675777151483830509827808622472033695989028052557664337893737741890866847210105596368233825682744140067122782031033753551551006642456360291927584772513229280676963486920807180498860299647933716028811075149484790054183946725779827155258827930132716858935997288711311122953904133953061550512779142747448389499925460316002164378110982799267002704195236881728683844736145352853451030872064203509871339272377410546652927179860303517113024824001325464772776264781078868087310420922343414574876509763269774756846378051958083462326204431488430205284990917438806462244372600286225918692422514257404308396623864165868026993846439753138900436075277803277043989434237854346609604170371022490295883919361600717387009747324396405240831173096153703114157779101241723365540742743307203719512010077754200885903530742528951385114119467680615501706987911684406642191659438749375003842035173652896115334466684925799342029241632495850958034212256405773774745979243444284084154531568102971631696531608637393987815157873785165955585395296384815360672963465921505094558559608225584318592104487956245946270642674213393864351135722229286159806157196062802277768670105971544717171941008792773998560358715992460651047153056287273384132057509534417969300329842023919922202808591339074531987416753498718777781299695837803590556796198469972866266692518503892774115153719263088028344158659591132612747633337349673770027508554348178246105464362563449718784186647031319666476438698951336614876538769133055240525972661128792275811648589882582316291695672686691470660225762640041158003149780570959377205542658897752536251859761820997980352765776443122907281540881891604657304827909691768810709709808457965720662468421225638388903189319729026142342790964974119004289816872004000745196289901775995932765255410137081895332362244518836725236947398068463832196785377899570657046674140445995530299683226505672223446414096621077809552941793465975450236942592547135247086891264929484035504972056246386495785285880137201870949311014499482096710864957779545237849122874019951981940861715924907111576237280966612596907139799996085893633717042421910290646689997814139503192220151794218403813820610576735808524431693499564426182441199630593538123445211403981052023560370504836677815780076440797170360848645057028095275398438981635420982204584124328948636397699835504237261552783935568397162846944475880112795280465669380772766573872928876963267283890341377920949707269487584836899803826601041321097961285715953664248625747878446995460856828249471785121036486676481002722758669015061552508742213524135721576330471301953945865148991499437770274802339449094578233880564793824275829606162288679291168188227276393155415133366756586152971820578861435617327868302034607957816002054873276528206346711136707315390627424280205870905165540932296306678832269809233687048859661100227180667494209169991206879462567746145849906397914951911131181824237326158308083717099841098056891874185212326572023579916770409506048961056875647565535429368703970433149827679716038428870600201249575651858178354528275875589314976979807356193480534420155762681192871018373308571617047863545543358602636459413934150728856378927796678712153188488119316850858062444971605844971791010075652449863419256535345762730822624726036315534227020696802874866039607318024946969675037296190522395065238111282950360353997753584164882206476575294056876741924585128662414785196466685436173701536348313677842044118273566018549229435769056132199538772229864402189503803043559504395471799416226062837628437736169077581041250876577956148579169085654271282164867007179919348688561423380706805956789715390651556400246456448760262367564841546348775029358726788775441410720067434993378705823753468089993923829139192426174476292189109554020549280440311905226749890839516777575925077920581279589315433714823462271148258634473184457934768238274741546111636679840236693402640293475340922203959130813945970703481467914967043313503137876830806547378692937903302908226910913306577850463614203757454337007780253235653328798322031768604059944572675582580124180916943538244200602986298205606913143120893927083274047227292271715907987884033979619599201340353522858427552427580940240636118695878763996170253037348703831389738422484309324982648372100085563626088153710096634193444061585068587183585269255936606313962674391214758448400786674944898203385444668391355078847456195773544918630421281729472301488951757266065185697355423792420662378778555404736308739714959295478712765079751996194382723620716598615665244542346657941897196731827093843259296844534480760197709851702114745552660362303987903937342987745632792904059684898971366514438268631339849288862682590243861226125766216624446061416504129539982033094240517648723300618410518014347360203987645733611334134116957050844589414952059160376011875779639764247822072253078124319060888886629706391583133262334251845193860233916472743350188720211968878198495390301407619080326321020044151889606037175014822399632332344677235110231841042243159366555227053787477095690893818645008286373249312236935891324975188450441980857453356296209416083813670608755916426932959419673637871315776789024346016896132944226724454984046721980371011114071073562464835917331833266147767016372858109005306256277654703885933155893569108835072334211412935153800871029059290569754346422661970019385923251139042200520023321850112964283756265821423737239606688565582974950057497962684540645204391857039683141552875396428576792212374068975698418175395706003069621567430123666311102014547533083813246931947487693773334927731206235586189842604346871220333750266715299583142867980195550940563680872160024573645223758560235310021924108261494324091573525131411211445268115478818954413556798449593645713236356891522934687689888159530527452079510915049204666636155242723090980089472758619143377112734291360935894842290152244332676878365299803583197916978564770673304795945709872489453131521801477318352551586573347676350995360297092073338855967492534744662141524259734525488005623314774190574843119881033233308460733638160719417139461448249859165849600939245250033553669565483988992978379204548782348144985974603219484058219191515765140159602520180489637607859223040173262393803648951542680919790036827775944661826814411851507409736888204450470169116209050955510678095017344304528871009459897526882629716208701996249754014098658620330975080265757730208484101588652740415655436644311772597958577250928868011014575350565557576518083574226954069232002336422407549202109916983985280132174456038071373057580571528277179416190907265285021822005342606351442032385162253799569426231709068361931738940596854039251917564161801194378771335939530130705284917240232264565441510519663254012136417379081759614328652622095752015218033405451328557335590869271161470553483287253384600098575228204260106246150119841642901174278572418285307368995542465344213036912701049693744820563377814587387883114329774325471651237733260400057355206106392523632037368600759484206761107299606257763513322307924663631868214957965297850708181666933615013797595289479309072685267352289065154758549636197187091296584799403609693070580537496791441374001573196127390355084881739216717615707337688102392686532245703307276010392232486114578743788132699055157970698973090050126797294082633529867540204770417147675115203596446509290570727065570817995273681282079495945053230068604515827049305589937373521953953556659285945277655311842157468009082516631218378423973195292716370911210041032198864394713785716221445991456987953839865329717528440935694881948814984443549952876122328008695960996145391376429281116799980723492029413120395987716832938073751133121049485242039933563389624679460555459937475388202270605398431327035338527666484844543692954359742759393222003597324691031141016154339172665169175359009235564122750157966586552637479643796410172643040540129818523407422358366467590465023664603782515184999061271317191823131764903570493520896051884901690963549425996670901862745122126070823510332161664996763278482693940273717680126163514007372841462912706713539251621494422650239024048622906642682750116463525089188331531196808959848060404173930809103149831831985908260762107258529561705376870232374446020660704529535975429231808779698958068398724354232522481355557525128452612163223149806399540676106367473116441822408687622974061168886912957146511609331534077868218861901034879405975606284354579697192191272976206021242199206820386981090968858104523660574542743349104728306039875536651904872502250061806875847372875736027768795031444667904056304576953657415701697028668012816907847605045579133508753581460572518593456052164330354449610309180472307182410615893980204881028835417696825418209301499697070734135667730283759240530188444467599322882290708756029980859511223506880478983175866936634312162057267458129999166457523408716521780987612312092531715577662720776410823096635861841001726407035336494719796733303277047545503664510351360512082755107292940350083563519157231159128979038689698106483985589558543356228725709108734637581251981426709107435237875265598815350679157086761538719378140006348897097519563690141832312527516440487774188064474053293462409530527576533185844438041873636604226091299672992029036835285968504397908739833084493798184642809508462269995885908839006542585019335902032033366524362663594055737879944524577017879813585169185193577777657453375934412891794716076484198528309428245783255720365559368294588674675572310816700249930679533892668049037466790747696884598380989871313609647238778853812664191037017970990564135352269754694918615987476664077606987132949222076974417040430197747105041201834247733425752200432984118874968865063307363425865283993793021170328140680718779522598446143784108552000587082220028040633056935164971753626977883502831943553281358339619639470271043642048962187621498141720213409701140477793025499127707382321024508242892052422532309156768851076383737291869048914554363508387034647562464583260501316903164294329117783792050530053492070607618103888443037500017320211841580705233637025407367650530156601108992698582562662650427435996312674085451523044920825243711046740011367203056555677447631734693789744241033140159574328056313318738554778282261048733012269247148391383460194754076303611859979092239185102333126031543213994949204230311594181923130929658260949320586164189695473199263830731760952758072506362909715885881826191943689934935791361882557728340460650648631599329765516197340085212553858861430127143245789473488380507778802231553873987235678814570744937505984727541767474416062635165575092598347898506132185480395750315615182792480238301609874609713952544829563651318258766513646653394741686740766084299886605276673568736466331130901544171215726236383252269577153339515233063741981715701779070677655543796791735956002632860302381427646156147520847346771957898342458334310579474451007149225328504570727647915608804561710781649183437831126954441941156358420669094530337242377821475283751148227357009294123875491998124248654279870470748913740325082919144299495637277202114889771898325947349164999074325399476141015573585023423191954397443521176964748919456619786683618366712357798927112687906689605579523289611865211963285670920179255703742511815686978227986114019958373916997571789156031398169516193922874769503398229163480672573965359113646346967976148090283036877356061648855340111620982964256666665972686157349268481702463376851486842314034454018985347622015757098637792177437050831750187976670568787029068630766177839052721078240380321644260352689416753984606974444399439457744180985927465185832329559924695062117741801526032790803845957113705057449028151291756814231046888266167112518047105303428602135867041212556750569923662031876878140990167774503406843625686104352664248964078902385070025018158161939254950664575137189586807514376990984337539723998174151371945485627156091061967368426036605806293457005603169368262715454765945480457456800201958847531009532734503598939602138246578666364794103188861564065319594133208154925241375931831584374512538981689490212471783828679551888032222565420661501062546079397176459774244723947517414846135215025470800870842582478911423667484605295458006085161088296855743333849360716279618162270811349126844090919800439285624586747609683462085876844553351920269274359386002099482030191665405341962418118757523091212340353718716409216264949794304245969575496213438286086446446130057267430712657396032958950361211209319457976595722876591442900670761377784974591303641783925962182865327686355293783705874867032612662565259230758458757512443128903453467841027972239357442410626407316362175572809276174781964038534422089837865356758486094032783573090263703294867837756817637700917252465311142505784375007766396529606343694787717832910374937184008785737339004953403000568447437144148817182239386258604006873767844222423294081468255224758671950115671217840900532950821147642765026128460616236017482253174690955799058656487747411299063971023502054722451371096480458829023446162717867133007657527081120797366395082003538450546433102106194158072970129684303567036383110593965944457863120352922209209693836190056743688907695809445952672686554146608846249366499272286305184561122041479030619752840450934533540252137269143296930969560683461331930506836960276827117604150536365780777755276935351605853592162487278550566955349395167663514939659823616700339195153123660832859085296954642225713564857615995164959749021512675242763980002191583976451725892984165346424429405886876505490872705670438032745971816320068395314278665925243543040118314824979891451741639673438496838643252992486449726080699319868156518216394452253638487061628235550807478012121727067197455765089883541776516789211234784564939782022322020234636266130261890160685873551155982375349377850972340114171062493732807380134487535781450420084737851412553036422171520434406469527021938697706296577325520331989497563857002860428910035955848754258454089398310631044959352648828319263301389225112663222213328016518124664118449104381142014743063844868657682669877216136359781817713494332380564970109861223807991559209076522773139568135635955515033071975967403346252120507692619402214486667785796762566437288165532884466601416357347788192523762879314931238893758036980087873805708524644711823015082688223323172636690503392232316979605750747254969845274055341728365850786509455847607560740115962157343403784487231688689290288239908352694596362680414390581009034939667061327731863320038218845059869212355293909558117912449310751729992839575952008744818196473260573634695418527697868324117612912990709590965408452345825996799524032766519470294401421194827734993694284048358910895311123142242000225925765319792894385076077648011469004759298940986528927002063793184772574344529503157123900482078739443548215586594350240039316544489973355798884424175510856880182346185904007457117591070372265605466825023947534889690387603029915692557250528249109506742552022017707926732132349926272834437503487296925823621846722271298738465469438404153473202780599643202925466615760337145680528388714869117265897148626827239410177022203281627694384493074737211886620730820153100845878695746067834045526290614664123352784859363173181453404939335718371418845234129151338389769328747066774161060143873606367175880208416770562868624726456815647652132109298512498085754903910854774699366677739141737544064540086496320727423078538044038782188274692107864993073458169463015880304220314965130202196572343965734877672135055658890333787450157584777279789595003133132315648205582757437110754951682061494146330400634131027836091830935813951489374006197139121123126274833677297360668201146039966379933273826050723762226604314386109509036149500468041488741514769138830385125041994367150382870292735893482729798132222782268719018939713595095960456118690489176971266530454931719675271165678008350353494325402504844757345950533047161023974983427984662604787271102339938743604552974782766668613979347528386749816016044125590425957793659500034748905701142993170986861537388830460354869351847998954638867562431895871245327688925867451523515683473174762335299014120905471279946790026308365874365045596398235081020581717217868808435139862035281681242674429617553350509829542608748182414389749621825551621716294669291203385200066016615988249088023319209139717757169096297436601611218477761025927237467294134251552516535288159470285687497129465277934275231035341736931062028034443547049080347249025926206573602265044253242419796867937724941584104753622154033935191956445857053984511586543862089296158020304106611645402545859383351077442426162753256892072532909363512193094964999767623794394998120783565412611337961607894497105847687383454775194170058023654000969061713310747573644392120205514882501601554443858886889851012318008433298872528742124061554993922096839616612983021489419754466330283901857062795080262380989254604367581422012005844508227479003458562781021856640435238666708890831612792448831445692510145153265470764000522167879758020482430741353823980632153831929643513846193150662544210445744373030464614887699938370483040980599934415460942789369823648796211418974852637112986526836550629523940128969216965723285810338880433848049451711593725189857965584502281723734188921077691357611578021338635382260895937226614873677177706393475955532480457030243286584084289167602360465565488689497447606461934630183553130967303454709144105389307159624191253469195057736312056049829212054298560558884436585203321275552139909660979893089869741490685855705194479436102083921743358096731314626506255720268689526103135549400208543882613699683042443772192206638873685668864044208102069312952150361701693010753806165586840643363110282249769023423839684171311532809777022604137305686179964090419523250010696690175189471828393622892446803120132463583213885760176413238040230572809936984481175473140367498483170264060407988936460186665991287227778095596467272205867695774972365060253659148872114972022020108586083294776811907207433764858781673649952400767684183972686930329255606956427449735885828716657550427154055706063980618087724414253661342596607412498992917282679949533844088779983615353036519050456784225442923767042229332484215433649467609409993509072684442500905021217532574812176587584674069622584347787882357302071504308876016824055465138962436283329296762799614646164779743720723904851600326889419972891069387047424867599997060068320284020794318374484752197744950920512311851553677010164276355037067946710214468047676828418462960111456919238562382291571305325937098197604588303582886715557656686290623709126367957610603363940785278032900726631772847444734723133064640670218082979127336949925832759082312184345080477294241878994803201365154658537378220879980312404155245233972926869336660696110008129386492123094156149066335252760664433489454325472951849136446578884407004940878477658721304832945327410818578015467659391753839849316947603745487495067425201632344129102715109865177752952406890193725512704342413918773267613998074100043604617981781184524002467715746319008609505079321534561527860427207026589477646917918831299733460848349970250993408510334297522158552656309692680300824345640232739443555866673862808790684848011447500532442517875330275606487482606699616944644646055643010931936018369654864117797644986782768950580863446917638812473147576032907330929777552839909649203155489809477064749971453440608476730934004066330602008570222515435840838333155626790489650668638700521455997569987931134185061493893044289939249079642743615642066207031541319270369438278797383714491442659772151677307684197675838269391059419983286521122497110990552312917054179020472563152783221428953144680436479057943538713612963720134965694432853998003485708390244444021263488694943691077029497530747813066897904050059445405834015628468694738320249235650356742611418771495916796627005926614978532963715775797916065310564055743572559065508287679201934684622221436622769682411877737160204334499227628363665558447262312406819516613005467455047764615098008107221878232142646196098502602897540945727813244292419329698616292256283791438394291313298356894105269592276820309676989964857555094540194463038770851042920581832997934406055504530978122146583050582833680312785173952623535108908856368623000916374661862811278093187669683013166721841312146197274929547263162635332348814474141377264913913466810685125491596295708602559670880763410097580047727498860291861181813282475964525118729128712227415476752027248205299192099913278235559598959114538423636561678282893793007975361076411211817870626759595365961804302579631681649827626102614426181492309285343709561714396056235345934305112678157773182048021724821264348480826150602552063974347740478617395957056734840808539163751933181273249187132118082576373837672139599463833511306794296800729384951081042591286484558138482480683413232864028788214275835118952188276098109289989133939799100379206645027842517457838920179022276904488196710776215866754068452418703931576567040388807951044347188739523028057509986144650554958196597285706517240528275538379521823990822755707322163264052562378769904771491226965836016445075396068005481823297376018037287512459332326247754646357099649565714757040046125308111719932478193418790985764227491688013359357050339522473971762264063565287872122721900466679677172030487046793466510857347389624353310736690311455810961242391438454040311654187303337720806910572059432036848188843106488456836703972071613126540153740007356434596713240109833059893800682554251056885041429560331731370213752793280360238092328876443993357270141124924035010636736852010640883663996088808746080980278941141526143914584732728801247894920002776444461245011567549158114591228579745849360478189043362060277801659819675208799417490166849766869472954694527310651970386111527150039805188773615529225199182977545685387189509379662595671684384953227571338967479553710350102794620826556904653162171426780888284785222296451362208021035908711831562583687329177470719298825391475498054340623958445038224577332531935545845689376959304015597767869529664112380089888441181639201964819010648976448081287480953000621143712648681000834218984500658068153178572836343924025317212378641392493133109943418083912579418361570086473438375873234436633563143841399283224262318960640740631844966273987747691051081771347822954447141370217388727371562432632973705858599864508351935112279569244385561182524851488833593990224817862175031105319016672159061349663652817699019694260789192027356542313607800901912276426517651372072815144792520815967290176129698881151828700393149897257152489350901547048507470358843470511858986854601239091776755178355125259202131011172246078206719283337059276978722230398566304302615120221838667866997051168946107565146989265151625319907365278227848963031749631009249544676095455656833403659492492043917737949263142697944656686426562707510528157580268835523805397023614946758468230449105435266582022607533851401589774198219091255287825149940117425723888574808488615091299075568498866355571545094994311772867176082126000969565520333988182267261261341990957175093834850253859676551984748308036939173762406508927346422140932190854152886246489399761266516708462249654807184316624782270504784459018091745682308110028012786526817763869875602340958217252865754557920489700889922994857030568193601415061640247061586496358400875013321965789080964152516799453676633472103585136370498637476094414694211580965602291857636146574147765543582770998445767332452059566755274046365297547613799961650509836272136199417559602208278202778410814890901907542529459091094069162209755607075922916724526660136819153555169794081126942566986319058690134194956762073274621465397742941087114371711030421955265462456588938689479979772910387409922649241859401561419362129525763883242348233190744609310593127729787417030457357782493915650439621911367708073176129717224332665494950841674544392578908504308238354509200312426089184969162766572275515263073608529607980506341282453629778065045980845833522717260500005975326041267408395291085118938699310564253643254812627774696048644534141507921497639561589262082394934005409896405619003215005193589152358205701655286632500470175204788993443572825858650875158976531048634016257986226354959220934589678101382571285033595032620481099075823963290738563434729289435287063376697734634915285534938891557461836509138345940079516621188776892348153839423037709532656972841937543981568449769603609129022292148490093505353105081227845989688342219045413748809877885354214904574662940179162652818952060051375550211735819043459292431598635677208675401916790758849917115347291901025454159511078285481406418513006286867523050548784579895497260260818340938165227946118366472165460213693000963485332140248218065989952182680154879693815039272170622919852377520751911268501248689602669587250943656467608251089067932637146191804584125817450667511614474010942413374061680036886112004619183961298259626604371285927211714139535029669238908851564299514447643322638648089202472442538578508175565428344358588874903614321623562785580524375631327593332457773240995257223373928728900519527293244029331049681792707379583780782890707274090838333130851259292087086874859074734613217444573539625332648900502358271865938641577985113079102164806489641144265938241057902561841959762653033833000641070518877559439653719385422879476967311652172833565869288114487624878810696040468043029733884975979786892212828878095697946531031442921996656896854601008426453350510547497113953379220343425341227631053128024183737134958089119609320593756011280083463591113016043085356298649368895244187109783092401917610786734589225064185019257042546681994825557470763721805061920019604641338963320441418716284462365373784676802757363615227613105022289962238923419501030769771060995995050646453426009796547019868521052466577302561601249689171679215514645873674485635757906968870248500767192520024347268317632699482524723666523397288093617489567878195149016310102812299224612321060512012100752965234699101836390616149328218837098098757333464660144256558214149372944482484308063570656646146064461081863091814871093317848396273871499977563910955916005278715286791636821639206766756435587685226219326286434678183412768719336100705208311292508619686879281450808641460486394794012966562014311899049768103913092459850267662532759595839039328661904653636066170506950883831178281881423105463739067728584534314250092244873696164169635153622953673047726927806784964928582720604464675880764100869357411880687432175937055943821024648331439944640006629609345998657768419873825740204871048958119381131462781081324064345661592370087381875879123159394619191613200705424293988846213363847759940499864218046262361415525726382857307618618429566980945544371408036591616855254121598786659232758894694295789566180925189685357506138302374652156117684992243471554048440221166674458542942035231118453472285959343630680134275411177358123249491003909734295836681547556013793059150170979080603883450493200846107255330135898257734800331214081652215242397741895861028490016402356321316311391838446326327959574217347246440004624003047795401345120575855889825403929413507527450789844451407428555941068158844725703279922426965259361323207767539229108131721327735865553509317572411476782666297382175762881819001466505829947870422571379510240162719193263980965412736482457563796126041817902488348498343112712026491485813645739126922285106707709831909126086957767444865645383336008374622421513263604844012574843881204079035191882642206078154745095285614061344187326074755945971988860223722025995469263799644008433182723877379064834915401377027469903452535947125765802257322041954290412158904067669217368388867130338432984000720351403390850865625447460143335004836712584498526233684772343675173509438564257187950894662124370734174907004763690846650616947278447051272708001270262256959508991952030791088016968281520134503838391286022533083412136863241252805883456022577853517393060828663412385045743421034083306055445998798689986840570853219722859369888526361873383031224783259365346736641626902582444844136299061121023728645637902195382429469456849701166966330436894656753018218426586839656773873912527148860202762635944713560144776253149323495710835206207276786071891414091908848053056162414126913672709979804726181019233875700441431642810627938927214502120916443696030217395922911954816743101696349563900690286092199168149098480901985846084457103781658480694369358446646954389182341282952387031869640697221997301748069523213356302280740884463984820406088928943177538995370338466300100763868787695988198189060438791654756909298603328318077137148624901945627753498066667349620580136884363237542715451770134972948326318692452813146347225059991663910863076475666951973395524964828590175653036066521112358316615726274818176990574786748862633549760797643929506319453896984242054462447422662042962867740232174819197039324105613624648996215393247343833260291127785564509108733066268482982438188928877817256525451430470251672919874829028462065555135811201231378680392505103534243363036259562947178350048901982033252709413532053767552237120336381410989829233450307814379824577913520539726197284950324015838065839347278745017124289578598429649645137614557871321329973362602969584631582259179751590099823664279141817121947799454871767486576850079502234874290862068859431539363664099445182676708062061163428607794574449512172541337251931611491547715194730706407569014695551627333361279016202458963898275411464233299468268413482767223415153786941919531519360827870250756234281894128512979677457415508885456438302366587749982138245330900772842383460784580841106872122091310639737503284612255007952917889219538689099025217984340308943888321050528121469901931385118666694928850906822339357437376107950949306574069868273682912435980689572300845857270753972288938629089715015980030242953670920379875765899110457118512549943034211027455942681346708228605620563669398818812544929949155874361552858319726118279674748221754532777897090586188402343191059881082527632386713460454476952022197518784258495208491507476380024260258580475908703218380513148052042020548685195794416063616238667780233627365746194023172070092861042849808709375123051099648505974916187430122351448894262404120970455517368181914255719679446702724070878481151194796982723287712076602799454774692899365713197018766343505984362338296880521828597220400292542515342093950993174173794736228659208156639700864017513117688254542207152527370714413893446736213113113543680122660086856201837514524072159486705796975746391873572893514933145263171072101045635005734700553020831716619057598134006047358650551619566362324678014293935684233455470402573342561811142287996163773277747588359552697285064812831705385267217101264077905285720429789011218360435268717594302153218556248382049734043165349870495196774465405321567659294942861990264348330120988110544360423055773687057913261676753402654259802450537486320950535885812470654778646063018694944858948694439481390367563421002950566003399328521240477297213245375940608474624519023824335741399343873893168183580461567881877222263116835393724303164020433048133204010654389579086280540463874381547329188850166417458071384504682621946010565031905854188641090095633382688457695218748128936230118563530879403641441606699629888599728340098226800651939546413458895957102780234886800843238042596437280594344671698146220960438879570648104572654026510588982364470062112802287472517989306803182921527789772912001656007884804484135094274716792889595243489172503923782620302860018581141361154848365082423742167158075666546245156312084766415322350160905926244591089969014945641631450686782843643083915310729346960241431989255893826226212454564488562954459336057203830230440687862309352743004748730618171500086178397247678737506428893140641463426469801641404200478282228079228296845555593456392189097070217081138996356804174374853281366431648767796204427877125417444039218373995143548728830324290115529130829538073333083213740999308192468289482094217169440613419245809661999252608894605651314593748903109040218748619459486883674238428487092395198442032336492632889524793186689630164964777643114688616217314613786700463991590002413478275764996314915209598840648719231166855907307087711576730444202930145602907831841826155733487469304276996253518432652606726141744094084234461182381943081545597334835636649912270254640080252430597388984396601578795751182768686312771157123598411682126060937304302235051950388153222050846976946908167598294298595124635030585552782243551241118734206354157252742135570372806252789889284696367849024106914976278659692273396831979645196134583698987078994015103867304409286072588389042907679435798137396537621336704729807268035712695082711982841872151455059282725001359676584200765851646070780466708050780438758618057306628950635367707608923852834639051938616693238982906420350368103043372994041496936050881218697757196521323690004762488285905216986575100063578605579330315994573432767158633427038496302630570558453090330776113052170793468836896927292247432101640609561568861336329599127656799079758246047335211545240969599793430113143447814650063951512648147446059119125427882231412836647209788672349227590740408954102764065332190431661010788002343604202965684011407143315528160424440903755340701036743800013656034833251885438511195521120662827875452402790553485392676758582978965570419200753570640133375844743813215794079517519505579156494730572819695627579877560120556175277498765144941743549613388680659871031878618748668924782560223527544671885964451553114305247910693073613241451715967257830135236331642734608795021234022618654356448411615012508868596677962711518521724922826280019796582539191985993785874688171373211211761454610809238190208456250099285233692475613562298759420635181588790846485830856936547622721163125876305013646377305094529577477365953251765514566320281753355815455778601029795544529592142799702666243157955681094303869281705003334291999864286682417949874245483845285313250646434093064119688520605028359682570037125788204256839072445629981276827696852812386357941966101512891353888845876543842715817234448177224393431789268086136304699570931963511264716588568087670073512912209221703384283965051695827556418223864930083723141311508467888669766091566868192286239973753978142879079189327396128790947414670929842115959876967649147198842714737512293597076003696111433681177303999189945620107958762790539845859277746270815001554980938503112034027646803793044020263391668206648750158868590921827577068525304764033323247828216083196717335570146812899406051529047085799998284681991247531002944954466864356912358635252848845515766928970606470289838032789855137825358734971474774116851300232490257323230405678196075110751527440773589017234681317144957104729020987181684990022296332226500652467590562377829093772950067300550460847852349694292030733373765466407734999171416326311285036185421854162216810885871985693819603876292740345470862475745758173054905721228391541909958560977768212203019334868937294268274606970393635498559764647048298018642021194582847636259673638765905984014369274394586852263928383546225056916837945515707356529840282009995805087039013681680736600257340229507803770856960569206926418606778888430147928081378181032850841307704985985670500491801419471035877985675514364109180717272390783562540292883402046748525961018201864083488747415132316598366269666217687333904625328445219451870639486268809464626682465826079835932936146455902419961143820812640795083830976458785955831122347962661006968520146556185205740336957070761376545280121980974822174411724545919021998033335334744766767569156499905209972930186303315083461991463804627471677666478549269808979661459946905130955957672996310846264697330919039057150475452862450705711952079467755684534291091432657930191938216817026161398848547495736194646787442812713479566610928391458378174167813931593148718478131697802798458670931656539267762194079842709240131075448635923136510568079462425981836031831525307667675172990457732773715570796246242011095697139396181815268422698058871749550271398274908428852555537331368195994070637285125635821128769150461802134506731043746731669901074373813566826840991258915520209165886798402632339737127741393674309051982427290208568515644660204407042626545017924821556718540255756489310738706557275064023558106892230908813252790603908538031131414597520384870429502914138276666010571283412593342942267752392708748236521242750276374206069048842977138424192186025873480653295041409193428626004420255071778165484918752135093116286872624868526735482652177322141798052644145982562431056045662724631922605398889042672604511756806085248589393899435569288163073534386362094316403102714474881584976035060658894116299950704196368759170072366052693759791100439051940614497391965408896662015360974214129959087959626842281853800547771352382414582554228146102642961833941617620571614784597081090405466650819101032878368430019243419185843085527472371717626318145665184608625399642331711793204161149869757909561341152354460305972741131388415179013266775319185172593322190145045282142267395373287241885377592835089537590055565370619115663372254827534594003305008756047325947490670788508599259766629374420463248128405467598863342407288109004119587049712340995589943912911786482982425312343206372054005795969375947839247375763194826829600321828692312988857840233773409249200586112719042258942747326826631290126387388339983646760272775863921675376937447808894301651864875421345152287354887004435498082517544595847634326944935749579471214913681326643221367847205236625424129650235503462375566402588606331567423583528011261949236549359596124636501077051165462932548982096500431207179642477923108233052665083545252889078017467832785310645327991303299899057969383215028002610449829381916416490443053687198935505058103247615695132486633237917449943605366864331024153321748052010536668953088997116387186072010190856993737027249391396557654413877253201149769382181080562907203214113237013097637417127469908377938171895304770737700811626443074525370027651137493101439608854536839306244906941283381925918959685824877987752967662640620153677383569600069153867538086605182145197672714826077726257295487152899413074132260126809280837559928909249039682331420149509321154048439536542044207552267754231383741873290316425598066590230412469323145670350444792798756226248891153758499395373386637441159149927886145605773652618231821337589576467363670295640408756024015945828060424524836189285599374240901058502230719619695808411443548753157346237720231423613005061196436385128028673871645531288299194188185826734221099865242869042412625618864400292007585266716934264164594045440408996189086225427398479055393475897145539312514592696278123538370466538506891500985564925162180561361367433961249383691231956799418887027409876519160269562289992098137188550705456976609596669903267784185416434704635278887429673502993840636232085508835625500547619841571176709256156909557505969387719947395963415766207744582230292037369732526929815768068669742546597918897683148855922040068865977081026652086540365224857246248388238910870714570316182423562517134623489353829093381670077188486215061308920025518534255433058435640933310988801066230366547650473753397382515737107338758935276968921046550498899983743953483118121893927600746706368745408740191032767721209139040119330249877691005927229685675720623346525519799772343085011538631459768058121474308769193778112002321094919113582308255548215407498182867870539442974984424703584084530048818934324113717192082264519389861054990451368386158597088972991271329119723896915492076999236948761287376796530305169803983305696915208063250933598083817198361302859178312965014199981741793903909683258142351022534415532295887350568029989736336720638573118910056479501276884615884626377309148700013979034695871432925555908871665375777160157923392701420166468902658772955095289235871889321052799700325345976404411438277893193299928811645847290471764710931918435154457434617745626169746712277130853714745835242875054780136204177801340792805369972916058972996714290770392425538460476037508243134219668792286100160749622419919345127344612734752649870038335690991820096830009758676706550316394338633609157023357213427199376503642766423488225088387277696726960268277775761089193028682957696657440844626111239070374915089460170231580530676721963014266661195728197486783324364476995244841330446097944492514046719681199297324487321876692801081979670149430134206620868617996104584713718380892629764271885486174238082629316200268315710933462421612859587397051427637480780783585629479736306471413971562876875589954761547261022922158330798188580151556792608531838696287295565563531429614901352987854944682045989299475955796569639415504444660352324720695457184854901046080245793490673184668568210955018604551484821318858537004158917819188536787280584975456387683498862061096288569666719850922325732193870968145861725167805659865675587303595919071200563309482598735754650330091679217453624642936171303823910699966056384443984612706504683692028322186648826832294147908539180273046997374276698191536601564240010622195743001977010350654290387193343574159989169389916615493291074143869304906151512660500459699811506940349961529786037276162923286550537532532352095174867478390000980480272263071886880756413858167809216788190896520707441510288077243839147875064505653058264097504536132707279924185235122729901542822187196257752955314101014172512926697443374413581873159770642110203912103028101726518141648615356928283768855467014962121035665854195317727528607635699309664887694316711551223018614123660152158482172836251739204240458874126373934659969320072527277578652042551787654416564952413315963846792277728882318732926830238496676663276207767150760529020834585131205814842113827813039535726947805542252500040966103440987983447946670073459780096132847195276194030228445304247215486851437630370810055967978869272790808600673848264374704876472191872932398003482444064944441205298511845058472770152638950460546308991557102353003828191220567053626095069776228024042765513639197091290034535091884841063810175224283827397980826324882669508103368917257371533839299471214258944199287159249306735184213027129114566364430431532860567547974792079592755475326999567374616173649508846383062147166978459622956660331721569353962999643377609987088670265392894367192335533032084761770491963922172549861212167726117395759425583527895297564204801540785710680735587660393658937265681152290639933987466715113005073953895567669237223119796261974423342677404983219818251790440162994022543094715584253590656974574131729661087000184258883740943276404732522081134073704351477435014058998668447989863261022941011431439746249877361175008268846964833500346119806607215562289451397732131192375394759139762695560752705972585150635706728766890371045035855001466776978209801344331292729294172899752854937023752038641359548608730976521421777311772841034301065066560504765374812139809925499462649375022092143918134489035344080523050553359911183404328154145037080562621793268775893571869914911163077300615197557446272994045956723085665106111651254568267954646561201154514114470596607417084389308562857371906515545640433357054994875288897335551659494963851243819251350842503076027673928139745063029950151343836166597964876398584202731709254298986742057019057792769916741238535798779190550205956926775013023240408620655950807866587171235201743236664048111944726397130480090968853522054382328076722108315074341355664749441254420139413726701177598048464251468427657263669234772481969517875326569848472222836242528957369960064224506231386005120894032681814826494472139286895289432904731202879798404411096202797242894779045683117634410330313255984929152655402726718913194821366701476042370073004157265169220370575324961714131578411367458174596898423787995680731225265924280982453347257982312793008251794058171659245413720137846716463019577542377587612899205246029919596335102267041454355033529041029034345981107552798847896037601512271238667809818119678523208388812794633862640631606834176258303103489520829594630376810475329972246456329414742304767320994411485434494285600527417370707878586531411863046637535128823632881880592047344867082063086425193372166805487457922757714499545097320412678565671128751480532046634697627254777886304635704770461437190256176817217467464755787061050341914888967265208131336731100612340318675793204922644566270011562097040231414628761674371801507943582316119442340166420064083590317756671768565922080732408816112678633101292333456138075797774042635023691595607602628291505619857027731131486243403224346574851810267840960357916257805695205859999718016826662073660861994886432678309276193886677471282028808450615217942430811677942252539084429859150918929741446892799124223468458028163611305583812734729865930560410778334562359056083454774881246647420220642332558898383324055307681691715047123278693920929058929932663466610934748859456823831422592732403088950196875806405546184537478944208901353166998016678939460439099036330988550093477215446574979305878082947500448012198023134898099267336193110339531897198288895977775343529316286156562243649434462925964701769549954678420242016060782317016430100281361960368798466430367078698371995940082011841979680950508933362598799326330560092903078590041184319871432431530480024593481201680616268337940379896611810290151201670264350664875573336017690858574613951185612717127275949125020566913987521006817091557739798248098239721766302252470168259855406113024476031711835670392481879300368321784489224984226586459362674308050395826720441593712686776696461675797941134298229687975587764263948234330950549055062044617328478314003268208966827156053712411577286144178851584767054195472196537508824877166207995779363735314158765214208643218299876667193145727362999143600639504687330038474944062787720835496535491859175798753828725137233334496080017926087233620496777136619055447938865989054733962798358956311705507238806987121411573989292552754671245322916150047271074608145835677154215529782328642499237910496453096856925026672005451617539782344858622537145774353667366491266212297620691433598845125166799542299041627447716442522831765792662152569512049932838902840876723789301954329582222786331389503323215943769142158271059858019483532332675712600151816902392747494790510210287422266895879143724824186572581053988852997824054098053255033434986383144981927111477846136775475376665907655158507552824190522533617128167502336064210892105506429002372077866690916250613383224333072829001580650803249391926711877313661857900203462053439793382173379748801449090006249672670061912657774794344622067694078511731749709328060017443848734628731828143578329618999767990179943268471597287303886144430505936839763250745752399209003801765306045857783444777676354811271367954241920252664717369050992449301183225422509579724550609499777124966732012804209077976230086755580985868398299993910352218458093148004142009908036690029398242686656062891110381596410132018007317980813192565818065727573888787198491162002093147358277996687503996432923801580444947478424393448236234380456422972028021824178187757241995184598149692632089189742764593361455905789973487909748574909851554669155464647899793864702550086639361563326047824754053475608265670102175136043915352301918728993880780081175742770078464456830838657294536790880592035068711599536976944670547254758592260160702482827595731054503172366106348987209749877456042451122719486062227955932322829546792950425377601503115523717736023243261608107659679767195697342514880535532368644378485798574068222648951901433701653454689220822436218380941000005855337971506262692590138112379792187814798719550846976092094593719109603961395837624855094805268415913008065024627365323839641401346912344140948026473825781947788943151710665290728189506705225367402491532442706523453624058673765567133527464403336847996356063870475936566601339522785727249270201272548585757235967971980695810627759551458449517225287659576212859292170216301899887261471990972618841794665240511118526584399119825153532246348377410691530135988877411894309216253350230593138173585163893875562722382087590798873474740777692652327110752403979249968316296030391091162361532628736613115862980030510972671629452736734895457702707178337591477656843133105968968378756969193458908715694474761118229502752260742438648091275090829193212962716344761248702008777373535189376934724881238554999047576169465054241175278233421563820507241034572038713659024487202336197129408165678822443434850411549024517305362232446553592909774731000534856389348778104953502801044255763945912196737899648660063678320486140945139394992367264697987904512788305777388834357451313461776979193511864238896533002516771304531152498394971522976917198625163590237382222757146298872555668917415907725064423497199234906720183596839299444205040399170487486085180072877441912749712279914166072915310233036731902288587909685815309220052309833766358618037658687399022976067863566628191578748891266825869201717092955308375587450934431402107984330975268316532694800230637826824896582667373308266275288304189625516844126580112678188964701468829555928277527562123199431613960264561743545728432273593989092900464144442116263977748151661629339279568017274405464528971706044721643607058281808949727218819560923678356295513814876461636279262524081169550415504610268653652085748842156124483602816912274989137086996646169228922181300106051499081539783304334883925813894610872725547797076036459354113468765445159800482243915421605874184300161122627736308549662854389038539332779592116427021819380323410424991938534419627249969454813048746275792778358679343345653526694182351590231223560179360737862007537361729092915676742032765499379766910877300079256234746477812521218322313751881786504230495951819856293071616936035864416042313819308620905311681756845171604590783376669974750570223315139771177510615792100251088231586703032426856064088918433293089632254304353875016096661186765078047162975145289164712463755749836619735467011486393196727374403466550488147477067836507354919942486257086043675769957054652924170110077792108941517948463738863569184795867975455229628580297426374047604015688024419653720528503188313696868768656075009513518871109743473850048038286796684036360068690805557468405408190168115962568506142194146893578894198220064928491904168638784676530711460999272441600737517702719819373341971597789897543186923626347187668105892648694064246119157222442117308011692725195925197233781871241791101563621330959896520473430563822120630326303839150705486578289174951040915738842163836049276317712180584514013903046687434662714693379794706876406092409135270730433322348928453560084160918608765382440136211230338884709939416675750195545516539852609116487693968445186664402348951211577476265048598764301259622738405357094320271017762938083047667024030592138638395790560404969764106035441438177408080957345522802471492528708660294383372394997716083022378283106453100965847564341517315406485383323852141779861026213012478799969725194595684628154913301059619188266048296803627901780593265495780279294226406488327057984979171533417336005953303009042740008397317096473306236652786902052807653323035751957491001293962730270390905145311359382962475044220206772405619170399049078236853260140082547269229685309855868831332952108835254950297508632502301593918207969489923479359118003000070415655957518861956089146981513657809584722180249803476051576809012111771128011929284875470067569513547345873210664483013875965228053807764498451768268864169281945344271986345371977810202571340082136810096416008830741282971615314411469382098382099205189832581857049974733163383483821731271252942164936809338366255319435457523851572021221699197906384579304951278004487116053664089344940068829921961861746168455864975158365475130608178889074514565437183118008924584101532427216665636636928739560096410929939006430468119042453864676085785616276906615498612888894064912198678978537409317328296537514198283444495994127912413031146757678448427827929222064667243246044731597389781715026738094634313933142879362219938859664797263942606076990658716397220909940714934774230719986492061477582752133386143596776413872504911991540742524222938178759609070669295280223852233583957615231292774783943733664003789120959467955008528958825105602777939227839396713578535356564381249239700586062636373794255578469297469875069913673397754562041120573320627193344396448770512329885512878160107749330252382141457516107265701782138870335752705762085818833264657680501572897116751748157217783826440826968147092349333718948526494866858586331594959883261669851319382043398729679476775727507264907099397827678966976578162199144869372758392985755981186816693758112697308396509106505117481731226405301287765041289140265151506586266190852129248310874282838825512911944987766198142845444637196197637431105986786779095494794720189994542902738590907575293765304866543256257062764842463697816021830254102981175339873116168514441685493547168345239087059595298930304911601778204605947690501596302196003626456870575353581884673164591845873400819069651563845163535582448192474623010425492955952952824717621144872930812971125485008245988614836999309869479515264936856252223962860075472921801287201605771167836689757895239867867242782197200834418178753129224490651084335405348174919515971284365081671752051514025838976884635287471582607454016147012607690306576468519630463590515538036184880443686112843084508777891858493707550682346985317124770284584014284549369241398599138443498936692666608658353046523764041856544924931770493358457619518365347220072856655608694624953772287512974283431178313588449157706339257685943032243717178459517767332398539254502539515741968860615346964636381292051280942349691788922303366690311787427031192604241455836942122716010704725510568859810308668345866306437745500428540706441875505365661394623211737105357348729087618024302488288987243530863075577201466206294592913182399097569596070426282739878367541066595246046038057147378772166834973045979829847402584616512865540721277039570814279321773629911009426854033474951216778387607428089210123252053087767724095717310896775676531926083817842804729010668913103879623032752118458412197427263145535665241380234356552416554208100672681461450624180321062348013050094417807404775745028282375576613629486822101332826377213523774077550848656510217677741722507498270792226351390766998646880961031479074590745182716649457358426833561304942708712237391078330880565716623673061666123386538677781498215881118387779973426585253263125236030673840560662979224093059382657137144980881214755616483622551905245316471890818648842870706025399124030080263295541007780924149967298566526721945353469365302815568560289207986817824364654001004186524866018823033351193481133136298581945993642688829011723607101425090545407767731381543994572088691224141801338794479163356285034104576932818390417153343185246470757540668303854854198036422823242618547993132402865100861645579819754298620530265368674295119465194427494182457206604799176714230225159978749803563038133069333670007787081928399703016721430827291824546373715565767986275736049961580264731549272494997684731410238798328097107151217561105110189750940661716413985442050382073172063319687782425271654103267365371901280400639621061671947572292765677261801925815902834024584280643478467501882977298580301177320462643117180076929375295877257896811647637921482030229985173658330250046029596965128551406949250194492943802858368768132490640342549519155363388587039611617439184524699082126440002075391413910807567829143387403453539082980284106676133736292184143752918027914784371331892161319250141363755147221464201419422934050343109630488321114180592188283638410770067647236614322788965071004721132826933779998429102796001450134354107542724676049899300667485250615975553918973409221753431038920353042472245509505826922234845094554618455353801520234864979255599016541345084223552610236480667103173304886019191493952514675377924522987084021135765163384694502365491416494246930620337373208889005445025846800282980430026776157954758816540099718020753401980071046108127257827989606138343367023781785074971652483738988442923717461826325864082710432443756779558606792874831893753801984643270841458968494361007935433847324204626848511614733862319621401114330175287480106090902090285913447442019649446799506094723794630084016428644457609987576461144308499209966183278363305260278005208669525226929974974970385017866359927134066353650083672417531941143220692487767861176519011919824663424899817152524409633657948088150963509372033080197617231016539161547934985257734066064016666381034930568099725712319448918771383949897676930237555836651698329267773333459279687934232051868081665797020330167779873254845447046371986014253253938685094685996787572381792974420010858865892352449267487198697884563115219753497861698725365626166170127115041519919338294305299342421197080465158257393277348588507036843895057588920715676298043084779871650234664417130395932334434932173117413920991034887061518890057482607165949757902953704509210720812487090687943274062130948896947050852355882219327049592777227666086923639874722595017839241424913946364789579612017299661950522620592024641642841602944314604011457550450133295552432820531921045775150561868128020173456355941887423922607716894915045788150717844136574727140297621318178248539629089825903270495720277346457281400465848820942794854646686774327593615584222691103491721774185136515847276898470397220208465619803137745616537529316699543707799884911336162470545833157013580450766653002623476919195326195113934559024202307448155705221276756982044160724992292525893893834795405359730989060777172959231594492851317126151468708168521410925325256577124699237929377582060923525256705455125727609790879441977161652838472443518422406216854669732006870168375907624949410889000884112956219163569060314547179090439404315782484889914121444187376732044401082015036961352497789070216555270052702839252437938280659677586546678860321333902605622854440527977616736601039750494346426477448706404594327793954301334166423146556661141672616178993771485662861034156902600630958681026707911879528988948447130622874881224012904938172627237639874463189131178823673758377676229864182175483790370873662968230934484698028823859547124227102871571396412835946909870744536978072636192523222630425255409783202013035071672930062368767770446621565508362663967185680003266406661394254753790904146266873450622434559699178888404737267281447088614311174679224480819871094324702149842165982915375617303749042724415288511769016856214111322886762966587861400540623210603660249101860593491654579167569676794037412286386734641479126458789861318289704638554662865397403498733308432038003728575401740171375503340137950537579973737516009752905765037835650735762878518135407126262961742022223827444661025964336071113094256390210032544568565064867582342712084199510121749428960774546092046531252802117913422181462934573613778104280798376246616304769829382642564429343633570703082726713407596068766804382006187380060537780840689604061721262938833131933356076906280029429561150354667290372764179762158255394512595375906072071845610357675715248908570868380395162149754589614823572192401941986780660373614217514871402366529925619662890738528040685863161824455339149648696457276299967314799834659761229715424252387396898679880187440078782283282164397818072187459181428921174537202928316929081877864090527373419902241436489395937828368239002551919465184215307337736579635906558253139213653730497600470695556173117216975638778577167546819694948632521634815770056506403021001576991689963128021153911462534815214482100978071656826532656590646534676728961751590045879821854497873557373267894501555869196028352447222929203461042061976539076015312295290423637934851289739206169337339421064740903837268164228270781927698020788180774888657322242693192271310011048765601707515212247774633721052537919112517293919620775780285982171269044419780959605662748666572435989138476553620822142305489368462604535099909292412890139146081823002433964969649549477178222462928637788703622219986470964801240145330648685232012622131877880962026151311684912480139719682566061307851775744563496813673118221526182780132489424404095714269204517203863866756795815728658137886151336065254667038478620055602338276254450267563129601355443349305561171853224511415584539195286136093685132610367154668906823641701205603351569694200809804187254407793532211189504098998920173843251959802924850370401920599028513383314895677684124219629907871075851026562575811475256676371606305429690186612020156609218884856794838878760900064671417025044358105431907445438063806312215967269303867491043876294436249355591908134416791291190789237383079742138381425311664674673748622752352652255127720670645596288828679656293229015321343955778628412167086094407805709920113744865302628967822487796611947200494375458977551732365881089929991502966079332862788470428791562413890475223977090045841242700404210276746208115444586644813812327108697708000478101080968254912424239757975380920542589798461653197645059559092984724829143816846617568267828177146984785761113877441445290692315729387188877863067674131375243411027849709156994312454969379417188711402980077188400853129044904311614204177142873720431905406215398155521871260819301339077628077083841543918864572361494108189829804592550713020246691988854296663500880826563242017599101558993727273557923717647682991978506132797459129981806519996292079318186325831847364108943700351336480430109344646936768192711998755912581543012883624491327953096027646805356559845737345136779972346095229609320171868434099447574212367179270235641468195681821520419780250947884164984251862609534650754385704988235263113507630692169365311439750656697239564425389911945542960054524161952516757750684386607714598652424533520613953349349565798765778074431963717080546190587338366439155321174527772266888990394013963503763907243776895375517646055643757532656636676021937911009352429904468029368264599916812776420649455120315978135110097272549227293968491062489800635634275624094103176478314495130857777497963774936313709085973117977454048014235809879461448136407504099830213382204221143605952783282331248706512026835241379133266141723031187113531695612317807598771314728277115778123776211979989700917842806258666515663090065721344213177617527666509660437746851534463822067731037305720327505742058068485119449641209015911102567689780681939172339561916489555961322259581330672767181647034001276967005938610814156615115523106459744465094512918295105055016352381823104810671981462637512104012974651240461556655671292313147270313130547990082590739361028257035356612441085702833523603520765858941071311202654020170342330051739096472858720904621951953305234226893073839199272180299957231259627961763906363198100564549523067767225882909540554868448992350993436954213232331796557709758863813471935904842673136454340798254796884454530141571121633624581842818065290907240648613826995615444479799499082826324733225172834483883249342902867982162673762364191862878997410570111898054463655066376052693825740886722175742823577462560885452646356059299578717127953444513936604084955239588795649679643919904625686109053650436862228991083600443066189008470573554266973520177190967041132352834494857881247131052869004758724177095291969396794316225337222834388974156085031486654042955728926779324555242294904834592316906500595789952855373576499725071614959208200368082415401723408956110660454644084329104615380522169032518258533096006804811086132184330960142606670999347550923736136759420000599620117690576970135280808162347540712565308429616217487296307613320124969875771699364317765631037359123319456944688442424404475775274935374416934563921565501576645181914887753923288403675361690581778842986580826466260739232917190807669764283841232513300271731912061129354587328683258143794118555990215762661470577875182149281231415414427181940200939171605663270061767923292520259878662244321513897362348692304858106102181376850957731912427085848003297759618420801260938580930563408364376862177865588627060405390755965256068234969568248910869290595645622029241312927052262351997613855157217079231450804907882454380526703114688430831597967928603865140878938756925365840358623242004431974835272305714525312309883654222328916374182442375851519972933599918198868795563165837929669005309760774853593515727806132751187906221171482093907852187343515091225989955745403960598295387726156829371469926514425537996362566535551820915267874591681408544204857210103723214762716139942108283037900547312028233309573388369432802231385826260198814216934485691113012261887905061288224319378279909616224344305929995789592786263014744824495864020034384231560633710536757198526480539947644721168042884862790922962819709240071607262447148480580746690404278123578053800799681990199101113409424453168322063518511817953122713598146079728027363919120604722218239225234299513320319762165983175723682778741111235204032028306224573599524900500208613127468369924445853801900391700070017048098438831324395560232965685037855616090032411985968346147038543945387227073339967356847040943167999912048798318565141613448507999193553655346782841201076288588293502391977917721215237733424261822246618623078265598344801577269503470969439490104722238248841806779689537710552266239870720857388869973021284010610598207767384238225894401109152997428205113587916076901254555842070358463035406687878530776244400821612318843884578012371342338581477818526875017997635189795503768754683394532593093131584377513663994476011945353472159483910966612780282100201203600476325675381913752329274250278828344455822535576900333686894406686034963977572463891160480025076223319075430818427618883900341565376878921537868234099852575579215071499415584071907609755626856397761017037995548109578350175126130802450379469087076790519581273938281724738283349363811526768596464964516978251197640861456860076522843970931763339411932555417738159746364390776147359972104528704650653683796727309774550683521760533613631646304584711658833933147237262760934896275632173002089310665118079760276309849247794862625831905945113633226129771701776244639548876881821054362448562924240179054186894843482084148714998590226889212388519061935226415322519439668490163756768249953250103667823545133674057812782220259315640153135678290429675051092283613976976345944952196683580122811008470341608634299120248517470316724562952015457848608851776909184914896960943112481765586650077965639994557011291740579908702052215039708934216883175915211749083434326009219758753689129074444533806668444705694396406507579386146302756835156128603273530715734285611598690675443229263826229002831561323685651656439259014315221763154187204509046334497030525052299655696422915367483128802351139971721205078136335616687433739970129839263454662622080775144539323471365853297159153164539181584418543465469340623688766385745092275534183668731458237667449378725885191104602276338017991935129644102652694712025678991582380900679056227109564417268528026067064886141092360167934261690633005365166245589855706302603997870073326658485376780866999054781630155263986977913519763190406996551726174776743851608208349344378073949961512087038917548453315822462099706678393614001472234830461866466692678591948201658557108371033621622454620169928339148657910213843766086604575509355771791722420919611595346943261863374764332212979834814816524484941579403007549747437937282673064588946534756997791704323801347508515045712455827755451509345332658441819534688362939120004044434310025629046699957265220328736227559661623945237426671388289673492871037324960372308281897698984471325942919255351233681187110218055479793501871771388122103438882280949133362303908961822499865240511377179945332591657891148428249076640094927993924812480197993180522347050326800425447582318719522309099398120130056114258586215102457226908768642617706515481509463709723266229810071819348013526861858542461084110394235113801413320323854379357486061697471092473448043325059558109384016014735825179395893972446802403827040662396225171767796548265169794081984871902778282725156095854773758405416621651652290679616782541966634650657038808486062111186084289829510016390639714801193135406957513322013338124517228753159299091126139860636406759461114759378083873016977269789187887028762205048219911546966709114304765854839563274707990619186827241271303796776227409405298781240140717635181704469394729794751485920205243320179674418444855707084359485723207341143159963007407513636972553549669690389604751425665042641705863290201566601243792661241346465618872990180251801563977366510339896765081813766110426551742984550816984859982204608263892282285216803368422581397025456514926978705052988738484515268287592580046727041353483576983889190857984477607621045040693937407066065323104637590661937382075137316333446953027498313508981144666549092034460477985976794540870730992513313753275562285997628983080883501779174179301506292728811045336612300597349399421723741473256982732941533983009661001945899516067863901430933163209688701261423406585151402914771849133323651494417552046001883517890211522562121296013618413155812775620049401555791120503804400822391323058807459805783901048259226035691968090629337540312523411212449545332892495479495814274581807340729134170901218724019436753675818349263423443942752457426742027567433725006683384740317945206234360699998517387975352674787341701833256882879476737131393044275069330143044269497759258487386322676164836232942734104926889264708491650256550450917589435055167082126353396944310212221907625019907897821135395528029303792081759284204594894276346066321890625534184823494015787303616011229336452858088233789373028088345286889137623854500532668194448967254266874544897688018571791598933102170309554141433358611299590497083347631227967830184707918829137499823729051922070440860518579589035955925633633283933717703604543364194708060747554222778873170732806882440153597418644073002372426640331485725711695590305549231779048045662367788638226047238699684050871529742235948202182974267083395619483378768975284990535848120506892339100828168646021279042083494039183877529152760970882196267151794461431525884121282109263525726651941119628274515510453954305724661981264751944351435338207547282286701584276929497136402439926363048026009939437780080868516100109018641453972734829491120570856508901907050462072965521022954926142643669347403092416686871073436572866016547971346352210285505115145672998655169378888931419002607483667064790862665506044125608317518288807272512023259852160433815359483558131384600381401629171980429797577799517218723062263765285127759691995548734856214619334334515867894376703778175465844639030517361958000187601171669546751770240061926736503468988414251419466936787174945339904926396695874581069100352481203607157513908866533084195667065186664981673190861296805141356674801466786639053971702900376025152329957345160298420580486893093328928980648041005229212487967565171041639049288083905380649986591087319810534952377935520840218875499701013267655913828069063613946596240253911385017911406396437659078355630520775855997595650751825001357521356087458124347197375817740667151748030781853668272890252647966247135914039359025203029554354079382919181177438634414014889159858753617383230705235486972679883006536594352314545138374862538317982445997598545180135549191589404004867661717482181499531416059851092805872354761556812237877903157986084746140765964259169822052510929093607734846280196979145571167518417520204991615932568358416013106658796858165198199631372585996607113714285431829943389796971592486846370677420443644418640701637669455396253995204964453931518199466658534753287998754750783180349215442966551652795529743333214306271098966639710497445297299550320008845096914363960790360242951918618545425549163400163583903876901976611973648771195466770153091984125353439126797680979414981383584984775194556331758673232768881710851889253077110044629158727149268860630703304972163080225779030784683835508005771965243738954820857719487269839750539171265354038447344265682131212769434844456078469098510321585720218839581274343590071011557507526105668155757832738250517360510850079308576384687099023203236393852130772529086176365345439917351617160923106367070877953142461451104236872580581589606566115374432513085607616117153274684912730048541722036647776613134541608296002719626555163133080922570316664648647117457668539998438609880724580533117968047369720185734266807529146906685702093461947193941933213733544529971348479740716973764745854849865704145750469849444764966548057263868924481425974226671771856781216309724104444183692951955509352295419031502905848332256465109812288594432924927777373223081872270863930734776622927427765453983378046021984098646966732525407521929216597422776725062611377491600797672575154479152455151921790858739399883357873574212018864839994682572965131895945905940276418204869984322235251819517418019601889399479316105221565374445065548600168948825470419013166634915133173736568716098858535965662614283067846632394425815910798368316559170064580095186287993897377995552892221121501590973576407365676904942356626965608994281299081540880541305657611400371014764089930162835689331724397055172259144932273057614247722938217047878604422774200808303114715601242436535060210158742967431302703793567311337786332876800696109734183565014835141095729139411478055107774641737063356059631053457190327780597698856163060733612996222122734773709998708388597502360166330141970336402608216231975391971791941432259220492916426625547815783052322675327127695882411455354393793630945590603607878968591541857816637740886164491573569786557980965368791147658525301116318990514365725874007460530697297434456697969599710421585309433744688460728895368735436489486102738467925816978542052812617295518826079485537888521853340324813805665368836364880007665864679746565703739920913681868345990918828355427629105207629489163750475996931424958421896192572352928588972043960519363014081953460346709574111895461119624776819768159969945235966906151070482579060053635094758906132926655958093029167715811819482322276095792509201539601958490002328831254766861415635339021545487858779000929764138038387542061773495477678419952866527500931339532230044831664633113211005560442481255135577950518312892639267981091834551724827828253920744566504131526846184125112062587398869231060609657415055993293213612431911515540073462467070328559642208017113361275571813650591274615490612658129252142512162319188134027028737816217195722664283416762443844753853847819540228825621477107006456487172940961817349920265831289804722240637891624663476622906994949698249802018476528389817561115505885047057690287199806604178255958729934895343689540358677976072572206794898440921361121950926228262054810519679553965805304748320443632826169661119626109343991133951785285882824090262640989455815149192922133298050925757614015289162451295834220088522871483413031783580207431201435276857933653801476627394371103231052670839773123169000262148795572261812490165544103818774993540589717327558503661511914327000360128389627908502744851755280766944620699571726835051155596446854365839713367905929197942348593829961193891888672312422226819793855655456143841449835386037779707679023506796464754989134896860726880321982616178830986018191597874934590768095560393547801992478021130013231292753525592781836225861864593617479695328645599395698205071488125988253666392255561033873870005930755847260626407496165233208974686040411210869187474041678070072537751977653431871320647996286608148097069710206365830405487843839655381858799097235987257185532855214138730898513922981597117755941850253244388141757559315950003529447679904876463295149228828601785519098889282368881998656733141529812751666616917113531757294067905325734693600693058927452314053219159768957601941372176825404013713608307561660171680332649053709521447373518093624403183194547092968297048064166768911224780621881807855755979894681955038257795380766126108037341514448467191176622113069877407092728883957182319454496386927719744666705725023105370772726167714914484173637960607673907497358019285475888413681261189458005960338410722931191227939374181114472345474623112168156271302783520293425497889971175040030809202310262813638656932554114052531614357610555754865950392930816770592967733145292722125875141382513720663767798420334962561708694009095851263194643596843984545866392417227268207545757709857982587156849326551916784505285397834653043509917544249891192336489897664825879752031781677081490887211062862914704937511729297243751047684437432282481282377282489810150213354142861242526957516168862890958157145716196420589026645258518980484157094031823202611310833815808057935701482083661479578832297007496708962083773550494394490874290734655889077916985487248960822227757665230283362995904880600172220601076297071042381458147573584854548339938673881822973928814762700199170973974582278361645158835775159365122072544471756864955991566196298271647554526075117214632254238404833286028625715405866404286354801145086490123864308868874380840783152642857166415178242733277063855035833535635379012462156561435433718268223354979616240226558028942521752321818436313040709524312176256564065240087484957475472867080307075139398067604499911198760888037708706175156640910973891490364970384554553160326100473301491702198120619540608719769718180118967919065973818317758412899596838842049326553334756049992730362535972829090836941210503932452508391605275533920480751231446961467480605558610179209025786905705997518193475417950031359262950511079450634174719583008338083684463837781936611866424223829807054886901596149613941606694560043132807469851102412161866055590874931181584024020947685809417908207682840886727845771868591235909298883201524404212277559090600206117197941500023513669713186473620387813823608793972201234816035862453220295081373935712029179122668894732707761333641391567836317255931968678866880235403498510901677133047005441543567594342310029399526224689381971140181346354521290535030481538452089820696974799257193645501038757204075278216521593833643732006321787267087562583604902765157243454623963912578628513452168651141536166689514225790622518931971030146418194196242901110002814697696731399595795500229262269741754433239207644095478820806759867937027161013804772335570241064310300356050482741344086726429629001059715725434119700906224034800010123326696959215272254839003398385558324580922285545457481602009699708163136148248962579716954478228778282414125572653178667197582513397046455123140494119204157913044322507288502720438217089982683658860480403770941342543608237156547209764561260586565198095500847091798852242744319960964080244857335528279146690896839170749433969769566295649309589633598285652261195332087044406304531554803765024575775536017147462847501971120531460140095313175966387486939797592737710125277256596246970035443633787181313408409030525683433207701696090642281033495437637204745718255601965672789644905134382727815473740064816551253919490709111382131608360849901563831405176439391054460482225493959955536098620005327437600375005309065247494452679237888090967424832252063249033922449596174539324667949254887970354228952785987481015184547901632125766678856720419090560305529897982735975311416525879567074177354178500112736010240789505064650634298542076207569407309967064429576188936565972187295117989727078712531879642297051637049153357011974331712972519560325867149073672559655076220700172597196316567459448655366381209141948116296567201735501570699657146630040162226490587426944848620013051650813038490193827104803109455210087411678622240200458342169799585741506182648751496789718283729613526353834842094929849652694773020958805805650255997912685567427210010501708882402541124163294705856438604111663071250840958986758499871451432057749605258135082868194801828243352535449510326478053954573457022199986269721499373048361102490830898067728193547101938328044591901350651883430140762602678845665643952522558049353081443531953702085159845202013789223807272424398639175339118540119687592805749827682656703955763222967239602922900556373111130285468220580147701799120786076883531270979305858777589770134110472426883304189044488955898183821126083445989563417410905962446215085565810538439251768437658831212549338335630031486472302588367778316467906486862302604391458508278797065121193444485567311391787038768300027749474538614546111331688217955247113918148460159810638967907913225370064475052869566900661089644504729480938724118534683118712710302526961572093589940137582211040527807267853090929385193922794005271707302341214937372497668035832040149250376189455310915082261009667997597887681406571631075935843968386822276296013802772799601021309713968350452341501643124431616689937818343073700886426724582497362830821034418759330496703597084686107422572644166118069408342474031839727803353078744292129790276564640140111442463591825958006942581370629443149089404872035378803126299311155585990910363994407708278461066156412232601750702253129941970545840375190887451208962660030209343640366161998622784284230510233924029816847485010420432135660169621875361138457024303321431276002567430032252154700941630900932819475052050406446655626636314630159739237935426395788906456418363528296532083605790960186406056682129932209077739495656282242682913413442903165553597823354378663111588569883566363368409507518146863956825383754845829935540935923490542094347757410873352374184585210897747229548520461005897890132669199178217768851319731135701525983664454355706099541083966873596775460269054927110931173242635049468487428576607935037741531093647933284320963291447262003311680392619623287403266410673928711434923781568954558562776991803693276151438022228348282871126903899157860735242465182735552148604707086337570736961290511743694444837908574315093863695915611460238288462347216818867020377373938635268975535549734365884939167286776284511604480256629133809215786309866007435601654135892925586904777200992873538632866912324167748554401275716443827416949289966764720838117818648953020438025927331127150342615897906136539248866722110861108336316858727740983042981523715115753544689636929749215460229669934950167461147028557198437929636088680629089337404979109789908095800168154179263004268726000964428844998701893889964422809241401750153913107853686846459088932119153923330266771534270041633500480574884504959400658447093943721992867238128882134957924970341047634175980642177453833124884670523348820902415326394664881638451430117208577602541805026863493917551243308684551504980511886790946162505237581272838454822345725644344393072976559164662888242244811576409052859302217510725753507855260454136047770238210018621001472886525574306681939863307136171920325653946726272509263802990424902749645878453113469874971938230716865171426791128331094601928354521853198187329633376007337056645390826348592609484997304410308196971927788277390540687673850955940750561395584491068118425102230983479331851846545684131048095371217468779686365876639475867801212639225358807028670749604115534022679611975649786291228718364833051998210588873944329314548271474987288916347955971817815047395574911350770686250650776173456845616898362923085607792536093805976275372212034920617514476386942454495175829298141615159619899643191013147808640634575001057901217869313702936952493297175110390151899826284552412037278739266664565782598807585790697719483672662233260027148673971000456119700192407582240354232779771426386475650737100213085155276048106162405915969465719299912627208971530435089243356994344471339143348594074303516620784987800386258821618889832674938590856616409304398954304168932984277662582560421033422543435593271212736613514348819459849054236710076686357546143541982266972936825426820201900217680074777443975373325099995516908832500105138378298439027601659673507410281357018497712212486557711549982566884557091665181757239913549287484089429945167380675319155651171129644254254285124141791289324886640159896380212087587880738030910074616607734717754749471288039658152099122268634813054080441749851868048128178951611753235472112618076498585707303575970507438091061299786237328723436933608847147949265363176965165583627739348152316306007316416258616886376299477394124808572119151393947855316361421084407025913184505459866266428373847555909368427266646589756931048183936388403635049767944265608394219706134624894662513174884747553889159218166013583451032471550019465629414176991260336560245906053993712930554846097701784286278479286583524523242508254937691990460973161548186891829223928165388936084393254538741474506600288730546144706206503440220976654237950193771504367224090723943573957705171803270121657635749553896173015312033467135089360179186257139994633364231254163013909124736260900228268883197257376180594960001809810953797320624040393089346823784814242428763640528997381076268727542104370047355837132320383601160028185222418042776505840641554216126285446972467637481204619745784924412620795790596237460683124160815049595211925171136598427798556596077110788642637405759368871223547615142607356612880502939616413817239590392292061273784781556676759839236444293749491802188348972942937541569945763557011448343935042519607390927754175615523593239776103472155291823780445214478269196816347902676234015537893780019592151001823232067012001943386597801196874397793297112376612685769004462440679051422750849950838930058000801422281457855615114151760534407517903750995987174086788403636580262549138913629226698968361717917382922642587685875099999743216981836845886434756056737046158223825860082742935815214731586690833875833642061840556990174076502070548979632091165489965506533062619584011150837745337592957795583001795413044172935983535557059346956074653201101383632987029482948642826749792882227645998669999925913041043024713143658290683590591118712233409642600306964637505152626434231297097815301917608017726690165844474920315185812344239530265416617372747052035867990783147258508831166795937617069896792947386876968631184348147566719997875221806866114479089331786208384359889008441681000765465206845056819053605474180499938921781530104404067654779667103079660480065414102134836340040106620230322423480292539610831262193641530417904269761698550096403429213340741500744943120624021077362939583445875459268547190931954972407844888009829839736944556734134881882128873152017663268769925021705308909739850801596650891588315482551211957916096369279044433788266112618850698327593768300297151502310462884925018763697959868086297398009791983460368823616270974548757857198253009847301993666796905145225911792236565783496957062109871790790117225217674620814884846793987953511735233263520581683151707434334758071352185337538567855760798411129451215766749389167129270937110771151718937419149099630967239079228034519002638700636289232069030828924567099248893772802132259801442961249675747506735970036204734276595455420302610749088641738757322174311207014331801176929052938553716249083636547163300903129587972881394209939783856457638403780886044784810645715083229533322743044091899336913070109869119842992822788837815613818925035980973731266235022455225852054612499529962542881695289362618494006665663812116366033530720097296401312938798748967294837035030573724244695974508610843711182415090527240326950782708237065197738702076533446154913807280809078271546612072210261116024638487881564570360921077404385790164857595418401276495051065366094176797184159706914387950713000878721922855489324813976964514135270348826740708764501365072560486878961101178520922189198715754586746983286205617001773639971471379952679979854673192259311219582384610898683702785869696389956067486126726214556580190174226756958672789293821519641539503292889983872208420326522658344052182044537812674149466541553771573618706194232029473460569622803309793794793862385076086503820773139538905221911860575908944159589995567537411828016049920483867432384030079121894179465852945001998827753503985011363417513309974436819606871703573955874466159850835342917554181348974913351151534872095316979501000956674907455970519828010279163830305609736510713918952367427290881790218143333433868839900642102888837181457973816444952555238404077363631244552130693344711615275666130670469944108068906618794226184203889351345833016884874804039362067324036925279990768301126192203572007210142586089365006649462562764719201948051750568272965929833579064220792073340431225272033522758748730909905916958676677412781350969359144886946703564699640493834082083651276816136547965733398230431885713188206806409875203225185154963122639972529550937495216392713215842981899126086855949356861658633652211193078634372482756543092203201679815311426314106430626944434073600574190976242912507366134958756765814546148048116943929634347263477256568007429844745957156203934452790132763903643865941608231855340656405016444552928560003999937339965845749066566148318481864573784713686409386268572860537246613808910505032635812207810915959287678631417793372732707187871383800900501134618694620704324221199409779975402674747035331057393776172220673474758055383787318945330819737851685146571127573146634663091163566588234905901202291951959399723813769376101265562469108363155064583317314422144200186060617748314371055531820191336061123895077067111204906281211559129654577526583718709425112409461685705097222446356295135110177419764594291127446123577110869517430073113365457927181083233590856969852490934174598748252889502197017806803637145995967267445738432809571768419252064868359542440253286559760789645614331226151509327604425487580961218583256652171916111193824034812368494243273318738367325532375865738524238505958598119958113188869132366364484532620377835225711819157605614074598249029590776401293361240338181998889951401444611090733610570427610151051325403835386562967478406926455743139426301592335605095631488407557434931887687333313551295898241823433547395788036878592959648766821499186908028760366336249534763090718309702193382214753588102321267843605315500911444293634160443218092140782230965464027795768572190062646674367675366721501213459804379122969678504027585058658210264612141061977808116390289877993500462266395680887132667241189302279730695090269755538646127283830225077438327815103427947575990818163269640814647617608068286431579809624067569638492053587634360718809274333061645540772841051212629075080847239658789779565181040803079969987907889637099704554415642387319781496355465382176140795702812053624574387185601860016486171656406424384249349131398615488692274356855555336704577754658844945533354673510576219092779980678020695589285572315766661700202483356513667216189297686145199597090206096824608422955050699740382653257530709617410785153601737292969416564764237273686522289493754817923215616800031045047033462819224458376933922348386591244920825843194853500838512015258530872221343001543608153427168423839526359620827965749812956607639328793071801499842330729620911846296585960851234922799093808914270641742224622311991808673828249913082931837413590184975224671139682031952481150120570775151039977232026295033852978623273417116361360247026270859378386578723329351383422114118501511669851770713230949822618333233830665775718594414595768616062332533511768486305703129051094968929519934512737941516826782488875700867825764290549119500619812149801402498385978558240363468389032184891469076100694312038168488073833706875708010954702333996116492951702576930206121031722494375209232697085399482600183849681967043763231201466849764762154548443205038088035765204952173040214947965062655855945295279832011308004823323173242296209931300094693937436151182393841646895147798463609948357099034124055026866101386552036662472875734123702545787929736907069005288216164406191029326046010345159208235434738759507600780919965431919332669401416340355469237729071553793888734471439053633958074220778741869038104893543465477628580245422518670005883361572118423365425110421252610396389105953674503190492447672851076087919404017954985672589806886660098146925641356803807600004025687157572802358487892313084006623441464789670658300494639920481100378709979696615378796180483137926314372473367608729933167892469424222159109969892306184076447673001371884099729376687843291183214716235615758481419473265421190047460591992948156806413785308700860038059809642266485526295728487312159236629151618380040310991984920137530090604764599086381175743111576358174332631817359643513279879417134637234498674677352592527457563571853315277699443213880035084884908559506576247558203129879062260083150968295882863127786325200675120349145823136465018908786749151126432337527048641579909390278942347288880080278852194738188973733944586218142322032861168492613583508111027888611057067547611664902437011525655064207040423493384915310323039318797506035045487109410584561867994930382525588596910777775809995632898092350450917160138585440524581891742842768079937183555753555768451815032454967345309138222498026745142097389049194771662601834758526292442787814734526936676574165489972914354914201889594622173715693177790222625397114809970847914853673882916700834511678461747078916219552015283149350926831520542772819011230381654327744170489377163090018565675209438397512438193656691042488818897540431354006726390739297739487005723237578108204040508751643257370737423933587371724402096397598705176626176770719273828392111594457782938463948540493341611385554254035852662494347354410812443760255006581033628641335068479342181634123391306206048922794926385160758519707430377302783315565425927965497376855123642835232601391074923863136196070914550348306123833253768939059602170474418048629525779075039991335906284904408632524670411077993506703293750402146501376592371734357456164608282157830094370604818219570017000147536282838004370259716634734204170549548031186513470628978164520425598671084954854578889826283352989994267478983233724834548089042391777770878805663809165735596007069736351425735957119658466971941048620786179198660166686193551051613701042341998009794019955058729433528559656923130511068391410446525509649889327411923450256353852098066135901433285720069272070712563448298546776787113306630272839374321982508415269990599094566166906414735992752769301120948567847836107565821090474098560296111661112664056817837742854437648488514056592036029258287366818130982014383403424932513237209522781904339239569292286480873386326505615011661098806296941717900102110442387459346663277899201102287596220850178098336646653255205907930103595330419502124648910924160260343180072290508242971530880960715707268399071007987162872746772120397312094275985931426306589723200495984863823332189185955949367836166106184857657241515872029687272946411310495488000898498719814035011720711645691502094347928885498015808582504972679907143590081422685365006849178461696514882695603661604843477924639284337909458168698580644889818574906287590410053929992689460698711090795352366801100401022131609485689620092836966316148805558307263727971999784640127164707154499990033639668796735148186073734764263010265287313942402835895476747930143858260098976350342199816186239465059117513719672230896868005705010669928199054973341829974998775592659913740369753126409009782668598467327763243038998641715346250298734319493538193635742508579487908041796061773842759414587194253728399370237762449525244949757092833711783766881608405467917522326769484580565458529888526197768357318487928880434790322123819783005687824028150556801234809698098679392017379512641146284942999377484155017496725469390361354084155606209721508007660497092707687398702716813207116826253114701819633133992599376689982425842238111371128156295696908923830183564935536997376778292165116881121265526663018986686121771527660878310136014578301023218070603147910095967198179299045210277314379437085511984068538659056541660958098725984844018949675877424136043560558355743469994803327328560600867043230024296729296915842772688244012165968661046301477555604743677569156944076190052658722444254257321186344740477834810937376080643652017547212485142013285836805164640951096017324609005387903645763587889304982081300479234576354400472280310934853527920681627694500315854121571620340648341670285793382331601653413544852663308596272585686729326490463906399977133635065598326280649561771739427288312388656883245606027908932628658006889039719142167968735948466253876190799774300731918560808368966387770781293043213906924234368567608934396896285769722907239538839759315085788124403321851037839388930804028097202506129529388247140602089977204721973471175517220953301997345435949269577622752908446321078458058760728524576015439727894407556856878449798926736009204339182843991907578194167967142204438103145492939836409475057886054604168231906104379983248109343786516402520749035655552776370678890332455076376666039486073477475984593372167518001305895827771022928692419066715883806672450173970341763325939032159924599830242454750300560751633557265460438457736696088518350950261233345746422954256479997468593675460432256102042638949600596436870759337002708360552204825591994834136343009605814969399425749005859448913463948855196516907125131209492441225738060178171286165425181416494552131344670839732323475813013812431552412850746311247522280826909922773517569140221445465514381468920068251276612242650732620575798464949909336983038860638322501469326666916077553201743522924660472832796437948205225202831668335294857244384884835558946424408910450856925629441947954357572430395276627962922916184228070565078847073816437756183998953961088438933136162692368036183168480794363998518359492510230242442385375166667137495368972096830142357850812371026321651537749170742916518283190574758353209509276850350525636610204375608213047614481230757576510927490026390844576683822057480738652580485703848335597702988783222710897299740836187450622292253527666412910064820833119227581700210867892220709955314412385705125294282212812442913983916001306089246791477207693270271470946546877497264444151566714744179768580814438445380991316275811841385237156736871765235672675169405213976748393921749999710551706481627195291752320530144146028744707195069123010895128862871539940471758217564406491075319908472549621792007994912791090460012895373514149190892198517631618094491782884618116153665832696425877861249206850350971700704289281151380153029741169371652082687399911457948472442231708313354092845156617468419578710380765002846912914836933667054294370613185673112934178116560490984158844548597679497841825841728921004402859713755498734538580742322809107096833219018507527642628074418780324590254775944649678192965600940999008331703426023306385855446753370015372006641178469753183014225783507668241826357568987551710812098243161870137372060529678777973886649241758801260710461933234449676126580670344651478663052150392471256284594751128037379971867099510634636286249698207927350848084914615628545458204252125630861646214704168287537450420800570423210123615114450285419436994682669043766704004440716620894948712151085707759322543484671328060268292914197795010450975880895255008988914740069446111412403103625550336897214011374023653194601813471579771794218538502800936630035295351474417648802730979511434976394755520101938409188327546670185312791641591354851148781218151131527594183373772528946496909064755443011361527514288970580479894302548042090468488097315458286806369405622290749692423872434697427712314198722261512678726903670687406854503115581799923787411776580836574419502884547424870782012195626096326245564670876557170514271540444615198273615331580920387866395569539691913593931937664952643348892355470991512174250465568050786891629831092551305310251681239324695718518154002693649390492415734351245617366441540903986688637540540612210101876928437841005726890309350738805152197278106690076811790302869466659756234081648825776302020259195403453460337517596244437861164946608472285502233688190422335632419779734846826572492904683415676486500528368120391223005166043899716208739675242949254529331413970290647509243922785440917577824123454143684193734361780935166288713682460723497831924963270002919265712119151875891625411542052184302939178802100745657556958957781793703620782825964999286192218732039220996988503647118823552491436695398711044847579063451097235665336991184556739843363184658803425190398734940450480371250389081740821747990523639444089829969193448440713138978085515200690318042814821878624179173495768934959994495992979230653028900114860888445284510881983733072949039491785236716525842592618097012204243325879861959652920548954540729929832526307055940279046020151626152582165852548095735453834761172167745688663901084158693956772404012942755062007623544722936241655525479407794861233322357270714872081548130499037588631688526688009626529375777963225637861013894931521380736740683091257356359160788025544025027212908195616841553519384251007612443005079139843441099004989732513150929220165896634550485239344974397117088826260396857668852619216754889404304545388576839623187238429884111787878448631296186650641660256380687169324180233024418112359407401514890651041563299239143975803642740386375891073769921972069546474378888799036587243838076920691156822314072949351855314475544519596508827587341405146026365076085431347242974150307184017684516281349664061371417607811401453597517891945336049382164022878866932923014824417042763736101651839491658866110856663941772472995465652141874736963971075447646410070037544148478321284980214526262778585428047610440728426935435210782466116326831138377956118996324686892423418382329579131788189156928388147676672489613459359207353414327489884109478143067512809581509364961663127389216566129043595319424806301654878828541758312974916062543757986734794384533416686868460904470849531777309642778825188529288113913355227938107687731104927838265661796429043156071968511356957116902914145527113757579407018848033473216897460035383247630570223258795209036362641274957977975531100677888096460935905215785900531653146448470170603851516122668268935201498628254684138769776788647494911917699355466944512178361349276813809970835530631485869149383026609269087027231533043382715841965665798269124944286437607152653842553952662412233132930195861406023320241599775419314816985536887444407975035748185885550086673524905699514736421357435798165037860007725539709248240394013572766507123541057695411773358849548674754408455977125647832561777257664650698220671680993886865155533754246692959294188833445071438751368944252987573070062805472937484575699243281573272666494167082168846077545566959388871852713005526910630708317210908534959375595355210874301094975423268346279685190452552803936688480682001920843275716564731404531936428183624071349260011767470806092852921504771431014426533873104280844889795571918261267159541768439658121592293914943024350883976884837683215893229932895005209940656816552332146528735650419691291463310805836037561320389980209477128514458298999258157303866589757813299577142258404877760404854018893156839607999603721248465538551736515211401871246678406599171196348572482664571003766364839515795410399972708039224181807781875101099470620314162321461930390747039829229406125810712985539139164024536380294027407991589230901197766894464061842181253522998655771290412651964631632438708993323579753593903414102251162005302339253663394409592731179017367538162983592035877652559752052713770104275591638442193630826112074697441048769525398925846064797880684266001898892497284368274147906852532068832294015810106147846014856836522060322640742946409145270487719709521687238298399819719911867135402717689771039791697933393107903895375668889424434180686434832065548272281548234637488980563289651746905878766157129632131322347036897781012889507289732244479631637215299817030241660490319245032817380797385823931396774768459518974625004392036588005808007215688878261615805678406575772576121367437653238200610317949652280680644153638135292491881622001084976311791806208128097958649099814855669906755925394291271461455977977890886380230834442320022835522938951172343853414424923688534340151660141469623172272533167511113096157752449681727859246100107638055958474236139373406744289036515591271890931438065886397011813607221562488363999446217129102053000374713948480408754745004734829975946643804003951561720106908505636263899907671530061583753203804892107440123294105849707844738125258575295963681738249563262924803672322741871721694272291061903331098152540915791971401341577686353306251601472306585453339681722835233339377368797776995151834191651623429942944893696779754572293735586799004528504578192882560232857705720727823238195289858764074873051600694718864333746280214454545903222149555841682177190011684434834849642590107588285707820908150425524571254123179765829720612261296567880339886019776423492163781182273172135079449282288517948724364678866526894002814666838642293633819389181673012097994872899951850486268746381503593032631919231059233716132972497354736563217893910780069314976808743144640114910170886104574403331970118558301057314765820125999548324489235414076247771247497060887381091217983139372159000864776579452558021976676408240846376589063458666038476343570781484143078179560963208662672484452930615822815558553034242883142601211986156625292715078104597645079044018057038134481396584513911289845075731657763042671704920606021642749662034750166461558348485466356402364996234083035763732287417934095440685029288020247653817189956827973979499584600483362422227843824781863021928674743454934781574737820871684876970878077566854866822746915111836451127087221769934702904493334764253523656443308821751816464642258353806913674689633475877769890428510142241324778041304049889257265443105647037908799749441008066080849467246410431714088544694208423399478215338696659429686610318785493506486763902965219881193653347793425945312249388504261402416304591280145465441032126461132218296556202207589607975028568737781414789723227856890910044406355877463556192438636527789512039629910634804503683328369964168121904706109078275979451707847412775241462768629381986347067059971012468224320287105758229524530862082426191740654934022668814468327083570181334583780829332704577257407474963921459842754843866627734799556204477240165511659269736196364298284354557417682751462670519013352648661186491289254528511439204896272669973329714882208199737227638559032072976647441507162130432743402370970054939465613088606616066480984165104939763532946400707332064782417042383025704028710966837982937641967311979904556117697193022243796067114892750630248158140347735422610573434202459993827978000753280791291035586203963641774361109054184855312739624787233562565320314470383428752264306871005949677632526265008918636008337709157115034698691333723521676600041865169509221124666899937652277279975586153757722623668682940272614959065390550518237378423577891350102297574125505060874162403175847399730155551373921996752327669245717261647344676943592772298250996295606743397553665169230052655882688422159499798241587351166753135605667421869688875119434321219463873826747056322360301047799983830529283905056975078750002627798986628878372910092146697750025795790635199172334827951488297699168823682454380900225825287950894235484904137995024122741253631036598155107271055753288903264052449558631740728195555953469315917111980082467701914414284055404410827284562564892802821707272770906732647441939102296367618572209040571055183245346057091039404370403740688494531847879105014927692935677383099768228867040359105202414935832531824621690866724278556827094746838434779155861817001479051863794305077126413968220095225394197962920772820707855797979471024296262090034548773612919627198860623493642119955939027063527599267309155524341175227117555487040479222969298204407606712174587152922456485833362159126942174719131021812437091864621020967165163291884890812200938524678978718554322995695949644608917928460289948757321248737774740974287869728312138464799850072788015666376926674312841319001305392205595427679333546682951356654097953694451065010235469864421997167953458327919832611473186053986503558222898404966290305533296561314988850534016560055166138628771936471961560212106603156291223302112487414812644357046348770956865523056127148775554424229620464788825016248594574119404802143668699780103022260929570871314780419189159945850460636484164603289063258334586778756037059536611254573533270966338359640396693819861367010446682951787605296562001403133807338562676167297006793577819768508922339256146659514161892649414396692753877489321228434154581774974256801189657181832207696040685776973903256146466345300588645656329482888785682221993363082173016488109780653509002507017642067896827240817068518542535802543270826491586927667150487108198390916035379593219378776360252270433156951732121606911680561231831002950746457565870375945458829813790003347555921808614404746908416769702571423644010082331480150779611101003343610610395771909032420064043057797840190368147562871456732253299043172843125480021886341215374796707066035856559028150494253924254683439807637335452914827171671082891368862482398605141350081310911383243990396511148992975529631125901043517960237089293320778680040309586668065642471403382212031670155441392466427801961159578367951869773530315971462550914528867445608288558465200248513139371982891629803756045906354991313016908285949655936498975269350394257465123979121608603370239085700373288467294907035855215104807936243394009184536127848164421232999018497677827970878396347073836276078172050194808229384516149597374452589154915463821831469628247800684971972069374232581113316453968434685688077377367982525919263958331614612523098917644577078470608719140892303718639433416195760095627019326777705289227045027469862147827632865726765061865427696526167933777468103982228080159119845377167755056779159820721832362426043658820414088460367439197363787255730744658150341556292889151012782359383200141212912997105629255095936360315152286623384034160394739493311816639549870292292662404174461791704625299948742250840199761534642571389092797505760986802214669475497312824899280980157922792152417356685650389132698252019278022178283144599057474760907320837717705905246882635888813176827503724170620288852635638552046367559976826364269042724407327854258196350991653214628270062515494227674857368729498656084737942357478017018390776964499569310946180715633209527504444801460364025972766218399201492421643435950235033694292283386212637176202485598634114235540471857996936270164304599582632584661860773190175483302670878134944634396571020552180402768556563053170424767303211651212745532189459863566857577706744874530217864561243710517479606505500810343638549609670029966542723898974224537809012893286978854297756471379980268647409850026616337627475195757503386876567897510968827929306364458760164948633613491262467548455730516533672448558012113910191878468216936256127618723681231312503144171655614814561644088256620904199774666673841605246632273019984440427490234717027904681495912270142030947919503167159638033642384250675015388903717510542167487333429814554874118498479951834323697000434946187583520238833896101559524145884937291526938519841263894834598328729290042308433847139580494501856291839598054652791819417218863579386907867173904219958809881105952685357433226664927346649168006919913144468579696183867209371733886993412512515801909303960520568440661033608605839417905924469282715035866870736821997408231646392132692410196352717748842034899048602542707739044825509657939013875884577962007735297110503937655281726682174727213035805499716244372667647710378349560918510460262359032383036000544891380489750594101511989786137837037339661620719336392386380047565645850073494316971478815144397491610253295181580485880734239313905951291716820190753415482680361728935630942991770817255930795126630301014724705796792445762850706056466684016474192070051204422115103833475035650792860366799214623204923133266104056676735297481512034088955738860114733026844118089773715439300323766735976918755000914711609317586602562702422342934950631494376214372035683323447395980768074699689219470998477996652473081999897169444643670925861789232850576431768086477454929450651120426299545005314307835905177536494411721452133934218095908195820235526675965822247573476007301294711938627967017408633568543691956960979044884863362438805034338984872755484004162526069699215404752373616723941759663932055106710173451882626847000067823525972708064241222148812726647625049333946452437987659162957838689274280329500050317699663135619502658318899593932871341660532249601606919018552791881840595837315605262880175115233274028595193187697683404029360520392419184155730497120002712383746916470585736024786560764191168298448920334942976905958229612527808136167232691299672233503192761524815086997707718831277716126263423798387172372208682262974162839436873624283225267922584978159421924556114764939411572016444471061778797213113290545966586359019954932026198982399781386520997895803606627941721485784601236002095516787122418879566082973456726505616755164757022214078822775039315768014207304899488050334660788766904084571377102643836310592058847249468064796772914562473452820300680449778426772874965734806403039571106786114470725112834703727492334734017519445624616158134798342100005032485022778782819236424388436097020395491449801723573199266952127893139811996963486688851236538518300457367358450647352827574679242511043428512207798655669312134013343639526505451470278682958390286089085632662448975462797054649551999423039186435270820777912266590956544007013648795907550204921181637032252083920202343984592672613463873587874806016649416795239972485651046959028488774665544299775188848121901946223598270958743595614512942196084481525426860711835453311018007870114232704357650376506457758516152135605184291342009593377287758777774804590122357021564253771134490756135159049347300851855671664494683758482640821223745286515230968688344788750443693737250003753787365737338265494984641719651642466641658328255418049064912190258311164293419265925566309421512444097089973602426655769561898591925235719006999415503329773549132681491546382521182523870403433290040323905760067261465614529769229599052764195193646757674700992479052178975376597162567673446905851770851387033503136909538915194925638138645987334113321522184161357154554300336182006491206173704856739858785251270781124704093702794404547493542290486296019295774152659282715573343717533826369654592870494590042589845109278185910353962748495262834566962087912468343375833246273258383696821004811132481685850706037417692972730903188932890466578073029100034328904212290315070233956685699432959771712570109101958321058954648774608745872781658724136849510773762999954938319180036050684293700949114682925077569618713776506569741948464113733921786403867495672015228318355619235058899654934592302540434696067307961413125368198338758475629726340062482267099163352985121452055411992820771958917543763158186193935663491013386314169881077506597687783700830427666367751771542688756528877890681696087757697600638238910013816522276609588781277366391745582592247724680139912097531221730679993333067671492946603394836742298866567497759684694949657242217271124666212559101768265590333114548153528547453403726328055095676373099447664483843214631132546369008721531385491876823258511373105828974761875174794237605487117159729687452877158567911549313829415136316255731899673762380137643696565777018357156980866272298898661799889310710664700684093692049117782182763263498329164360818834244798013461222728737744368305034383284918320819916322062503001409824472553887134703327783934587350981269332464840745368577312475556970865606049968070559080375805451851047980763893513459928019369323126392384255937083363435904046947573925761886846903458582253552134931903948401346527894373084637877871307674050716403226682369323230571159562445879482887971635957383506937761845339619773272573146420762349988882073716896029587672978851768667153493228624535135123780690987489333443865960356343531796892524450465697321320020697386894112575235837157711254984793716340891262661088009358334630554552884522744669472782582509442342450929599636934456717311523364317303686674466987544562170613047949137409320718977185292844551339829760274420305697530282844659385567796830903281824511336180500730563246492933698427943304291294145446884655111135590404928977666105145099789629165552258074611367078591346679717183524043195809719682391654569815007313213094355151039657604586368995945568409316607650636817351068288904638658369984622112321358969232342773787574709303445855497047366322384904807350862496490639018402883444500410954193999017667971459156808956001437129458966723879152290030228581307636860646850307977846009641711032476791151852992812075357982109946814736849627407966647862705116267678364148759735336521755892187778668013267661142059641751675144252606004422576785537785605920756411072542771439020896379683513001273791879786908606802955652793632402521830655297515382044010624628493972431928597737584917416135376416141690648198138228593436350669793148348320961093029896896681947955826625502532678730194115294747940633567887720368394675982329977294660772057046088468332521328521629375579652754274210535113154007492380585215331024906345829208404854023253921077552512338449141072652396547546455374872978386136260764615405405376864502354365956688825733029540743211719262727271815727788052981461986557323504352191788316063971845335350947068203888671370306017530431406708009933187130877492255038036185149224125780295838887649998903393430880923957974462561801146347524884900654670573343666199954887920970243780873028298859304483085181813536214319020393487009113310597100535734786556459022686233050053230595651818029494652729222213831000929635658009309257612465271908768736644082546905367007373187108685582492699843533385752231976603054426819461934066049136969224427612867289300848663022942698387338621562479278344357628789321443134574892551552766118883284804437659665664869399532725826085811327911517284379457458796091690993533053114328475117089465815120132090270982280235071057492625471576208447446979765647870862986210540710659661474166604956919915777772962979957490631118673121737446884916106462207307280826244074811584092072754562577838276685652993993834373587010243547215864255396327510273994420988753644646752863483943836676824523178328050463158489785110400294287804915355484450057131109998277876803222135620275503799516180441304585192952919584437237861541189188493987931921170667332299268763789562627137341249707214114775679494412792210335109520789305076707192880346014005765437772339142939000964790064450479059864592919344154987843325173653886282376554269164368301578323317096544912230511310000188799077653153665712725488159812923403015301292075820988793109096220260889688737987192630647668178092047326713769840621180148065926278636431561750149726633395595369012204158125831273292790947388852916812739889117868877774710782376208440428423592917489248722853040849342696855597009015971917468158381517715609451346709515249455158714374723396971262912695324814966745968208736283354841139697090098071781684770782942444537044535155381710126342829229776834381403354130113850535070776718527921061311019523494635842087813729212057060839289639854580903279507420225626077681883360914225089977813889451343652280444773368502248365135369257082184128702722782362415780870718435540305504064359196761097578319370014107813651016972283291893284004975875883864039899996791348869441425898769268560228331228282052389846587028269603672856764822574201758689961332678302615889731743400281697884298686049459025852861416002476030198720856469413977271521457935029145719678466505059825435721961196342515208949485145103327657455874913541930561459489725482381810825213942870528471569551678168840650914685582008320987866037869641518470940959365450583473681832711174769076095225365409954782647935427404390784528321098939002747342026712500639257718349394971766831867394042361641193788926686931299912094765061991122083457427959465898677602485150512148565255956116954470062479855746165228470662086331761587474701539586096138319860606035465629379955725159044604840893156489460831973040923276511396195995091915011506843799109474559976355618905246649974422792227577506478213696566554156912326907612288909612777016566447947471181359400047608097794418378001170297060795311394950401703784011635799987077446682920917625154513605109306361502201740796631515025232745486914782501982175778380064227087210424196881832315788220064212465704956674330795027341677477778833635044258509217381582667873685490329910466234638810244703349863240053109734948840383608935861158023613254101115460452866160352588301676241815474155601585905439372530123424566641851951327613225674001504017082711030768842679106927367726311451945914545108544936166572685480292012220850769762341573405612338539642611924503528579770932430179822959687413606657238141692149381601586011062126737352536810297936416443515318481538163074040314304954591074447647482700191078496687380886253843853374142500500615576429560274275957530527932658865935216133709624885582138319537063077127930513692360505976150662325954275384557496981875457533413054144673522191869578183919305481996174951653547161714274425656361794644302865009749374497404774941579565847261335262925673212926954665938970301003174077878537527937138212843107476951474706224149062338038584558281193663232120982714381543003287214486941637792195882080489491270761871570933097622456596273009008398687218360750992978042832736234358511421256615768585147837249300876029380442707417470956685897291394488109478267064381650778534087050408944414348871024207841165942136238580728654468862557732041865483314250481663054107593791811427957332247957965270837455502039183947820586343429607867729794687773695556286083047402754564570472134735954723179547971457161212070543963570354877037698277243885898413331280499034878086476076152495572591110774245255527435621510926529490092705549046213998484356947892727899926237768499204584942869642171738071029233977810397344421485800052982992615158757724202166448058442751988174034220792491892454518803557626805842599305541084159773981402455894514865520117276620758603419784990483545423577398945927317197760544623796091781572737362409276195187733233709554126393808775031263335311853994235868655431160839597674321111789238609725034153803558122524155726645094059693102291390818771604291962586229905117514396594469371265217216941345213687515668436356920409044615927946225748013444936622750670633224662281015337462267305184417546587662577463531640985880524245044424993461284078518712378941204516966338551277874669267612811933016752155284961381794837161890351438100083016315301470085391659201337324793951691059060716182792877028546605016212115676299053698395877892266249628052674050469427520021354838669823964353204090814935573345720897462183352673583083568443025898679249654009724805752368285937464358762004198323250681955351534426075097301769116307305755454529197556817089501334616233374340959658760902401160452519317868740127291112985032336330335061568687784259046472786440515399002091577458667255121260039552456948874305028818668868345660558477793982402529460635595864234702510297637051832051612335167601620557631378250027152086215362699031281517194126461163147437278354891806835159243842836818451729525208756303962734909612042988527602371130007091285172557958760588073167241623925951048484381821209242631818284923313619815864296345266240421962988108289047359722692239769221530484841591795785147012156626510518510508646534445283864907371660448018499133429379137113875242466707104419308900230136533977604025109463834888036075132617230022363180534823988948741533406626904766793614540789304609494765249743722945980796354225431046557726968808445301547047040040200833268789153950544438844236023276494036614439802950418420269226470645303221590504326217607989004954831675459282355656795772783966910197912491914260186066738200607294363469970594572584055498186737468364545746895147644964477899377505185445776824275107283010103041841063978907458990410541362915907058351963991961199383714647114039941119902514083698061868918082558055401914961621417519563296774096395330206699028191865342049104167700370886659938282726938103598489531948098574974598229968641846173391182278143585044103849907339225640019849611380622512315841495590702934339881459922902389367781376498628355648040071806220789095711036968837003611759535688508988024590248663450333094820911447323370756637631310892877564447037808538525365004807634834317794596706843547585068103981346553256573432111004657105818446950612249253146422419852530881751527747081862097937318428893350355382501222106204735331067206549635302375713169712027890937939975082223927917208004704079552099502781968138986097676808016659492180335569552222426672399199045070697911203550452524133604404506783879858339143178328608075637325760089045981361496586121170053093313543638249371903074282851474613651455581008250670172134908557125505421494853437236220986483171892207844491037768581752968412143199778459674296991048250268347208422614800901112012781709811371206217267630738649474348280245269869822416810705180200340558773737629458858927031955326107555719296882355147973552188730136517915490703639759671900946995341547165603928524242935744215328013617444091862687485719088833191420207151468052345919448678403811322849479793494744368618544886499785672440423160931761240553129103581613967108087997932533562646181365468203217472100344103101092807470347602643999906930524412301201144985535237142247142823326183048135436158901526399127522606242916688547019500821294762944100378666210499932575818078974507349284007456225251492462164535808815159869952783938695802560139838150418236310021876795975184113706853038228407876222168057681195979957621688413265741015101635874964198096353247878339613484222957051691124457894297335898941432751548732784142391946765241120544933598136096520701876121102081789452541154864701828462729336418922926686633129762806365597905665245966986634541379150233618553486924082681644516847787006337746926292279421313564347308926538947232905454924874948681654236160089262308399846149721925787612504642059555384205226509595075749659770991338351425470445024398111969351748695067756412863514789489730264897170723946284282472758470223402291225484750821711738056654036756828224097256526879304189370773824034371577539185042146488587919344834855577336896318149962128563253882759645024967874551069477234030018414655809528301374619210952153914656164401037423367080307873047707702250893777108900347794676111291935141230077157595745407954304104674594172507913307448300356452134346843628904907926755157794048806703332736194505411251292916243624881114605985786365374230855628666699275495846048277093659341975915441121181837356183020493138470652229890273332641564534825949673853403957316676046446828786629772473886191194282710978007358709144598037013477267212270189991402014068830125474670176460411036070272062126136000238073566284694829353132557425202766098846029671466823679834344250591722767005910436775083528970874123690876475438013586819549531087935242889024578814330121140331503461816138616627024066483498579418277739355273923636784955030470270004927109569168793092255821677717935744256514976899847086716430560950522367811755757132826623244809412023145158314132358357397079517949936352745495859063635285816045568597463501662010457086875692414855947075140363599743202316812688176931228286051842622362263102000860680781137486591934935184522085382346991864825539910885065846122148186013974646188765319241621096832583325328759955915745001860858258898525868598842067287037296680346649859846703042707673888430969440713489359509725079033369371976719250818830660291919753006437301018598441603226068089480432384836059177379706969253929832438165131254956031355889459961222646679851462794886481102729382543651753380509587286701027029708126539942739623061535609780854661610301066993035831473753067168311748889489032298151994547920755617409139832602664857146017095189426625454304121351394137533952218275874592973569066884482986758875697495623134591007177391606264345361425917894855143345486187270590428267036272448908998434665766553217308832348561803608582076627612700670451247570051047512771879932205456459425873229512134245716884197919527670957987068867572137573239868552707518078915060323922636740766825348902634291919837627855701721496865553947242537546236823999498291248277204619952743811214198022422981983233431714558509021344401296961638480796457919506638055644874132250641948962588467935394956733524887639217466155176574792220583976478130222783752287373474971991242187960220423981531853818224748462810733972482991942354557652503565963545540525963021358378348710928417861288359459081774632062315385075232044827177109274927133396712842390960324600525640962847805315717618950280090638933796699553869029825416797447068142591153632652113223010900104809965588654720668440699866347796510513077639639781843450087868489946821475939437662886723646069325081501073054530977688286539070482712097964431009331082465515503926311640863665698068349831643796932675950757006451421061876115598754135689959164667429600816871953271373858329796720426480327240770353894026589914849350962260002415188812703515592408618862153286052625656981958985939587112140523851659805830160172809352775354251033112914192882886542222540193747566369606070830484616273897391116180127176201750744182290082174500739441371163218458617023298275920841586045593111120931519078970032106850759625891031260352404072308312001663629908513880706767651102038471342401452019246697912818373389630924110201325975785499918378142621048194724573087923261365922629131970958584866282957766048477567987071166892160409449614890350776012015889000758059329917589364602454420590435466574153389502954389670000329647290901070158441856681349998803085806780374205071623949539726744401456587783228858396416423351167418161452591831149748009717519876214691783160365492831134625507498354815390716865300705917730544907793295814671156766128765413455161191223099823118586006847226424039402112898694476358336832255725051991168920190389587673123143501444189354706547211614942939544952466075504376742123545033799257921963470743474929960453598552206014939136